4 ms·
Considering that the entirety of the blockchain is public, its impossible to actually put secrets into a smart-contract. You have to make the data available to
by rocqua 9y ago
Considering that the entirety of the blockchain is public, its impossible to actually put secrets into a smart-contract. You have to make the data available to all nodes that are actually running the smart contract data.
An interesting approach to solving this is homomorphic encryption. This allows for alice to give Bob to encrypted numbers A and B. Bob can then compute an encrypted version of A + B using only the encrypted versions of A and B.
This could be used by putting an encrypted secret on the blockchain, after which everyone can compute using that secret, but cannot see the actual outcome.
This still won't help with random number generation though, because it remains deterministic.
- baby 9y agoI don't see how HE helps, but I've heard of VRF (verifiable random functions) and I think there is something there to do.
- shadowfiend 9y agoThe Dfinity team (https://dfinity.org https://dfinity.org) is using something like this to underly their blockchain implementation: they use threshold BLS signatures with groups of nodes to sign previous chain states and still be resilient against misbehavior and network intermittence. The signatures are random, but their correctness can be verified once they have been published. To support our secure key storage work, we'll be bringing a random beacon built on similar core concepts to the Ethereum chain for Keep.
- ozmbie 9y agoI think proposals such as MAST allow secret contracts, up until that part of the contract is executed (if it ever needs to be executed). https://medium.com/novamining/mast-smart-contracts-on-bitcoin-34b61ba67e19 https://medium.com/novamining/mast-smart-contracts-on-bitcoi...