要理解智能合约的概念和作用,首先需要了解区块链的基本架构。在区块链的世界里,区块链本身是一种公共账本,而它所包含的所有都会被记录在账本中。其中有一个重要的概念就是共识机制,也就是所谓的“共识”。
不同的节点通过不同的共识机制达成一致。共识机制越多,达成一致就越容易。所以,区块链技术就是一个去中心化的公共账本。
if (lte(time, beforeOrAt.blockTimestamp, target)) { if (beforeOrAt.blockTimestamp == target) { // 如果时间戳相等,那么可以忽略 atOrAfter 直接返回 return (beforeOrAt, atOrAfter); } else { // 当前区块中发生代币对的交易之前请求此函数时可能会发生这种情况 // 需要将当前还未持久化的数据,封装成一个 Oracle 数据返回, return (beforeOrAt, transform(beforeOrAt, target, tick, liquidity)); } } // 将 beforeOrAt 调整至 Oracle 数组中最老的数据 // 即为当前 index 的下一个数据,或者 index 为 0 的数据 beforeOrAt = self[(index + 1) % cardinality]; if (!beforeOrAt.initialized) beforeOrAt = self[0];
“智能合约是一套以数字形式定义的承诺,包括合约参与方可以在上面执行这些承诺的协议”。承诺意味着合约参与者同意的权利和义务,合约的性质和目的也是承诺定义的。数字形式表示着只要双方达成协议,合约就必须写入计算机程序。
智能合约规定的权利和义务由计算机或计算机网络强制执行,但由于缺乏相应能够支持可编程合约的数字系统和技术,所以在智能合约提出的时候相关的应用一直未能发展。
区块链技术的诞生奠定了智能合约应用的基础,由于区块链的可编程、去中心化、可追溯和不可修改等特点,被视为智能合约天然的支撑技术。