http://www.7klian.com

​比特币上的智能合约

比特币上的智能合约



与流行的看法相反,比特币自诞生以来就具有智能签约功能,,具有一种称为脚本的基于堆栈的本地编程语言。每个比特币交易都由输入和输出组成。每个输出都使用指示合约义务的脚本锁定某些比特币。如果输入中包含执行输出智能合约的脚本,则它将解锁该输出中的比特币,并将其移至新的输出中。这就是比特币所有权转让的工作方式。

脚本通常被认为是极其有限的,因此无法进行复杂的智能合约。人们经常提到的比特币智能合约的缺陷是缺乏状态。以太坊应该克服的主要限制之一就是证明它的存在。

有些智能合约本质上是有状态的,因为它们要求缔约方在多个阶段进行交互并依赖于时变状态,例如链上投票和博彩。我们展示了一种维护比特币智能合约状态的通用机制。我们还使用sCrypt(一种可编译为本机脚本的高级语言)实现有状态合约。

先决条件:OP_PUSH_TX

在介绍如何维护比特币智能合约的状态之前,我们介绍了一种称为OP_PUSH_TX的强大技术。可以将其视为伪操作码,它将当前事务推送到堆栈中,然后可以在运行时对其进行检查。更准确地说,它可以检查在BIP143中定义的签名验证中使用的原图像。原像的格式如下:

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

相关文章阅读