Peanut Protocol using iExec TEE in Prototype for Private Crypto Transfers

iExec
iExec
Published in
4 min readJun 8, 2023

As the evolution of blockchain technology accelerates, privacy is growing into a pressing concern for both users and businesses. While public blockchains offer unparalleled transparency and decentralization, they may inadvertently expose sensitive information about users’ identities and transactions. In certain situations, maintaining the privacy of users’ on-chain and off-chain identities is crucial to ensure security, prevent fraud, and protect sensitive information.

Private transactions are essential in scenarios where confidentiality is of the utmost importance. One such use case is the distribution of assets, such as airdrops, to a group of individuals whose off-chain identities are known, but their on-chain identities need to remain undisclosed. Reasons for this include protecting user privacy, complying with data protection regulations, and ensuring that users can safely interact with blockchain applications without exposing their personal information.

For instance, a company might send tokens to employees as an incentive or reward. While the company knows its employees’ off-chain identities, it may not have access to their on-chain wallet addresses or might want to protect its employees’ privacy by not associating their on-chain addresses with their real-life identities. In such cases, private transactions are essential for securely and confidentially transferring assets to the intended recipients without compromising their privacy.

Another example could be a group of activists who need to distribute funds to support their cause. They know each other’s off-chain identities, but revealing their on-chain addresses might put them at risk of being identified and targeted by adversaries, jeopardizing their safety and ability to continue their operations. Private transactions ensure that they can securely transfer assets while maintaining anonymity and safeguarding their operations.

Peanut Protocol and iExec have collaborated to create a prototype product that addresses this critical need for private transactions in the blockchain ecosystem. By leveraging iExec’s Trusted Execution Environment (TEE) and Peanut Protocol’s innovative approach to generating confidential crypto asset vouchers, users can securely transfer assets without disclosing their on-chain identities. This collaboration not only enhances privacy but also contributes to the broader adoption of blockchain technology by making it more accessible, secure, and user-friendly.

Introducing Peanut Protocol’s ‘Confidential Vouchers’.

Peanut Protocol enables private transactions on public blockchains by utilizing iExec’ to generate confidential crypto asset vouchers. These vouchers can be represented as URLs or QR codes, that can be sent to anyone. Vouchers are signed messages confirming that a deposit has been made to an escrow smart contract. Upon presenting the signed message, the smart contract releases transferred funds, allowing for the confidential off-chain transfer of vouchers. Anonymity is ensured between on-chain and off-chain identities.

The Peanut Protocol Dapp

The Peanut Protocol Dapp is a prototype (not yet accessible to the public) that integrates iExec TEEs to provide end-to-end encryption for all applications and user data, ensuring the utmost privacy. The Proof-of-Concept (PoC) aims to verify the feasibility of private transactions on public blockchains by generating crypto asset vouchers within iExec’s TEE.

The solution is made up of 3 components:

  1. A Solidity escrow smart contract on Goerli.
  2. A Python iExec TEE app for generating vouchers deployed on Bellecour.
  3. A NodeJS app that simulates interactions, which can later be used in a frontend app for the depositor and recipient.

Generation of ‘Confidential Vouchers’ — How does it work?

Voucher generation offers a unique alternative to traditional, index-based deposits. It utilizes a ‘proof-of-deposit’ voucher generated from an on-chain receipt. By utilizing Trusted Execution Environments (TEEs) through iExec Confidential Computing. This allows the necessary computations for generating a signed voucher’s signature with the smart contract, all done privately. Simply put, it’s like depositing funds into a digital safe, and getting a privately-signed receipt that can be used to reclaim those funds later, without exposing any of your personal details.

Trusted Execution Environments (TEEs) are secure areas in computer systems that protect sensitive data and code from unauthorized access. iExec Confidential Computing utilizes Intel SGX hardware enclaves as their TEEs. This creates secure enclaves in a computer’s memory to safeguard data and computations.

The above diagram illustrates the private transaction process using iExec TEE and Peanut Protocol. It starts with the user initiating a deposit to the escrow smart contract, followed by secure signature verification and message passing. The iExec TEE App then processes the transaction, generates a voucher, and returns the encrypted results. The recipient receives a link to claim the assets, and upon initiating withdrawal, the escrow smart contract releases the funds securely and privately.

End-to-End Encryption and Confidential Computing

To ensure comprehensive protection of input, computation, and results, the following iExec functionalities are employed:

  1. App developer secret
  2. Confidential dataset
  3. Requester secrets
  4. Results encryption

These functionalities provide end-to-end encryption. You can read more about them in the iExec documentation: https://docs.iex.ec/

Peanut Protocol utilizing iExec Confidential Computing and TEE tech, is a breakthrough for ensuring secure and private transactions on public blockchains. By combining the technological strengths of both parties, this partnership not only promises improved user privacy, but also reinforces the benefits of decentralized technology. In a nutshell, it’s a significant step towards a more secure, private, and user-friendly blockchain ecosystem.

Please note the iExec integration on Peanut Protocol is at the prototype phase, and is not accessible to the public. It will be made available at a later stage.

--

--