在区块链上构建的智能合约自动执行:智能合约定期检查合约状态,其中未满足触发条件的事务继续存放在区块链上;而满足条件的事务则被推送至待验证队列,等大多数验证节点达成共识,事务成功执行并通知用户。而当合约包括所有事务都顺利执行后,状态机会将合约标记为完成并于最新区块将其移除,反之继续保存在区块链上等待下一轮共识直至处理完毕。
在区块链上构建的智能合约自动执行:智能合约定期检查合约状态,其中未满足触发条件的事务继续存放在区块链上;而满足条件的事务则被推送至待验证队列,等大多数验证节点达成共识,事务成功执行并通知用户。而当合约包括所有事务都顺利执行后,状态机会将合约标记为完成并于最新区块将其移除,反之继续保存在区块链上等待下一轮共识直至处理完毕。
用更多的技术术语来说,智能合约的概念可以分解为几个步骤。首先,智能合约需要两方或多方之间的协议。一旦建立,两者可以就智能合约被视为完整的条件达成一致。该决定将被写入智能合约,然后加密并存储在区块链网络中。
一旦合同完成,交易就会像其他任何交易一样记录在区块链上。然后,所有节点将使用此交易更新其区块链副本,更新网络的新“状态”。
pub mod pallet { use frame_support::pallet_prelude::*; use frame_system::pallet_prelude::*; #[pallet::config] pub trait Config: frame_system::Config { type Event: From<Event<Self>> + IsType<<Self as frame_system::Config>::Event>; }
智能合约看上去就是一段计算机执行程序,满足可准确自动执行即可,那么为什么用传统的技术为何很难实现,而需要区块链技术等新技术呢?传统技术即使通过软件限制、性能优化等方法,也无法同时实现区块链的特性:1是数据无法删除、修改,只能新增,保证了历史的可追溯,同时作恶的成本将很高,因为其作恶行为将被永远记录;2是去中心化,避免了中心化因素的影响。
基于区块链技术的智能合约不仅可以发挥智能合约在成本效率方面的优势,而且可以避免恶意行为对合约正常执行的干扰。将智能合约以数字化的形式写入区块链中,由区块链技术的特性保障存储、读取、执行整个过程透明可跟踪、不可攥改。同时,由区块链自带的共识算法构建出一套状态机系统,使得智能合约能够高效地运行。