sosabixi
Bronze Bitcoiner
Bronze Bitcoiner
Posts: 529
Joined: Wed Dec 13, 2017 10:06 am

深度好文: 如何在BCH上实现ETH式的智能合约?

Tue Jun 11, 2019 12:24 pm





众所周知,因为BCH脚本的限制(其他特比特系分支也一样),开发者只能在BCH主链上实现无状态的智能合约,这就使得BCH智能合约可以做的事情变得很有限。但是近期BCH的资深开发者Chris Pacia发现,BCH可以通过升级实现有状态的智能合约,就像ETH那样。



------以下是译文-----



Malfix是BCH的一个涉及到共识变更的提案,旨在解决交易延展性BUG。这是一个相当有争议性的提案,部分原因是它将成为BCH最重大的硬分叉变化,还有个原因是很多人认为这是不必要的。在本文中,我会介绍一个我们以前从来没考虑过的Malfix的用例 – 给予BCH以太坊式的完整的智能合约编程能力。



乍看之下,这有点疯狂。一个用来修复交易延展性BUG的的提案,怎么可能会让BCH成为以太坊的竞争对手?让我们深入研究下去吧。



以太坊(ETH)



ETH的核心功能是可以让用户在链上创建合约。有了这些合约,用户就可以保存数据。合约定义了许多功能,当用户通过一个新的交易连接到合约时,用户可以读取数据,以某种方式操作它,并且将其保存到合约里面。



这是在区块链上保存数据的核心功能(我们现在开始称其为“状态”),比特币一直缺乏这种向合约读写数据的能力。在比特币中,我们有一种脚本语言,但是它仅能允许我们从一个地址释放币时设置一些条件。绝大多数人会告诉你,这些脚本无法把状态保存到区块链上,并且脚本也无法像ETH那样从任何其他交易中读取状态。



或许,他们其实是可以的?



OP_CHECKDATASIG



2018年11月,BCH新增了一个操作码OP_CHECKDATASIG,当时BSV粉想尽办法阻止这个操作码添加到协议里面,但是最终失败了。



这个操作码看上去非常基础,它所能做的事情只是接受任意签名,公钥和消息,并且验证签名。



<signature><public_key> <message> OP_CHECKDATASIG



这个类型的功能对于加密货币非常重要,但是它竟然没有在一开始就包含在比特币里面,这令人相当惊讶。



虽然这个操作码看上去相当缺乏想象力,但它实际上非常有用,每天我们都从中学习到越来越强大的能力。

Return to “中文”

Who is online

Users browsing this forum: No registered users and 3 guests