BCH智能合约方案正式推出,我们的征途是星辰大海!

澳门新葡亰手机版 1

.wqpc_wechat_view *{max-width: 100%!important;box-sizing:
border-box!important;-webkit-box-sizing: border-box!important;
word-wrap: break-word!important;} 微信号 功能介绍 第0章
引言最近BCH社区在讨论发token的事,其中omni协议是一个成熟的方案,在BTC上早就实现的,USDT就是使用omni协议实现的代币。本文通俗讲解omni的基本原理。第1章
BCH交易中OP_Return信息的基本原理一笔比特币交易是一个含有输入值和输出值的数据结构,该数据结构植入了将一笔资金从初始点(输入值)转移至目标地址(输出值)的代码信息。在区块链浏览器中查看是这样的左边的是一个输入,是发币者的地址;右边是输出,是收币者的地址。BCH的转账和我们去银行填单汇款很像,汇款单也是要填写汇款人、汇款金额、汇款银行账户、签名、收款人……等等信息。在上述表格的倒数第2行,即“锁定脚本”可以是一种“备注信息”(请注意,这里是“可以是”),只要是以OP_Return开头的都属于“备注信息”。就像我们使用网银转账可有填写备注一样,这种“备注信息”的“锁定脚本”,即BCH节点来说是不作处理的。我们称这种“备注信息”为OP_Return数据。但是这种OP_Return数据,都一定会和这笔交易共同存在BCH的区块里的。这句话的意思是:OP_Return数据是受BCH区块链保护的,这个数据是不可篡改,不可伪造的。哪怕是你再发一笔交易,填写完全一样的OP_Return信息,但这笔交易的txid肯定是不一样的,BCH区块链是可以识别“信息完全相同的OP_Return数据”是属于哪笔交易,在哪个区块的。这意味着,一笔交易tx,外带一个OP_Return数据,这两个信息就会是在全世界唯一性地存在。即使是在同一区块里,相同的输入地址和输出地址外加相同的OP_Return数据,的两笔交易,因为UTXO不同,交易加OP_Return也可以形成唯一性,在区块内部可以排到顺序。OP_Return一旦写入了区块链,就相当于有了一个时间戳,哪怕是同一区块里的交易,都因排序不一样,而有不同的时间戳。这句话是什么意思呢?就类似于,今天的人民日报第2版发表了一篇文章,那这篇文章就带有2018年7月18日这个时间戳。如果明天,在人民日报第2版完全相同的地方,又发表了完全一样的文章,但时间戳是不一样的。下面的这笔交易就是带一个OP_Return备注信息,OP_Retrun一般会在浏览器的输出列出中显示为“地址解析失败”,然后在浏览器的输出脚本部分显示具体的数据。以上信息就是Omni协议成立的关键。第2章
我们来设计一个货币现在我们来设计一个货币。设计货币,最重要的就是三个功能,货币的发行,建立账户,和货币的转移。发行必须有理有据,你不能胡乱发。我们可以约定好,一次性发行,然后永久不增加。也可以约定好按特定的条件来持续增发。只要定义好规则就好。为了方便起见,我们设计一个一次性发行,永久不增加的货币,我们先管它叫TFBC(The
FirstBticoin cash’s token
Coin的首字母缩写),发行76亿(全世界人口,一人一个好了)。初次发行,就将所有的币存放到一个账户上。建立账户就很开户,允许新用户加入到这套货币体系当中来。新开的户,余额是零,然后可以接收币,收到币后可以发送币给别的账户。这个好理解。货币的转移,或叫支付,是我们使用这个货币的过程。这个过程必须是安全的和让用户可识别的。你不能出现一个人原本是没有币,他却能支付,即这套货币系统需要能识别出哪个账户有币,然后才能支付,也不能支付的总额超过了账户的余额。让用户可识别的就是说,你得让人知道他账户上有多少币,这个不能显示是假的,或者有人造假说自己有多少币,系统得能识别。有这三个功能,就实现了一套最简化的货币。我们使用一种中心化的思维来设计的话,就是使用一个账本,形象点说,就是一个excel表格。表格的第1列记录的是账户名字,第二列是账户余额。货币的发行,就直接在excel表里填写一个账户,随便叫个名字,就叫“闪电”好了,余额是76亿。新建账户就是在excel表格里增加一行,比如新建一个叫“雷神”的账户,余额为0。货币的转移,比如“闪电”这个账户要转1亿个币给“雷神”。要完成这个过程只需要修改两个数,第1是将“闪电”的余额改为75亿,将“雷神”的余额改为1亿,就完成了。为了保证转移过程的安全性,我们会要求记录所有的历史支付记录。这样可以通过所有的历史记录回溯到初始发行的货币量,回溯就是将支付的过程逆过来,原本“闪电”支付给“雷神”1亿,回溯就变成了“雷神”支付给“闪电”1亿。如果回溯的最终结果和发行是一样的,那就可以说明整个支付过程是没有问题。有了历史记录,我们也可以对所有的账户余额进行回溯,回溯的结果一定的所有的账户余额都为零(除了初始发行的那个账户)。那如何保证记录历史支付呢?我们可以直接在excel表的第3列开始就作为支付记录,比如“闪电”支付给“雷神”1亿,则在“闪电”的第3列记录“-1亿”,而在“雷神”的第3列上记录“+1亿”。而每个账户的最终余额,就是这些历史记录的加总。这个列数我们假定是无限的,这样就可以记录无限次数的交易了。如果我们将上述一张excle表,复制到很多台电脑上,然后这些电脑可以同步更新数据,那我们就使用了去中心化的方式来实现这套最简化的货币体系。但是,如何保证货币的发行和转移是安全的呢?下面我们来讲如何使用Bitcoin
Cash区块链来设计一个安全的货币发行和转移系统,即Omni协议。第3章
Omni协议我们从第1章的描述中就可以看到,因为有OP_Return数据的存在,将BitcoinCash的区块链里的OP_Return数据提取出来,就是一个非常好的“excel表”,每一次对这张表的修改,都会被记录在区块链里,而这些数据是不可篡改,不可伪造的。按第2章的描述,就可以利用“OP_澳门新葡亰手机版,Returnexcel表”来设计一个去中心化的货币发行和转移系统。现在我们来利用BCH区块链来设计一套最简化的货币系统。首先是初始发行。我们使用一个BCH钱包来发一笔带自定义OP_Return数据的交易,交易的输入是自己控制私钥的地址A,输出有两个,第一个输出还是地址A,即这笔交易是自己发给自己,第二个输出是一个OP_Retrun数据。这个OP_Return数据写的意思就是“使用地址A当成创世账户,给这个账户注入76亿个TFBC货币”。这笔交易我们记为“铸币交易tx1。”因为BCH系统是不会去识别这个OP_Return里的数据的,所有的BCH节点都会直接忽略掉这个数据。那我们给bitcoincash的节点钱包做一个外挂,这个外挂程序专门用来解析这个OP_Return数据。这个外挂结合上述tx1和这个OP_Return数据,就可以解析出一张excel表格,表格的第一列就是账户“地址A”,第二列就是“余额76亿TFBC”。因为OP_Return在BCH网络是不会被检验的,可以被随意填写。有没有可能别人也发一笔交易,包含完全相同的OP_Return数据,来伪造我们上面发行的76亿货币呢?答案是不能的,因为他无法伪造tx1,而外挂程序需要结合tx1来解析出这张excel表格。那么创世交易的的创造者能不能篡改或伪造铸币交易tx1呢,也是不能的,因为创造者可以使用相同的输入和输出,但无法伪造成相同的UTXO,否则就会被BCH网络确定为双花。在这个新发生的货币体系里,账户是和BCH共用的,新建账户也就是新建一个BCH地址。这个很简单。转移货币的过程是这样的,第一次转移是从铸币交易往外支付的,比如支付给地址B1亿个币。支付的过程需要使用“铸币地址A”构造一笔BCH交易,输入是地址A,输出之一是地址B,金额为546聪(这是因为BCH网络的防尘设计,如果删掉了这个限制,金额就可以为0),带上矿工费,第二个输出是一个OP_Return,里面的数据写会被解析为“账户A向账户B支付1亿个币”,我们记这笔BCH交易为tx2。OP_Return里的数据,在BCH网络是不会被处理的,但在上述的BCH的外挂程序里会被解析出来,解析的结果就是更新这张货币的状态表,如下表。同样的,因为tx2被BCH区块链打包之后,就不可能再被伪造了,除非BCH网络被回滚了。所以这个货币的状态表就无法被伪造了。只要地址B上有BCH余额可以支付防尘设置和矿工费,就可以给其他地址支付这个货币了,然后外挂程序就会拿这笔交易和OP_Return里的数据,解析更新货币的最新状态表。以上就是最简化的Omni协议实现的代币的原理,为了更实用性,代币一般会增加很多功能,比如锁定功能,自动化转币功能……第4章
Omni协议的现在情况Omni协议在BTC是已经做好了,在BCH上还没有。USDT就是使用Omni协议设计出来的。OmniCore就是在BTC上使用Omni协议实现的一个客户端,使用这个客户端就可以在BTC上发币,需要同步区块。Omni
Core下载链接:

