我正在以太坊(Solidity)上编写DApp,当我还需要以某种方式进行处理时,我需要找到一种解决方案如何在区块链上存储私有数据。如果只是存储,我可以使用一些常规的加密方法,但是问题是我需要读取智能合约中的数据并以某种方式进行处理。
让我们说:
1)我想向区块链发送一些私人号码。
2)我需要检查私有号码是否大于上次存储的私有号码,并且小于倒数第二个存储的号码。
if (storage[n] < y < storage[n-1]) storage.push(y);
3)如果是,我想将其秘密存储。
有什么想法吗?谢谢。
答案 0 :(得分:0)
最好使用带有两个条目的数据结构,例如一个元组,第一个条目用作计数器(即处理check if the private number is bigger than the last stored private number
部分,第二个条目存储加密数据,一个用作计数器)。
y = new Dapp(sno, value)
# compare y's sno with the record, store private data in value
答案 1 :(得分:0)
您可以在将数据发送到区块链之前对其进行加密。加密和解密应在链外进行,因为区块链是公共的,并且您不希望公开纯文本。
如果使用同态加密,则可以在链上比较这些数字而不会暴露明文。
同态加密是一种加密形式,它允许对密文进行计算,生成加密结果,该结果在解密后与操作结果相匹配,就好像它们是对明文执行的一样。 -维基百科