Welcome to the Custom Attestation Multi-Party Crypto Wallet with AWS Nitro Enclave repository! This project provides ready-to-deploy assets for the workshop on building multi-party crypto wallets using AWS Nitro Enclave.
- Introduction
- Features
- Technologies Used
- Getting Started
- Deployment
- Usage
- Contributing
- License
- Contact
This repository aims to simplify the process of building secure, multi-party crypto wallets. By leveraging AWS Nitro Enclave, you can create a wallet that protects sensitive data using hardware-based security features. The workshop materials provided here guide you through the entire process, ensuring you can deploy your own solution effectively.
- Multi-Party Support: Allows multiple parties to manage the wallet collaboratively.
- Cryptographic Attestation: Ensures that only trusted code runs within the enclave.
- Shamir's Secret Sharing: Distributes secret keys among multiple parties for enhanced security.
- Remote Attestation: Verifies the integrity of the enclave and the code running inside it.
- Secure Communication: Uses TLS for secure data transmission.
- Efficient Resource Management: Utilizes AWS infrastructure for scalability.
This project employs a range of technologies to ensure security and efficiency:
- AWS Nitro Enclave: Provides a secure environment for processing sensitive data.
- Blockchain: Underpins the wallet's transaction capabilities.
- Cryptographic Attestation: Validates the authenticity of the enclave.
- Enclaves: Isolated environments for running sensitive applications.
- TLS: Secures communications between clients and servers.
- VSock: Facilitates communication between the host and enclave.
- VSock Proxy: Simplifies network communication setup.
- Shamir Secret Sharing: A method for securely splitting secrets.
To get started with the project, you will need the following:
- An AWS account
- Basic knowledge of blockchain technology
- Familiarity with Docker and AWS services
- AWS CLI: Ensure you have the AWS Command Line Interface installed and configured.
- Docker: Install Docker to run containerized applications.
- Git: Use Git for version control.
Follow these steps to deploy the multi-party crypto wallet:
-
Clone the repository:
git clone https://github.com/khoikhoi48/custom-attestation-multi-party-crypto-wallet-with-aws-nitro-enclave.git cd custom-attestation-multi-party-crypto-wallet-with-aws-nitro-enclave
-
Build the Docker image:
docker build -t multi-party-wallet .
-
Deploy the application on AWS:
Refer to the workshop materials in this repository for detailed instructions on deploying the application using AWS Nitro Enclave.
-
Access the release files:
You can find the release files here. Download and execute the necessary files to complete the deployment.
Once deployed, you can start using the multi-party crypto wallet. The following steps outline how to interact with the wallet:
- Create a Wallet: Use the provided API endpoints to create a new wallet.
- Add Participants: Invite other parties to join the wallet using their public keys.
- Conduct Transactions: Initiate transactions securely through the wallet interface.
For detailed API documentation, refer to the docs
folder in the repository.
We welcome contributions to enhance this project. If you wish to contribute, please follow these steps:
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Make your changes and commit them with clear messages.
- Push your changes to your forked repository.
- Create a pull request.
Please ensure that your contributions align with the project's goals and maintain the existing code style.
This project is licensed under the MIT License. See the LICENSE file for details.
For any inquiries or feedback, feel free to reach out:
- Author: Khoi Khoi
- Email: khoikhoi@example.com
- GitHub: khoikhoi48
We appreciate your interest in the Custom Attestation Multi-Party Crypto Wallet with AWS Nitro Enclave project! Explore the repository, participate in the workshop, and contribute to the future of secure blockchain solutions.