结束语OP_Return可以提供非常非常多的想法,好好利用OP_Return,BCH将大有作为。

澳门新葡亰手机版 1

关于智能合约,你能想到什么?是凭借智能合约发Token功能一举冲上市值榜第二的以太坊?还是依靠智能合约概念持续升温,成就史上最大ICO的区块链项目EOS?总之,智能合约是一个梦幻的词汇,就像所有的初创互联网公司都想与区块链扯上关系一样,所有的区块链项目都想与智能合约搭成“班子”。智能合约缘何有这样的魔力?在文章的后面,我会通过对BCH搭载智能合约有什么的意义来进行侧面说明。

BCH最近被热议的智能合约是一个名为Wormhole的BCH项目,该项目始于今年的5月份,是一直以来备受关注的几个重点项目之一。据开发者介绍说,在项目的初期,他们几乎看遍了所有的发Token的相关方案,但都没有很好的解决办法,最后是在omni协议上找到了可能,并且成功的对其进行了fork和改进,才有了我们现在看到的Wormhole协议。

项目简介和开发者们

Wormhole协议, 一种基于Bitcoin
Cash的智能合约实现方案。方案的思路来自于OmniLayer协议,它是一种利用OP_RETURN操作码实现Token发行的方案。OmniLayer协议运行在bitcoin的区块链上,该协议也是泰达币日常发行和流通的技术基础。虫洞项目的开发人员fork了这份协议,将其移植到BCH区块链上,从而实现发行Token的功能。协议原生Token命名为Wormhole
Cash。

