例如合约中有个mapping状态变量,key是地址,value是你的信息,获取信息的函数访问mapping变量,传给它自己的地址,就能拿出自己的信息。
现在的问题是合约账户的存储是存在每一个节点上的,如何防止有恶意的节点不调用函数,直接从这个合约账户的存储获取所有的value呢?
如果要保存比较机密的数据,可以存储经过加密后的数据(加密后的数据作为value)。
另外要注意:在合约中的数据,不管可见性是共有的(public)还是私有的(private)。从链数据的角度,都是公开的。合约中私有的数据,即使没方法直接通过访问合约得到,但是可以从解析区块获得。