老外在看什么| Chris Pacia:预共识Avalanche提高零确认的安全性

OpenBazaar首席开发者Chris Pacia昨天发表了一篇关于通过预共识Avalanche提高零确认安全性的文章。

OpenBazaar首席开发者Chris Pacia昨天发表了一篇关于通过预共识Avalanche提高零确认安全性的文章。

前不久我们正好谈到零确认交易的问题。针对零确认交易的双花攻击有两种,一种是非算力用户发起的双花。这种攻击可以通过部署大量节点服务器来检测双花交易,从而让商家及时发现双重支付的交易。另外一种是算力用户(挖矿节点)发起的双花,本文谈到的预共识就是针对这种攻击提出的一个技术方案。

Avalanche是今年初提出的一个新共识协议。

它提供了一种新的方式,让网络节点在两个相互冲突的交易之间进行选择(投票),并经过多轮选择后就下一个区块应该打包哪一笔交易达成共识。这样可以防止矿工受贿,进行双花,再结合检测并广播双重支付交易的办法,可以提高零确认交易的安全性。

该方案的重点不在于选择哪一笔交易,而在于如何让所有的节点达成共识,确定其中一笔交易是有效的。

如果你的节点最初先接收到交易A,你询问的大部分节点也表示他们接受交易A,那么你将仍接受交易A。但如果大部分节点表示,他们更倾向于接受交易B,那么你将转向接受交易B。网络上所有节点都按照这个规则执行。

刚开始可能是各占50%的支持率,但是经过几轮之后,结果会演变如下

老外在看什么| Chris Pacia:预共识Avalanche提高零确认的安全性

Avalanche应用于比特币现金

有几种方法可以把Avalanche用于预共识,但在这里说一种非常简单巧妙的方法:

  • 用工作量证明机制反女巫攻击。共识小组由挖出最新100个区块的矿工组成。小组成员是不断更新的。每挖出一个新的区块,增加一个新的矿工,挖出N-100个区块的矿工就会被踢出小组。

  • 如果没有双花交易,一切正常。对于外部的人来说,甚至都不知道预共识在发挥作用。

  • 如果矿工的内存池出现双花交易,就会触发Avalanche程序。矿工开始执行这个程序。最终所有矿工达成一致,确认交易A是有效的,交易B是无效的,或者是相反。

  • 如果选出A有效,B无效,矿工不需要打包交易A,矿工仍可以选择两笔交易都不打包。但是,他们不能打包交易B。如果打包了交易B,就会被孤立,成为孤块。包含之前未发布双花输出的区块,在被接受和认可之前都必须执行avalanche。

  • 非挖矿节点不需要执行这个流程。对于非挖矿节点来说,预共识是个软分叉。比较糟糕的情况是,矿工打包了一个包含经过预共识被判定为双花交易的区块,其他的矿工就会拒掉这个块,继续在上一个区块上挖矿,但是全节点是不知道这些的。最终会出现一个孤块,出现一个区块被重组。实际上我们预计这样的情况不会发生,因为所有的矿工都会使用预共识,以防止挖出的区块被孤立,从而遭受金钱损失。

  • 商家仍然需要检测双花,防范在短时间内发起的双花。但是,只要等到支付交易广播到矿工的内存池(3-5秒)商家就可以放心交易。

Chris最后提到,有Avalanche存在,即使有10%的矿工想要受贿,他们也不能这么做,因为其他矿工会孤立他们的区块。但是如果大多数矿工受贿,那么矿工最后会选择打包双花交易,这同样会使零确认交易出现双花的可能。

结束语 

预共识主要在于矿工节点相互之间加强通信,以此提高区块的打包效率和传播速度。但使用Avalanche,提高零确认的安全性,你觉得可行吗?

作者:Chris Pacia

原文链接

生成图片
5

发表评论

老外在看什么| Chris Pacia:预共识Avalanche提高零确认的安全性

星期五 2018-12-14 7:44:08

OpenBazaar首席开发者Chris Pacia昨天发表了一篇关于通过预共识Avalanche提高零确认安全性的文章。

前不久我们正好谈到零确认交易的问题。针对零确认交易的双花攻击有两种,一种是非算力用户发起的双花。这种攻击可以通过部署大量节点服务器来检测双花交易,从而让商家及时发现双重支付的交易。另外一种是算力用户(挖矿节点)发起的双花,本文谈到的预共识就是针对这种攻击提出的一个技术方案。

Avalanche是今年初提出的一个新共识协议。

它提供了一种新的方式,让网络节点在两个相互冲突的交易之间进行选择(投票),并经过多轮选择后就下一个区块应该打包哪一笔交易达成共识。这样可以防止矿工受贿,进行双花,再结合检测并广播双重支付交易的办法,可以提高零确认交易的安全性。

该方案的重点不在于选择哪一笔交易,而在于如何让所有的节点达成共识,确定其中一笔交易是有效的。

如果你的节点最初先接收到交易A,你询问的大部分节点也表示他们接受交易A,那么你将仍接受交易A。但如果大部分节点表示,他们更倾向于接受交易B,那么你将转向接受交易B。网络上所有节点都按照这个规则执行。

刚开始可能是各占50%的支持率,但是经过几轮之后,结果会演变如下

老外在看什么| Chris Pacia:预共识Avalanche提高零确认的安全性

Avalanche应用于比特币现金

有几种方法可以把Avalanche用于预共识,但在这里说一种非常简单巧妙的方法:

  • 用工作量证明机制反女巫攻击。共识小组由挖出最新100个区块的矿工组成。小组成员是不断更新的。每挖出一个新的区块,增加一个新的矿工,挖出N-100个区块的矿工就会被踢出小组。

  • 如果没有双花交易,一切正常。对于外部的人来说,甚至都不知道预共识在发挥作用。

  • 如果矿工的内存池出现双花交易,就会触发Avalanche程序。矿工开始执行这个程序。最终所有矿工达成一致,确认交易A是有效的,交易B是无效的,或者是相反。

  • 如果选出A有效,B无效,矿工不需要打包交易A,矿工仍可以选择两笔交易都不打包。但是,他们不能打包交易B。如果打包了交易B,就会被孤立,成为孤块。包含之前未发布双花输出的区块,在被接受和认可之前都必须执行avalanche。

  • 非挖矿节点不需要执行这个流程。对于非挖矿节点来说,预共识是个软分叉。比较糟糕的情况是,矿工打包了一个包含经过预共识被判定为双花交易的区块,其他的矿工就会拒掉这个块,继续在上一个区块上挖矿,但是全节点是不知道这些的。最终会出现一个孤块,出现一个区块被重组。实际上我们预计这样的情况不会发生,因为所有的矿工都会使用预共识,以防止挖出的区块被孤立,从而遭受金钱损失。

  • 商家仍然需要检测双花,防范在短时间内发起的双花。但是,只要等到支付交易广播到矿工的内存池(3-5秒)商家就可以放心交易。

Chris最后提到,有Avalanche存在,即使有10%的矿工想要受贿,他们也不能这么做,因为其他矿工会孤立他们的区块。但是如果大多数矿工受贿,那么矿工最后会选择打包双花交易,这同样会使零确认交易出现双花的可能。

结束语 

预共识主要在于矿工节点相互之间加强通信,以此提高区块的打包效率和传播速度。但使用Avalanche,提高零确认的安全性,你觉得可行吗?

作者:Chris Pacia

原文链接