BCH上线Cashscript 可在主链实现智能合约

2019-07-02 19:00:18
来源: 腾讯

  【摘要】 BCH上线Cashscript 可在主链实现智能合约

自BCH在去年5月份升级之后,实现智能合约功能一直都是BCH发展的其中一个方向。BCH社区的开发者为了实现这一功能在不断努力。经历一年多的时间,BCH在智能合约、公链方面也取得了一定的成绩。

BCH经过升级,在OP-return容量扩大的基础上,BCH社区相继推出虫洞、SLP等代币方案实现了BCH区块链发行Token的功能。目前已经有多种代币通过BCH网络被创建出来,其中包括合规的稳定币USDH等。

去年11月的那次升级,BCH又新增了一个极其重要的操作码op_checkdatasig,它允许脚本验证来自区块链外部的任意消息,从而打开了许多令人兴奋的可能用例,其中也包括智能合约用例,例如区块链上的国际象棋。利用op_checkdatasig操作码,BCH可以实现有状态的智能合约。Local Bitcoin.com交易平台的去中心化实现有很大一部分正是op_checkdatasig的功劳。

虽然BCH的智能合约功能早就已经实现,但是BCH链上的智能合约用例却是寥寥无几,这是为什么呢?

其中,最主要的原因是缺少编程工具。众所周知,ETH的智能合约之所以应用广泛,最重要的原因是简单。ETH有很多可参考的智能合约案例,用户可以直接套用。相比之下,BCH社区中的智能合约并没有统一的语言和编程工具,仅有的几个案例也都是技术非常强的开发者编写,普通开发者即使想要创建智能合约也一筹莫展,不知道如何入手。

不过,这一问题即将得到解决。Cashscript是一种高级编程语言,可以在BCH主链上实现智能合约,允许用户以熟悉的方式编写智能合约。据它的开发者 Rosco Kalis表示,Cashscript的灵感来自以太坊的Solidity,但并不相同。CashScript语言允许用户以非常直接,可读和可维护的方式编写现金合约。与以太坊相比,比特币现金的智能合约虽然在功能上是有限的,但是它允许用户在货币支出上设置较为复杂的条件。

CashScript的出现将BCH智能合约的编写过程变得简单规范,而且也提高了开发者的效率。开发者通过使用CashScript可以快速高效的编写智能合约案例。

昨天,开发者Gabriel Cardona在其推特上宣布,CashScript文档已经发布。这对于开发者来说,无疑是一个非常好的消息。

CashScript文档主要分为4部分:入门,Cashc CLI,CashScript SDK参考,CashScript语言。在CashScript文档中有很多智能合约的案例,而且还有一些CashScript语言的使用方法。开发者可以依照此文档创建基于BCH网络的智能合约。

根据CashScript文档,CashScript中的合约是一组函数的集合,这些函数可用于支付锁定在该合约中的资金。用户可以使用合约的参数将这些合约实例化,并且可以通过指定正确的函数参数来调用这些的函数。CashScript语言唯一的控制结构是if和else,由于它们与底层比特币脚本不兼容而导致循环和返回语句被遗漏。If-else语句遵循C或JavaScript中已知的常用语义。CashScript是一种静态类型语言,这意味着需要指定每个变量的类型。类型可以在包含运算符的表达式中相互交互。

CashScript将编译器作为独立的命令行工具,称为cashc。它可以通过npm安装,用于将.cash文件编译成.json工件文件。这些文件可以导入CashScript JavaScript SDK(或将来的其他SDK)。CashScript SDK还具有直接导入和编译.cash文件的功能,因此不需要使用cashc命令行工具。

目前,与智能合约交互并将其集成到应用程序中的主要方式是使用CashScript SDK。此SDK允许用户编译.cash文件或导入.json工件文件,并将它们转换为Contract对象。这些对象可用于创建新的合约实例。而这些实例可使用.cash文件中实现函数与合约进行交互。

CashScript文档的推出对于普通的开发者而言,不仅提高了开发效率,而且降低了开发难度,开发者可以根据文档中的内容和参考案例进行智能合约的搭建。与此同时,BCH智能合约的参与门槛也会有所降低,从而吸引更多的开发者加入到BCH智能合约的创建中来,这将为BCH网络出现杀手级应用奠定基础。CashScript亦将书写BCH智能合约新篇章。