10多年的软件开发经验,包括大数据、AI等领域,熟悉Go、Java、Python等语言使用,最近学习rust语言,目前从事技术管理、架构师相关工作


10多年的软件开发经验,包括大数据、AI等领域,熟悉Go、Java、Python等语言使用,最近学习rust语言,目前从事技术管理、架构师相关工作

Subscribe to web3zoom

Subscribe to web3zoom
描述:
以太坊智能合约代码、存储状态以及交易等链上数据都是公开的,合约中即使private变量,也是链上可见的。因此不能将任何未加密的私有数据直接存储在合约状态当中。
漏洞合约:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.30;
contract PrivatePassword{
address private owner;
string private password;
modifier onlyOwner(){
require(msg.sender == owner);
_;
}
constructor(){
owner = msg.sender;
}
function setPassword(string memory newPassword) external onlyOwner{
password = newPassword;
}
function getPassword() external onlyOwner view returns(string memory){
return password;
}
}
将密码设置在链上的状态变量中是不可取的。
防范措施:
避免在合约中存储隐私数据,链上数据无隐私
采用加密机制
用Commit-Reveal机制,如先提交哈希值,再公开秘密数据
采用零知识证明,在保持数据机密性的同时验证交易或
描述:
以太坊智能合约代码、存储状态以及交易等链上数据都是公开的,合约中即使private变量,也是链上可见的。因此不能将任何未加密的私有数据直接存储在合约状态当中。
漏洞合约:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.30;
contract PrivatePassword{
address private owner;
string private password;
modifier onlyOwner(){
require(msg.sender == owner);
_;
}
constructor(){
owner = msg.sender;
}
function setPassword(string memory newPassword) external onlyOwner{
password = newPassword;
}
function getPassword() external onlyOwner view returns(string memory){
return password;
}
}
将密码设置在链上的状态变量中是不可取的。
防范措施:
避免在合约中存储隐私数据,链上数据无隐私
采用加密机制
用Commit-Reveal机制,如先提交哈希值,再公开秘密数据
采用零知识证明,在保持数据机密性的同时验证交易或
<100 subscribers
<100 subscribers
Share Dialog
Share Dialog
No activity yet