1

Enigma protocol is a second-layer, off-chain network that aims to solve privacy issues in blockchain.

However

In Enigma blog, there is an article (Link to Article), explaining the secret contract, including an example as follows:

"To give an example of a potential secret contract, imagine a lending dApp that can autonomously give out loans to users. To function, it operates a smart contract that tests each individual’s eligibility by scanning their wallets and prior transactions, then computing if the individual should receive a loan (and if so — how big it should be). For example, it may examine if you asked for loans in the past, and whether you paid them back on time.

With a normal smart contract, a user would need to disclose all of their transactions publicly. This means that everyone would have complete visibility to your finances. Since most users aren’t likely to opt into such a service, the only option left to the dApp provider is to keep the actual computation of eligibility centralized, in order to limit the exposure of the sensitive data to the provider itself. In this hybrid approach the dApp is no longer autonomous or truly decentralized, as it cannot operate without the aid of the provider. The dApp thus retains all of the weaknesses of centralized applications, with few of the advantages.

Instead, in a setting where secret contracts exist, a user can share their transaction history safely with the secret contract itself. The nodes can execute the contract and receive the eligibility result without being able to observe the user’s transactions. There is no longer a need to create a hybrid dApp. This dApp could be autonomous end-to-end, while guaranteeing both correctness — if a user is eligible for a loan, she will get a loan; and privacy — no one but the user can see their transaction history."

My question is about the following phrases:

(1) "With a normal smart contract, a user would need to disclose all of their transactions publicly"

(2) "Instead, in a setting where secret contracts exist, a user can share their transaction history safely with the secret contract itself. The nodes can execute the contract and receive the eligibility result without being able to observe the user’s transactions."

This example is an expanded version of Enigma paper, page 13, section 8.8. Crypto Bank, where this use case is explained as follows:

Crypto Bank:

"Run a full-service crypto bank without exposing private internal details. Users can take loans, deposit cryptocurrencies or buy investment products with the autonomous control of the blockchain, without publicly revealing their financial situation."

From my point of view, a user eventually needs to present himself by using his address (either by normal contract, or by secret contract), by which it is possible for everybody to see all his transactions history using an explorer website.

(1) How can Enigma secret contract prevent someone to see transactions history of a user?

And

(2) How can a user conceal his address and at the same time receive the loan, using secret contract?

Note: For (1): According to Enigma paper (page 8), workers are able to see only encrypted data and eventually public output is stored in blockchain. For (2): Of course, users can generate many addresses to make de-anonymization techniques more difficult. However, the point is that what is the role of secret contract in this particular scenario of this example? As author claims that it's secret contract which prevent someone to see the history of transactions of user who gets loan.

0

For (2), user may generate as many addresses as he need, so revealing an addresses specially generated for the purpose of receiving particular loan will not reveal user's identity.

For (1), you need to read Enigma documentation. It seems that they put everything on chain in encrypted form, and may only be seen by workers, that run on trusted hardware.

  • For (1): According to Enigma paper, it's apparently inverse: it means that workers are able to see only encrypted data and eventually public output is stored in blockchain. For (2): Yes, of course, users can generate many addresses to make de-anonymization techniques more difficult. However, the point that what is the role of secret contract in this particular scenario of this example? As author claims that it's secret contract which prevent someone to see the history of transactions of user who gets loan. – Questioner Apr 17 at 13:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.