当我们在谈论比原链合约时,我们在谈什么
比原链合约是什么?
从合约的根源来找:是一个在计算机系统上,当一定条件被满足的情况下,可以被自动执行的合同。那么比原链的合约也逃不出这个范畴。
我们从合同的四个部分来解析一下比原链合约:
合约主体:比原链上两方或者多方的账户,核心是账户所拥有的私钥来确定的数字身份。
合约条款:由比原链合约代码规定的双方或者多方的权利与义务,合约条款完全取决于合约代码,而非传统合同的法律约束。在比原链中使用条款函数来描述条款,示例如下:
clause ClauseName ( parameters ) { statements } 或者
clause ClauseName ( parameters ) requires payments { statements }
仲裁平台:很明显就是比原链作为仲裁平台,部署并且运行这些智能合约,根据合约条款自动生效或者失效。使用区块链作为仲裁平台,判决过程取决于代码(数学)而非其他代理机构。
执法对象:合约中约定的比原链上的资产。
我们可以尝试给比原链合约下个定义:运行在比原链上的,当设置条款被满足或不被满足时,自动触发某些对资产操作的合同(特殊交易)。
资产的锁定与解锁
因为比原链是一个专注于资产的公链,所以比原链的合约也主要用于定义资产的锁定,以及定义在哪些条件下可以解锁资产。
比原链对于资产的条款函数主要是三种:
verify 语句用来验证定义的某些条件。
unlock 语句用来解锁合约中锁定的资产。
lock 语句可以将原合约中的资产以及支付给条款函数的资产锁定至新的合约中。
这三种语句规定了资产最基本的验证,解锁和锁定功能,然后完成基本的资产锁定—>资产验证—>资产解锁的过程。
基于UTXO的合约的优势
现行流行最为广泛的以太坊合约是基于账户模型的,而比原链是首批在UTXO模型的基础上构建智能合约的公链(比特币的脚本程序非图灵完备)。
以太坊通过智能合约来构建资产,不论是ERC20的同质资产,还是ERC721的异构资产,都是通过合约构建了新的资产;而UTXO天然就是资产,在UTXO上构建智能合约,不需要定义什么是资产,而只要定义对这些资产的操作即可,从而更加的方便灵活。
所以很多比原粉丝都在问比原有没有发币合约,但是从模型上说,比原完全不需要通过合约发币,因为他本身的UTXO就是资产(币),使用比原的高级功能即可完成资产发布。具体见:http://www.8btc.com/bytomwallet
关于模板的价值
比原合约发布的同时,也发布了一系列的模板,除了基础的交易模板之外,还附带了多种附带业务含义的模板,币币交易合约、第三方信任机构托管合约、抵押贷款合约、看涨期权合约等模板带来很大的价值。
首先,这些模板带有的业务含义可以直接使用,项目方不需要再从底层开发一整套的业务流程。
其次,这些模板的发布可以规避由项目方开发水平造成的一些安全问题,直接使用模板而非根据标准进行自定义的开发,加快了开发速度。
最后,这些合约也给开发者提供了借鉴意义,根据模板进行调整可能就能开发出新的东西。
合约发布平台
如果只是发布模板,那么对于非开发者来说仍然无法享受智能合约的好处,比原链在合约发布的同时,在比原全节点钱包集成了合约发布平台,普通用户在了解合约的用法后,可以方便的在合约发布平台上发布合约,将具体的合约ID发送给目标用户,然后目标用户解锁该合约。
合约发布平台是一个去中心化的系统,只要安装钱包即可进行,发布的合约也不需要中心化的机构验证,完全依靠代码触发。
合约发布平台见下:用户可以选择不同种类的合约模板,填入不同的模板参数(这些可能需要进行学习),发布后将合约ID发送给其想要交易的目标用户进行解锁。后续将发布详细教程。
未来展望
现行的以太坊智能合约90%以上都是发币合约,商业化的落地匮乏。比原链合约语言和合约模板的发布,意味着给智能合约加入了新鲜血液,为合约的落地提供了另一种可能性,结合各个具有业务含义的模板开发上层的应用,从而为区块链的实际落地迈出坚实的一步。