「区块链基础概念100」:交易确认 | 034
「区块链基础概念100」由火星财经「学习区块链」频道出品,在区块链基础概念之上延展深度阅读,并紧密连接产业,关注产业发展热点和趋势。
1. 基础概念
交易确认/ Confirmation
交易确认表示该笔交易被区块链网络所记录并确认,当交易发生时,记录该笔交易的区块将进行第一次确认,并在该区块之后的链上的每一个区块进行再次确认;当确认数达到六个及以上时,通常认为这笔交易比较安全并难以篡改。
零确认交易/ Zero Confirmation Transaction
零确认交易是指,交易卖家不等待该笔交易被区块链网络节点确认,即交付出售的东西。零确认交易是一种信任的标志,卖方必须相信买方在该笔交易被区块链中的其他节点记录前不会再尝试将其持有的加密货币再花在其他地方。
近日,比特币核心开发人员jonasschnelli在推特发帖表示,自己花费比特币在adafruit上购买东西没有成功,并质问Bitapay加密支付处理公司为什么拒绝了自己的交易,并且在支付后的两天内甚至都没有通知自己。
而Bitpay没有对此做出回复,反而是另一个支付处理商Flowee The Hub在推特下面进行了回复,他表示:让我说对了,你的投诉是关于你发送的一个BTC交易,上面写着“我将以更高的费用把这笔钱翻倍”,这被商家认为是一个坏主意从而拒绝了你的交易。RBF是从商家那里偷钱的,你最好使用CPFP或者只使用BCH!
BitPay为什么不愿意接受比特币RBF?
BitPay之所以不愿意受理jonasschnelli的支付申请,并不是因为这家支付处理商店大欺客,而是这位比特币核心开发人员实属无理取闹,一方面在BitPay付款注意事项中,鲜明的标出了不接受比特币RBF转账;另一方面是因为RBF面临着极大的双花风险,对于零确认的小额交易来说非常的不划算。
RBF方案是由加拿大比特币核心开发者Peter Todd提出的费用替代法(RBF)工具。比特币从诞生以来,中本聪就设置了一个先到先得的交易规则,就是说假如同时有两笔合法的交易,其中先到达节点的交易就会被优先采纳,而费用替代法(RBF)则改写了这个规则,即:如果同一个地址发起两笔交易,则手续费更高的交易胜出,采纳RBF费用替代法本来是为了提供给比特币用户一个快速交易的选择,但它其中一个不好的影响是让零确认的交易变得容易被双花。
在今年3月份,就出现过黑客利用RBF在比特币的ATM机上盗取比特币的事件,据外媒3月13日消息,四名加拿大男子因在多个城市对比特币ATM进行双花攻击而被通缉,据称在去年,这个团伙总共对比特币ATM机进行了112次双花攻击,获得的利润达到了20多万美元,平均每次攻击获利1800美元。
BCH社区为什么推崇零确认交易?
费用替代法(RBF)最初被提出时,遭到了开发者社区成员的大量反对,包括Adam Back 、Gavin Andresen、Mike Hearn、Jeff Garzik等技术大佬都认为RBF是糟糕的。后来,经过社区的讨论,Opt-in RBF方案被提出了,简单说,这里的RBF是一种可选项,默认是不启用的,这种可选方案使得商家如果认为接收零确认的RBF类型交易有问题,其可拒绝这类交易。上述的比特币ATM机、BitaPay都支持零确认交易,所以存在黑客利用这一机制盗取比特币的可能。
而零确认交易本身是一个非常好的想法,能让加密货币交易实现真正意义上的秒到账,比特币的点对点电子现金系统也就有机会实现,比如曾经占据比特币链下交易量一半的赌博网站SatoshiDICE就支持零确认交易,因为没有人愿意下注10分钟后再出结果。但零确认的设计存在被双花攻击的风险,这也是该技术一直没有被大范围应用的原因。
BCH社区一直致力于如何提高交易效率,提升BCH货币实用体验,比如社区经常提及的缩短出块想法、ABC开发组提出的预共识协议,BU开发组研究的石墨烯等,这些手段都有利于加强零确认的安全性。
多数情况下,双花攻击很难发生,因为大部分的基础设施商(浏览器、钱包、矿池)在检测到双方交易时,一般会标记出来或者进行警告。另外,对于小额交易来说,双花攻击的成本往往大于收益,因为小额交易的币少,手续费低,要发起双花攻击的另一笔交易需要付出更高的手续费。
由于BCH区块空间大,可容纳的交易量多,所以交易的手续费非常低,比如7月24日的平均手续费就在0.0033美元,凭借这个优势,BCH不仅不需要RBF工具,而且还可以放心的使用零确认小额交易。
导读:BCH不仅不需要RBF工具,而且还可以放心的使用零确认小额交易。
比特币ATM机被成功双花112次,零确认交易和RBF谁该背锅?
据外媒3月13日消息,四名加拿大男子因在多个城市对比特币ATM进行双花攻击而被通缉,据称在去年,这个团伙总共对比特币ATM机进行了112次双花攻击,获得的利润达到了20多万美元,平均每次攻击获利1800美元。
那么,问题来了,到底是什么原因导致比特币ATM机被多次成功双花呢?
我们可以肯定的是,这些被攻击的ATM机,都是接受零确认交易的,而这些人正是利用了这一事实,双花比特币以换取现金。
那么,仅仅是因为ATM机接受零确认交易造成的吗?
有加密货币社区成员(主要是BCH和BSV)提出了另一种说法,即加拿大比特币Core开发者Peter Todd所提出的费用替代法(RBF)工具,使得这些双花交易成为可能。
例如,这位被Roger Ver点赞的哥们儿是这么认为的:
“这些家伙使用RBF对比特币ATM机进行了双花攻击,通过112笔交易偷走了20多万美元。 Samson是对的,比特币不再是一个支付系统。”
而作为RBF方案的提出者,Peter Todd当然不想背这个锅,他是这么说的:
“不是的,RBF对此不背锅。比特币从根本上就无法保证链上的零确认交易。从来没有,也永远不会。那些声称不这样做的人,是无知或不诚实的,他们常常向你推销不安全的产品。 ‘零确认强盗’很好。”
先不谈错究竟在谁身上,我们先来了解一下这个费用替代法(RBF)到底是怎么回事?
是这样的,比特币从诞生以来,中本聪就设置了一个先到先得的交易规则,就是说假如同时有两笔合法的交易,其中先到达节点的交易就会被优先采纳,而费用替代法(RBF)则改写了这个规则,即:如果同一个地址发起两笔交易,则手续费更高的交易胜出,采纳RBF费用替代法的其中一个影响,是让零确认的交易变得容易被双花。
对此,Peter Todd是这样描述的:
“连续创建两笔交易,第一笔向指定的地址支付一笔指定的金额。而第二笔,则通过支付更高费用的交易来双花第一笔交易,只支付找零地址。此外,你还可以选择指定第一笔交易附加OP-RETURN、多重签名以及“黑名单”地址输出。有些矿工不接受这些输出类型的交易,这些矿工将接受第二笔双花交易,帮助你实现一笔成功的双花。”
也因此,费用替代法(RBF)最初被提出时,遭到了开发者社区成员的大量反对,包括Adam Back 、Gavin Andresen、Mike Hearn、Jeff Garzik等技术大佬都认为RBF是糟糕的。
后来,经过社区的讨论,Opt-in RBF方案被提出了,简单说,这里的RBF是一种可选项,默认是不启用的,这种可选方案使得商家如果认为接收0确认的RBF类型交易有问题,其可拒绝这类交易。
由于这种设定,Opt-in RBF方案后来便逐渐被比特币社区接受了。
谈到这里,我们似乎会糊涂了,这究竟是怪比特币ATM机商家接受零确认交易呢,还是要怪RBF方案呢?
你怎么看?
消息来源:https://www.ccn.com/bitcoin-atm-double-spenders-police-need-help-identifying-four-criminals
编译:隔夜的粥
稿源(译):巴比特资讯(http://www.8btc.com/bitcoin-atm-double-spenders)
导读:四名加拿大男子因在多个城市对比特币ATM进行双花攻击而被通缉。
可编程货币的魅力:一种比特币现金零确认安全支付方案和其有效性博弈
第1章 零确认交易的安全性分析
我曾经写过一篇文章讨论比特币现金的零确认安全性,在这里《比特币(包括BTC和BCH)的零确认到底安不安全?》。想深入学习可编程货币魅力的,还请读完这篇文章。
为了叙述方便,这一章简单描述下对零确认交易的双花过程。
用户A对商家B发起一笔支付,交易记为tx1,我们假定这笔交易是一个Input,一个output,一个找零地址。
在tx1还没有被打包进区块时,商家B出于对零确认的安全信任,直接给用户A发货了(假定是不需要物流的商品,比如电子书)。因为比特币现金平均一个确认需要10分钟,对于很多支付场景来说,10分钟的等待时间有点长。
用户A收到货后,又用相同的input构造了一笔和tx1相冲突的交易tx2,output设定为他自己的地址。并且广播出去。
如果矿池优先打包了tx2,那tx1就作废了,这时,双花就成功了。用户A即得了货,又拿回来自己的币。
而如果矿池优先打包了tx1,则用户A双花失败。但这对用户A来说也没有损失,只是没占到便宜。
这里的关键就是用户A发起双花交易是没有成本的,哪怕是双花了,用户A不会受到任何惩罚。下面讨论一种让用户A发起双花交易tx2就会有成本的办法。
第2章 使用新操作码OP_CHECKDATASIG构建带保证金的交易
BitcoinABC开发组在下一个版本中设计了两个新的操作码,OP_CHECKDATASIG(CDS)和OP_CHECKDATASIGVERIFY(DSV)。使用这两个操作码,可以设计一种特殊的交易,让发起双花交易tx2有成本。
老外Jonald_Fyookball写了一篇文章介绍这种方法,《Awemany’s 0-Conf Solution》https://www.yours.org/content/awemany%E2%80%99s-0-conf-solution-05c960d3d60e
具体的原理我通俗地描述如下:
用户A对商家B发起一笔支付,交易记为tx1,这笔交易的构成如下:一个input1,一个商家的output1,一个用户自己的找零output2,还有一个属于用户的“保证金output3”。特殊就在于这个output3。
这个“保证金output3”是使用操作码CDS构建的锁定脚本,锁定脚本里压入了“交易1的input1作为数据(记为data1)”。这种锁定脚本的解锁操作方法有两种,第一种是普通的用户A使用私钥签名进行解锁脚本。第二种就是,提供“data1的签名,data1,output3”,即可解锁。
而如果用户A发起双花交易tx2,tx2的构成是:一个Input1,一个用户A的地址,一个用户A的找零地址。这个tx2必然包含一个对“data1的签名”。
只要用户敢广播tx2,就相当于广播了"data1的签名",那任何人都可以拿到这个签名然后将tx1里的“保证金output3”花掉。
一般情况下,矿工会优先拿到这个签名,并尝试构建花费output3的UTXO。矿工使用上述第二种解锁“保证金output3”的赎回办法,发起交易tx3去花掉。发起tx3,必然要打包tx1和tx3,并且忽略掉tx2。因为tx1是tx3的父交易。
这样用户A发起tx2就得不到矿工的打包。相当于tx1的零确认是安全的。
第3章 防止不了矿工的零确认双花
通过CDS操作码来构建带保证金的交易的方式,来获得零确认的安全保证,关键在于用户A广播双花交易tx2后会被矿工花掉保证金。但如果用户A根本就不广播tx2呢?
如果用户A是一个矿池,矿池可以不广播tx2,而直接在自己挖到的块里打包进tx2,就可以完美双花成功。一旦tx2被打包,那tx1就作废了,也就不存在“保证金output3”了。
事实上,非算力用户发起的比特币现金的零确认交易安全性非常高,普通用户要双花零确认交易实在是太难。真正有能力对零确认交易发起双花的是矿池用户。这我在文章《比特币(包括BTC和BCH)的零确认到底安不安全?》的第3章有描述。
所以我认为使用CDS防零确认双花是说不通的。
第4章 结束语
白高兴一场。
导读:加密数字货币是一种可编程的货币,可编程就有意思了。本文分享一个特别有意思的零确认解决方案,和其有效性分析。
3.产业动态
“雪花”还是“雪崩“?——Avalanche能否成为下一代主流共识协议?
摘要
分布式系统中的共识问题一直是计算机科学领域中的重要问题。经典共识协议具有强一致性、高效的特点,然而却存在通讯成本高,封闭性的问题;因比特币而为人所熟知的中本聪共识协议具有开放性,无权限的特性,却也存在成本高昂、浪费资源且性能有限的局限性。在2018年诞生的Avalanche共识协议则是结合了上述两类协议的优点,借鉴中本聪协议的类似设计,采用概率性的安全保证,使用可调的安全参数来使共识失败的概率任意小;另外加入了BFT属性,增加系统的效率和安全性。
Avalanche是一种基于亚稳态机制的分布式拜占庭容错协议,共由Slush,Snowflake,Snowball和Avalanche四个子协议组成:
(1)Slush协议是Avalanche协议系列中最基础的部分,该协议通过多次重复的随机抽样方式来使节点之间达成共识;
(2)尽管Slush协议是稳定的,但有拜占庭节点存在的情况下,该协议并不能提供强大的安全保证。为此,Rocket team在Slush协议的基础上增加了一个计数器(counter)来增加系统的安全性,该协议即Snowflake协议;
(3)Snowflake协议要求每次颜色的翻转都会重置计数器,为了使系统获得更高的安全性,在Snowflake协议的基础上引入了一个更加持久的可信度,这就是Snowball协议;
(4)Avalanche是亚稳态协议族的最后一个协议,它在Snowball协议的基础上增加了有向无循环图(DGA)来记录所有的交易状态。
在Avalanche协议的论文发布后,人们还没有发现Avalanche协议与零确认交易之间有什么关系。然而在2018年12月左右,BCH社区的技术人员认为可以使用Avalanche协议来保证零确认交易的安全性。然而,上述方案只是BCH技术人员的初步设想,目前BCH的Avalanche协议仍然在进行开发中,预计2019年底或2020年初进入主网测试阶段。
风险提示:数字货币具有高风险性,区块链技术处于发展早期尚不成熟,政策监管态度不明。
报告正文
1.引言
在区块链领域,不是每天都会有人出来说“我有一个新的颠覆性突破”,即便有,也更多地来源于广告营销。从十年前中本聪在比特币白皮书中提出的PoW机制,到五年前以太坊的智能合约,近几年能有上述这些如明星般璀璨的技术突破案例乏善可陈。然而,在2018年出现的Avalanche共识协议可能是其中的例外。
2018年5月, 一个名为“Rocket team”的匿名团队在星际文件系统(IPFS)上发表了一篇名为《从“雪花”到“雪崩”:一种新型的亚稳态共识协议族》的论文,该论文立刻引起了人们巨大的关注。Avalanche是一种新型的区块链共识协议,由Rocket team从gossip协议中获得灵感,通过亚稳态机制来保证系统的安全。相比于目前主流的共识算法,Avalanche具有许多优良特性,有望成为下一代区块链共识算法中的明珠。正如康奈尔大学教授埃米·冈·瑟勒(Emin Gun Sirer)所言:“Avalanche描述了一种新的共识协议,它将中本聪共识协议与经典共识协议相结合,这是一次重大的突破。”
2.早期共识协议的发展
分布式系统中的共识问题一直是计算机科学领域的一个重要问题。目前人们主要有两类共识协议来解决该问题:一类是经典共识协议,另一类是中本聪共识协议。
经典共识协议由图灵奖得主兰伯特提出,具有强一致性、高效的特点,然而它也存在一些缺点,首先是通信成本,在经典共识协议下,节点的个数不能超过1000个,因为系统的通信成本会随着节点数量的增加呈二次指数形式增长;其次是要求网络中所有的节点都是可信的,因此节点无法自由进出。
另一类共识协议则是因比特币而被众人所熟知的中本聪共识协议,这类协议无法达到强一致性,但为系统提供了一个安全的概率保证——在实际运行中,只要达到一定的参数标准,共识就是不可逆的。采用该协议的系统具有开放性,无权限的特性,任何节点都可以随时加入网络,然而也存在成本高昂、浪费资源且性能有限的缺陷。
而Avalanche共识协议则是结合了上述两类协议的优点,借鉴中本聪协议的类似设计,采用概率性的安全保证,使用可调的安全参数来使共识失败的概率任意小;另外加入了BFT属性,增加系统的效率和安全性。
3.从“雪花”到“雪崩”:Avalanche协议介绍
3.1.Avalanche基本原理
Avalanche是一种基于亚稳态机制的分布式拜占庭容错协议,可为系统提供强大的安全保障,此外,其并发性的特征可实现高吞吐量和可扩展性。Avalanche一共由Slush、Snowflake、Snowball和Avalanche四个子协议组成:首先是最简单的Slush协议,随后在Slush的基础上,又逐次构建了Snowflake、Snowball 和 Avalanch三个BFT协议。
3.2.Slush 协议
Slush协议是Avalanche协议系列中最基础的部分,Slush协议的灵感来源于Gossip协议(又称八卦协议)。该协议通过多次重复的随机抽样方式来使节点之间达成共识。为了简单地理解该协议的基本原理,这里我们引用Avalanche白皮书里在一个无信任的分布式网络中,节点投票选择蓝色或红色作为最终颜色的例子(因为在共识协议中,无法在两种选择中做出唯一决定是最大的难题)。在Avalanche协议下,节点之间达成共识的步骤如下:
(1)所有的节点在初始时都是未着色的状态;
(2)当节点从客户端接受到交易信息时,未着色的节点A将自己的颜色更新为交易所携带的颜色,并向其他节点发起询问。
(3)如果是未着色节点B收到询问请求,那么该节点就会染成相同颜色,并对节点A进行相同颜色的回复,同时向另外的其他节点发起询问;如果是已经着色的节点C收到询问请求,那么节点就对节点A发出自己颜色的回复;如果节点A没有在限定时间内收到 k 个响应,那么节点A就会从剩余节点中继续选择一些节点发出并发出请求,直到收集到 k 个响应;
(4)节点A收集到K个响应后,就会检查是否存在相同颜色的样本数值/总样本数(x),使αk,这里α是协议的参数,并且α>0.5;如果x<αk,那么节点将会改变颜色;否则不改变颜色;
Slush协议有许多优良的特性:
(1)状态简单:在该协议下节点可以是无内存的。节点在每轮查询之间除了保留当前颜色之外不保留任何状态,特别是不保留与其他节点交互的历史记录;
(2)小样本:Slush协议与传统共识协议有显著的不同,传统共识协议要求对每个参与者进行查询,而Slush协议只是在每一轮中随机抽取网络中一个小的且大小固定的部分;
(3)重复抽样:Slush要求进行m轮重复抽样。此时,即使网络一开始处于50/50红蓝分割的亚稳态,采样过程中的随机扰动也会导致一种颜色获得微弱的优势,之后的重复采样将建立并放大这种优势;
(4)通信成本低:每个节点每轮都有一个恒定的、可预测的通信成本,并且该成本随n呈对数型增长。
3.3.Snowflake协议
尽管Slush协议有许多优良的特性,但是当Slush协议部署在具有拜占庭节点的网络中时,攻击者可能会干扰决策。特别是如果诚实节点偏爱一种颜色,那么攻击者可以尝试将节点翻转到相反的颜色,以保持网络的平衡。Slush协议本身是稳定的,但有拜占庭节点存在的情况下,它本身并不能提供强大的安全保证。为此,Rocket team在Slush协议的基础上增加了一个计数器(counter)来增加系统的安全性,该协议即Snowflake协议。
具体而言,在Snowflake协议里,计数器可以记录有多少个连续的样本都产生了同一个颜色(当节点A询问得到的响应结果为x≥αk,那么节点A的计数值cnt加1;每当节点A的颜色发生改变,节点A就会把cnt值重置为 0)。 如果一个节点的计数值cnt超过了某个阈值 β,它就会接受当前的颜色。这里的 β 是系统的另外一个安全参数。
当该协议为拜占庭节点阈值和所需的保证数设定参数后,就可确保系统的安全性(即没有诚实节点会接受发生冲突的交易)和活跃度(任何一笔由诚实节点发出的交易都会被其他节点接受)。
3.4.Snowball协议
在历史上,以太坊前前后后共经过七次硬分叉,其中与本次“君士坦丁堡”类似的还有“家园”阶段和“拜占庭”阶段的硬分叉,而其他的硬分或是是为了突发事件,或是在宣传和规模上较小,与本次硬分叉没有可比性。以太坊每次因技术升级带来的硬分叉都会给ETH带来巨大的行情波动。基于这一现象,我们选取上述两次历史上的硬分叉进行分析。
Snowflake协议的状态是短暂的:每次颜色的翻转都会重置计数器。尽管从理论上将该协议能以最小的状态代价保证系统的安全性,但是为了使系统的安全性更高,Rocket team在Snowflake协议的基础上引入了一个更加持久的可信度,这就是Snowball协议。
具体而言,Snowflake协议和Snowball协议的区别如下:
(1)每成功查询一次,节点就为该颜色的信任度计数值加1;
(2)在当前颜色的信任度计数值低于新颜色的信任度计数值时,节点将切换颜色。
至此,Snowball协议不仅比Snowflake更难遭受攻击,而且更容易推广到多命令协议。
3.5. Avalanche协议
Avalanche是亚稳态协议族的最后一个协议,它在Snowball协议的基础上增加了有向无循环图(DGA)来记录所有的交易状态。DGA只有一个点,即创世点。引入DAG主要有两个好处:
(1)高效性,给 DAG 中的某个节点投票就意味着给从创世点到该节点的路径上的所有节点都投票,这提高了协议的效率;
(2)安全性,因为DAG里包含着交易信息,类似于区块链的链式结构特征。这使得在没有诚实节点的批准下,很难撤销过去的决策。
维护DAG的核心挑战是在冲突交易中进行选择,在加密货币的应用中,花费相同资金的交易(双重支付)即冲突,这些冲突的交易形成一个冲突集,诚实节点只能接受冲突集中的一笔交易。需要注意的是,包含有效交易的冲突集总是一个单元素集合。
Avalanche协议实际上是一个体现了所有冲突集的Snowball协议。然而Snowball协议使用重复查询和多个计数器来获取在冲突交易中的信任值,而Avalanche协议则是利用DAG结构并使用交易的子代来达到此目的。具体流程如下所示:
(1)当节点A收到一个新交易 T时,它就发起一个的查询流程(随机抽样 k 个节点),启动查询的节点会把 T 加入自己已知的交易集合;
(2)收到消息的其他节点会查询自己的DAG交易集,看看是否存在T交易的父交易,如果存在,那么交易T就可以看成是非常可信的,即确认该交易;否则,只要T交易的任何一个祖先交易不满足条件,那么该笔交易就会被确认为非法;
(3)当节点A收到k个响应后,就会检查是否存在至少αk 个确认该笔交易的信息,如果是,那么T就会收集到一个Chit值,记为CuT=1,否则CuT=0。;
(4)上述的过程会为 DAG 中的每个交易标记上 Chit 值以及它关联的可信度值的大小。需要注意的是,Chit是在一次抽样中产生的,是不可变的值,取值只能为0或1,而它的可信度值是可以累加的,该值会随着DAG的扩展而增加;
图7是一个交易被打上chit值和可信度值的 DAG 图,图中每个交易的查询结果用 来表示,颜色更深的方块表示 可信度更高。比如,T2 的可信度是 5,它比 T3的可信度要高。这也就意味着,T2 的后代比 T3 的后代更容易收集到 Chit。
3.6. Avalanche协议的特性
从实际情况看,在“家园”硬分叉阶段,由于2015年下半年以太坊Frontier版本的发布,让人们看到了以太坊的技术实力和智能合约的潜力,为此市场对即将到来的“家园”版本普遍持乐观态度,因此以太坊在分叉前的几个月处于上涨通道,此过程中必然有泡沫的累积,在硬分叉结束后市场的乐观预期也随之结束,因此硬分叉后ETH价格的下跌成为必然。
在上文中我们介绍了Avalanche协议的基本原理,现在我们来具体分析Avalanche协议有什么优良特性。
(1)高效的可扩展性:因为协议是轻量级的,所以可以提供扩展性和低延迟;
(2)高拜占庭容错:即使网络中有超过50%的节点是拜占庭节点,网络依然是安全的;
(3)静态绿色:在Avalanche协议下,网络运行时可持续的,与PoW机制不同,Avalanche协议不会浪费任何资源;
(4)低通信成本:传统共识协议的通信复杂度为O(n^2),而Avalanche协议的在O(kn logn)到 O(kn logn)之间。
4. 零确认交易与Avalanche协议
在Avalanche协议的论文发布后,人们还没有发现Avalanche协议与零确认交易之间有什么关系。然而在2018年12月左右,BCH社区的技术人员Chris Pacia发表一篇文章,认为可以使用Avalanche协议来保证零确认交易的安全性,至此引起了市场的广泛兴趣。
在前文中我们提到,Avalanche协议要求经过m轮重复抽样后来达成共识,为了限制确认的时间,重复抽样的次数必须受到限制,而这意味着,当网络中恶意节点的数量尝过一定比例后,在受限制的重复抽样轮次里,诚实节点之间无法达成共识。为此,Chris Pacia认为可以引入PoW机制作为反sybil机制来保护网络的安全,阻止黑客激活的攻击节点数量超过阈值。
具体而言,如果在网络上没有双重支付,那么矿工接收交易到他们的内存池中,选择要放入区块的交易,并将打包好的区块广播到网络。此时,矿工之间甚至没有发送avalanche消息。当双重支付进入矿工的内存池时,它会触发avalanche过程。矿工开始向相互发送avalanche查询并执行n轮。最终,所有矿工都会决定交易A是有效的,B是无效的,或者A是无效的,B是有效的。
上述方案只是BCH技术人员的初步设想。目前,BCH的Avalanche协议仍然在进行开发中,预计2019年底或2020年初进入主网测试阶段。
5. 结论
Avalanche作为一种亚稳态的共识协议,通过多次重复抽样的方式来使节点之间达成共识。为此,相较于经典共识协议和中本聪共识协议,Avalanche具有高拓展性、静态绿色以及低通信成本的特点。同时,由于Avalanche协议中引入了可信度,而可信度会随着DGA的扩展而累加,这意味着可达成预共识,即采用Avalanche有可能实现零确认交易。目前BCH团队已经展开了相关技术的研发测试,一旦实现零确认交易,这将是对BCH的重大利好。
导读:Avalanche作为一种亚稳态的共识协议,通过多次重复抽样的方式来使节点之间达成共识。Avalanche具有高拓展性、静态绿色以及低通信成本的特点。由于Avalanche协议中引入了可信度,意味着可达成预共识,即有可能实现零确认交易。
Bitcoin-NG:可扩展区块链协议与现实的碰撞
Bitcoin-NG协议是康纳尔大学研发的、具有极强耐性、与比特币具有相同的信任模型,旨在提升区块链网络吞吐量的拜占庭式容错区块链协议。
基于比特币并由其领导的加密货币已显示出有望成为匿名在线支付、廉价汇款、去信任化数字资产交换和智能合约的基础设施。但是,由于衍生自比特币的区块链协议固有的可扩展性,因此无法在吞吐量和延迟之间进行权衡,从而无法发挥这种潜力。
本文将介绍旨在扩展的新型区块链协议http://en.wikipedia.org/wiki/Two_Generals%27_Problem
另见本文关于拜占庭容错的文章:
http://en.wikipedia.org/wiki/Byzantine_fault_tolerance
回复:比特币一种点对点的电子现金系统
中本聪:Thu, 13 Nov 2008 19:34:25 -0800
每个人都知道X是不够的。我们还需要每个人都知道每个人都知道X,并且每个人都知道每个人都知道每个人都知道X - 正如拜占庭将军的问题一样,这是分布式数据处理的典型难题。——詹姆斯·唐纳德
工作量证明链是拜占庭将军问题的解决方案。我会尝试在这种情况下改写它。许多拜占庭将军都有一台计算机,想要通过强制密码来攻击国王的WiFi,他们学到的密码长度是一定数量的字符。 一旦他们刺激网络生成数据包,他们必须在有限的时间内破解密码以中断并删除日志,否则他们将被发现并陷入困境。它们只有足够的CPU能力才能足够快地破解它,如果它们中的大多数同时攻击的话。他们并不特别关心何时攻击,只要他们都同意。已经决定任何感觉像是会宣布时间的人,无论何时首先听到的都是正式的攻击时间。 问题是网络不是即时的,如果两个将军在接近同一时间宣布不同的攻击时间,有些人可能先听到一个,而其他人先听到另一个。他们使用工作量证明链来解决问题。一旦每个将军收到他先听到的任何攻击时间,他就会将他的计算机设置为解决一个极其困难的工作量证明问题,其中包括其哈希中的攻击时间。工作量证明是如此困难,预计在他们中的一个找到解决方案之前,他们需要花费10分钟才能同时工作。一旦其中一位将军找到工作量证明,他就会将其广播到网络中,并且每个人都会改变他们当前的工作量证明计算,以便在他们正在处理的哈希中包含该工作量证明。 如果有人在不同的攻击时间工作,他们会切换到这个,因为它的工作量证明链现在更长。两个小时后,一个攻击时间应该由一系列12个工作量证明进行调整。 通过验证工作量证明链的难度,每个通用工具都可以估计每小时并行CPU功率的大小,并且可以看出它必须要求大多数计算机产生如此多的证据。 在规定的时间内工作。 他们必须看到它,因为工作量证明证明了他们的工作。 如果工作量证明链所显示的CPU功率足以破解密码,他们可以在约定的时间安全地进行攻击。工作量证明链是您解决所有同步,分布式数据库和全局视图问题的方法。——中本聪
导读:本次连载主要的内容包括,交易确认,区块时间以及拜占庭将军问题。
来源:学习区块链
- 免责声明
- 世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
- 风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
- 世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:juu3644。