如何实现智能合约?智能合约是如何运行的?
当智能合约部署到以太坊网络时,任何人都可以调用智能合约的功能。
工作原理:
构建智能合约:智能合约由区块练内的多个用户共同参与者制定,可用于任何用户之间的任何交易行为。协议当中明确规定了交易双方的权利和义务,开发人员将这些权利和义务以电子化的方式进行编程,代码中包含会触发合约自动执行的条件。
存储合约:一旦编码完成,这份智能合约便被上传到区块练网络上,即全网的各个节点都可以接收到这份合约。
执行合约:智能合约会定期检查是否存在相关事件和触发条件,将满足条件的事件推送到待验证的队列中,区块练上的验证节点先对事件进行签名认证,以确保其有效性,等大多数验证节点对该事件达成共识,智能合约将成功执行,并通知用户。
智能合约合约一般具有值和状态两个属性,代码中用If-Then和What-If 语句预置了合约条款的相应触发场景和响应规则,智能合约经多方共同协定、各自签署后随用户发起的交易提交,经PZP网络传播、矿工验证后存查在区块练特定区块中,用户得到返回的合约地址及合约接口等信息后即可通过发起交易来调用合约。矿工受系统预设的激励机制激励,将贡献自身算力来验证交易,矿工收到合约创建或调用交易后在本地沙箱执行环境(如以太坊虚拟机)中创建合约或执行合约代码,合约代码根据可信外部数据源(也称为语言机,Oracle)和世介状态的检查信息自动判断当前所处场景是否满足合约触发条件以严格执行响应规则并更新世介状态。交易验证有效后被打包进新的数据区块,新区块经共识算法认证后链接到区块练主链,所有更新有效。
币安链和其它许多项目类似,比如EOS。它具有高吞吐量和高性能的底层匹配引擎,可以同时迅速的支持和处理大量交易。但是不够灵活性,无法支持许多复杂的Dapp。
所以币安开发团队又开发了一条币安智能链。该智能链将是独立的,但会与币安链相互依托,在保留其高性能高吞吐量的同时还支持智能合约功能。
为什么是两条链?
其白皮书中是这样说的:如果在币安链(BC)上运行智能合约会导致交易功能变慢,给币安的去中心化交易所的运行增加许多不确定性因素。
所以团队才萌生了另外开发一条链的念头,智能链将是一个独立的并且兼容ETH2.0的智能合约区块链。