虫洞项目的署名开发者包括::姜家志,姜和平,温隆。除此之外,Omni团队在该方案开发过程中也给予了很多帮助。

Wormhole协议运行原理

Wormhole cash是基于Bitcoin
Cash区块链实现的,在不改变现有BCH共识规则的情况下,使得BCH区块链实现Token的发行、转移和燃烧等基本功能。基于BCH发行的Token,其交易信息被写在OP_RETURN上,其Token的生成、燃烧以及转移都需要BCH交易完成。识别OP_RETURN里的数据才能够完成对于Token的发行,转移和燃烧。Wormhole协议复用了Bitcoin
Cash的交易转账系统。

Wormhole协议的优势

Wormhole与其它的BCH智能合约方案相比,最大的优势在于没有改变共识规则,也就是说,该协议对于BCH区块链没有安全方面的影响。其它的BCH智能合约方案,比如BCH开发团队Bitcoin
Unlimited的技术人员Andrew
Stone提出的OP_GROUP方案,该方案提议增加OP_GROUP操作码来实现发Token功能,这个方案需要修改BCH的共识规则,社区认为这种方案存在技术风险,无法保证BCH底层协议的稳健和安全。

其余的方案,比如epobc和OBITO也都存在这样或那样的问题,Wormhole或许不是所有加密货币中最优秀的方案,但从目前来讲是比较适合BCH的,因为BCH的每一步都处在争议的边缘,越是如此,安全就显得越是重要。

