CertiK DeepSEA编译器支持蚂蚁链,加码可信区块链

今年九月末,CertiK正式发布DeepSEA 1.0编译器。此版本的编译器相较于今年一月发布的pre-alpha版本DeepSEA,有两个重大更新。
在这次的发布中CertiK完成了旧版本中的未完成特性,例如事件(events),keccak256哈希,calldata等等。
目前,DeepSEA 1.0编译器支持所有在手册中定义的语言特性。
不仅如此,基于蚂蚁链与CertiK的合作关系。在DeepSEA的新版本中,CertiK加入专属于蚂蚁链的关键字,从而让智能合约开发者可以使用和蚂蚁链兼容的32字节标识符。
对于蚂蚁链的支持
蚂蚁集团自2015年开始持续投入区块链相关的研究,试图构建在数字化变革中企业之间的信任。
蚂蚁集团的产品蚂蚁链AntChain已经被使用在包括IT租借、贸易物流、医药保险、跨境汇款、慈善等领域。
以太坊版本和蚂蚁区块链版本的区别
蚂蚁区块链与EVM均与Solidity兼容,因此目前可以使用DeepSEA经过形式化验证的EVM后端来编译合约。
蚂蚁链平台中,solidity合约使用identity替代官方solidity的address关键字。identity表示的合约地址或账户地址,均为为32字节,而官方solidity中address表示的地址是20字节。
在DeepSEA的新版本中,CertiK加入了identity这个关键字让智能合约开发者可以使用这些和蚂蚁链兼容的32字节标识符。
可以从github上下载最新版本DeepSEA编译器,并参阅合约案例以及相关的发布合约的Javascript代码: 
https://github.com/CertiKFoundation/deepsea
在蚂蚁区块链上运行合约
如何申请测试网:
https://tech.antfin.com/docs/2/147534
用户必须注册一个企业级的支付宝账号才能在蚂蚁区块链上发布合约。
获得访问权限后,用户就可以使用蚂蚁金服区块链SDK来发布合约。
在目前的DeepSEA发布中,CertiK已经准备好了一个发布合约的样例脚本,并在DeepSEA的用户手册中写明了详细的使用规范。

首先,从github上下载DeepSEA编译器。

然后切换到contracts/token_ant文件夹,这里包含了一个token.ds样例合约,以及token.js用来发布合约到链上的脚本。
运行DeepSEA来编译这个合约以得到token.bytecode以及token.abi。

第三步使用token.js发布脚本来在链上发布这个合约。
用户需要在这个脚本中加入他们的账户信息。同时用户也可以修改脚本来加入调用合约的实验代码。
将编译的.bytecode文件发送到蚂蚁区块链是这个脚本最重要的部分,如下图所示:

这里的console.log语句会打印出一个包含msg_type,xshash,receipt等等数据的对象。请记录一下这里的txhas以便之后在蚂蚁链浏览器中使用。
在这个回调函数里面,可以对合约进行一些调用。比如对于totalsupply()函数的调用,如下图所示:

最后,通过蚂蚁链浏览器确认合约已成功发布。
用户可以登录蚂蚁集团的Baas平台,在右上角找到浏览器搜索栏。

使用之前记录的txhash,页面将显示已经成功发布的合约:

以上只是一个简单的例子。
蚂蚁集团的SDK提供了更多可以和这个合约交互的API :
https://tech.antfin.com/docs/2/107127
区块链生态系统必须要建立在信任的基础上。
DeepSEA可被直接用于编写合约,不仅如此,编程语言开发者也可以使用DeepSEA来以一种更安全的方式重新编译其他的语言,或是参考DeepSEA规范的形式化语义。
DeepSEA项目为攻克所有可能出现的问题与隐患而诞生,这将极大的支持区块链生态。
复制链接:
【https://certik.org/research/deepsea/】
至浏览器即可查看DeepSEA最新信息。