智能合约是区块链能够被称为颠覆性技术的主要原因,更是各国央行考虑使用区块链技术来发行数字货币的重要考量因素,因为这是可编程货币和可编程金融的技术基础。
基于区块链技术的智能合约不仅可以发挥智能合约在成本效率方面的优势,而且可以避免恶意行为对合约正常执行的干扰。将智能合约以数字化的形式写入区块链中,由区块链技术的特性保障存储、读取、执行整个过程透明可跟踪、不可攥改。同时,由区块链自带的共识算法构建出一套状态机系统,使得智能合约能够高效地运行。
由于区块链的特性是数据无法删除、修改,只能新增,所以保证了历史的可追溯,同时作恶的成本将很高,因为其作恶行为将被永远记录。
function compute( address owner, int24 tickLower, int24 tickUpper ) internal pure returns (bytes32) { return keccak256(abi.encodePacked(owner, tickLower, tickUpper)); }
接着看看NonfungiblePositionManager的构造函数:
constructor( address _factory, address _WETH9, address _tokenDescriptor_ ) ERC721Permit('Uniswap V3 Positions NFT-V1', 'UNI-V3-POS', '1') PeripheryImmutableState(_factory, _WETH9) { _tokenDescriptor = _tokenDescriptor_; }
简单概括就是以太坊的智能合约首先是一组计算机代码,其核心内容是算法。这种算法通过代码体现出来,反映的则是现实世界的合约和规则。以太坊的智能合约通常运行在区块链账本上,由相关事件进行驱动,通过事件产生一定的触发条件,进而运行智能合约。随后通过运行智能合约,链上状态得以改变,最终实现数字资产交易的目的
def send(to, value): if self.storage[msg.sender] >= value: self.storage[msg.sender] = self.storage[msg.sender] - value self.storage[to] = self.storage[to] + value