关于ethereum隐私数据的现状

一句话概述:以太坊上没有隐私数据

private 声明帮不了你

string private secret;

如上,将变量设置为private只是确保仅通过特定的 function 才能够更改变量的值。但就数据的隐私性“private”而言,这是没用的。基本上,以太坊smart contract上的所有内容都在(所有)节点(即所有矿工和参与者)的硬盘上,私有变量只是为了使阅读不方便,但并不意味着不可能。它不足以保护您的敏感、隐私信息。如下图所示。
而且,smart contract 的代码是透明的,private 的变量声明是很容易被以太坊用户识别的。

1
2
3
4
5
6
0x5 - length of the string
0x68 - h (ASCII code 104)
0x65 - e
0x6c - l
0x6c - l
0x6f - o

private data 上链的方式如下,但是都觉得是隔靴搔痒:

1.hash 上链,作为存证的证明

2.密文上链。

3.时间锁 Time-locked secrets

4.EIP1024

请参考:How to secure Sensitive data on an Ethereum Smart contract?