Wormhole Cash:协议中的基础货币

Wormhole
Cash是协议中的基础货币,其生成是通过燃烧生成(Proof-of-Burn)的机制,用户可以通过向特定地址发送BCH来获得WHC,最低兑换1BCH,兑换比例为1BCH=100WHC。值得一提的是,兑换是单向的,所以你无法用WHC兑换BCH,WHC可用于市场自行交易。

关于“WHC为什么只能是单向锚定,无法与BCH进行双向锚定?”这个问题,开发人员表示:目前并没有可行的双向锚定方法,可以做到即安全又去中心化,还能够有效应对区块链不可避免的回滚风险。

新创建的Token需要收取1 WHC的手续费,手续费会自动燃烧,WHC总供给会减少,
给基于Wormhole协议创建的某种Token发“空投”需要支付手续费,早期运行的Wormhole协议中,转账不需要支付WHC做手续费。

Wormhole协议目前支持的三种发币模式

  1. 固定Token。预挖所有;不能增发,不能燃烧;不能众筹。

2.
可众筹Token。创建后,自动众筹;创建者不拥有所有Token;众筹结束后,未众筹完的Token自动转入创建者地址;不能增发,不能燃烧。

  1. 可管理Token。创建时,Token数量为0;不能众筹;可以增发,可以燃烧。

前两种都好理解,币市中也都有类似的例子,与以太坊不同的在于“不能

燃烧”这个特性。第三种创建模式,是硬编码在wormhole协议里面,并不依赖于智能合约,缺点是无法定制发Token,优点在于安全,操作简单。

Wormhole协议的不足

Wormhole协议到底来说还是个概念,还没有出现实际的列子,所以硬要找自身的不足是没有根据的,但从市场来看,Wormhole即将面临的正面对手是已经发行Token千余种的以太坊。以太坊已经先入为主,有了一套较为成熟的发币机制,并且无需成本。除了以太坊外,还有号称区块链3.0的EOS也在筹备自己的智能合约平台。Wormhole协议虽说已经有了具体的发币模式,但未来能抢占多大的市场还是个未知数。

在BCH上发Token的优势

对比以太坊来说,BCH的主要的优势有两点:安全和不拥堵。

以太坊因为固有的生态缺陷使得其安全性备考质疑,尤其是在The
DAO事情发生后,当时价值6000多万美金的以太坊丢失,直接造成了以太坊的分叉。不仅是以太坊,基于以太坊发行的Token,比如BEC,SMT等都相继被检测到了漏洞。

WHC的安全模型是通过POW工作量证明来保证的,比特币近10年的安全运行验证了这个机制的可靠性。WHC复用了整个BCH的交易系统,使用了BCH的去中心化时间戳服务器模型,时间戳不可复制,不符合Wormhole协议的数据不会被Wormhole协议的节点解析。

以太坊交易拥堵致使Gas费用加倍已经不是一天两天了,而BCH无限扩容的特性使得拥堵的情况永远不会发生。

智能合约对于BCH的意义

  1. 推动BCH的普及和使用,促使BCH价值回归

这一点主要得益于Wormhole协议中的基础货币WHC,因为如果在BCH上发行Token,不可避免的就需要使用BCH进行兑换WHC,发的Token规模越大,所使用的BCH就会越多。众筹形式的区块链项目在众筹时,使用的数字货币也将是BCH。

以太坊凭借着智能合约发Token功能,其交易量早已超过了比特币,所以,如果Wormhole协议能成功移植到BCH区块链上,并且被广泛使用的话,BCH的交易量将会出现剧增,这会促使BCH被低估的价值会重新回归。

  1. 加速BCH相关应用研发

去中心化应用(DApp:Decentralized
Application)是区块链社区中出现的新颖想法之一。凭借自主执行的智能合约,在以太坊上面已经涌现出数百种去中心化应用,如果在BCH上搭建智能合约平台,基于BCH可扩容的特性,应用研发情况应该不会输于以太坊。另外,现有的BCH应用如果遇上智能合约会不会出现新的惊喜,也是令人期待的一件事。