首页 业界 正文

与Bitcoin Unlimited 的开发者Andrew Stone的访谈

2016-12-01 09:41:51 来源:巴比特资讯 阅读:5111
   
最近Bitcoin.com与Bitcoin Unlimited(下文简称BU)开发人员Andrew Stone谈到了比特币客户端的竞争和当前区块大小的争论。

bitcoin

与Bitcoin Unlimited 的开发者Andrew Stone的访谈

By Jamie Redman – 2016年11月25日

最近Bitcoin.com与Bitcoin Unlimited(下文简称BU)开发人员Andrew Stone谈到了比特币客户端的竞争和当前区块大小的争论。加密货币社区一直在问BU的开发人员是谁,成为开发人员的资格又是什么。这次访谈是为了让人们了解BU的发展,并且BU团队会尽力去完成开发组的目标。

与Bitcoin Unlimited 开发者Andrew Stone的深度探讨

Bitcoin.com(以下简称BC):你能向我们读者简单介绍一下BU,BU又是如何解决可扩展性的吗?

Andrew Stone(AS):BU认识到中本聪共识(工作量证明)是唯一可靠的共识机制,而如Core的区块大小是1MB只是一种“社会共识”。BU认为如何比特币发生分叉,用户对小分支链是没有兴趣的,除非这个分支是保证了比特币的货币功能。

从短期看,BU通过允许矿工挖出大于1MB的区块来解决扩展性。 从中长期来看,BU将支持闪电网络和其他链下技术。 让市场决定哪种技术最适合比特币的发展!”

BC:你是如何参与到BU项目的,BU团队中还有哪些开发人员?

AS:BU的许多想法,是来自于比特币论坛名为“黄金崩溃,比特币崛起”帖子下的讨论。那段时间,在论坛里提出自己想法的所有人都值得信任,并应该被感谢。我也是当时讨论中的一员并在论坛里提出了“涌现共识”算法(那会我们并不是这么叫的)。之后我写了BU联合章程(我们的章程)并发布了初始版本的客户端。在那一刻,本质上我是一个仁慈的独裁者。再之后,我参加了BU章程中规定的选举并被授予胜出者应有的权力。

Peter Tschipper 和  Andrea Suisani是早期开发人员,peter Rizun 是特别要提到的,在BU发展的早期阶段,peter Rizun 用他的洞察力和分析能力帮了BU很多。

随着BU被两个矿池采用。我们有了很多新的贡献者,在这里我就不一一列举了。

BC:你认为为什么Bitcorn Core开发者会反对像BU一样的竞争性的客户端呢?

AS:我不知道为什么特定的人反对竞争性客户端。但是我可以提供大多数人反对竞争性客户端的原因。

第一点,你可能会希望一个更早更简单的时间。例如,2012年比特币市值为5000万美元时。在单个客户端的环境下,特别是当你负责这个客户端时,某些事情会变得更简单些。但是,那样的时代已经过去了。现在的情况甚至更糟。我们有了多个协议,如:中本聪 客户端的P2P协议,Fibre网络广播协议,Falcon网络。挖矿设备用的是他们自己定制的协议“stratum”。多样性使得比特币网络更加健壮,某个客户端的错误不会危及到整个网络。

第二点,如果你不能使自己真正的需求合法化(更大的区块),批评竞争对手则更有利于他们自己。

第三点:大家没有真正地理解“FLP”的结果,并认为那只是所有的开发人员“聚在一起”做了一个决定,就可以对某个行业的协议产生共识。(译者注:FLP指:在异步通信场景中,没有任何算法能保证到达一致性)然而,如果没有对会员和参与资格的严格控制,这只是一个幻想。协议不可避免的存在竞争者和不完善的地方。USB识别码的分配就是一个很好的例子。为了获得一个USB识别码,你需要加入USB联盟(会员的费用是成千上万美元)。这个模式并不适用于开源硬件社区,开源硬件社区个体极富创造性,但是设备市场非常小。最终人们会意识到信息是免费的,USB联盟不可能使这种限制合法化,除非你能把USB的商标印在你的产品上,所以人们开始使用任意挑选的识别码。

相反,在关键软件开发的任务中,“黄金准则”是创造多个完整的部分并同时运行它们。这减少了错误发生导致整体任务失败的可能性。

BC:Adam Back和其他人评价BU是一个半测试品,并且说BU开发人员不够格时,请问你是如何看待这些评价的?

 AS: 这让我非常的沮丧,因为这些人本身就没有资格做出这样的评价。我不是有意这么说的。我想说是这些人从来没有检验过他们正在批评的代码。

很明显,任何人作为Core的开发人员或者其他公司雇用Core的开发人员都会从Bitcorn Core保持着唯一的大客户地位中获益。因此,个体与之存在潜在的巨大利益冲突。所以我请求读了这些报道的人,除非他们提供真实可靠的数据,大家只能斥责他们多疑,害怕,提供假信息。

我最终回应了Adam 的批评,Core的代码存在重大并持续(最近添加的)缺陷。我是如此的不情愿回应因为这是开发人员的错误。程序漏洞仍是当今软件开发中不幸的一部分。然而通过这样做,我可以证明BU已经比Core做了更多的测试。Bitcoin Core代码和开发人员在某种程度上拥有独一无二开发比特币软件资格的神话已不复存在。事实上,比特币代码质量比我在许多关键应用任务程序中看到的更糟。

BC:你能告诉我们为什么你和你的团队成员有资格致力于比特币协议吗?

 AS:我不能对BU团队里的其他成员资格做出任何评论(因为并不知道他们的过去),我只能说我亲自审查过他们的工作,并发现他们做得非常好。

在我的整个职业生涯中,我一直致力于高可靠性和关键任务应用程序,所以对于这种代码的研发,我并不陌生。我与OpenClovis公司合作,这意味着我的软件被全球大多数电信公司应用,植入进了许多的电信设备中。我们统计用户数据不是仅仅取决于OpenClovis 软件,而是基于我们真正接受到的用户,我猜想用户人数是数亿人。如果你在韩国有一部手机,你正在用我写的软件。如果你有一部Verizon品牌的手机,你也很有可能在使用我写的软件。如果你有一部家庭电话的分机,你可能还是在用我写的软件。如果你的公司有以SIP为基站的电话或过多的以太网企业级交换机,你还是有机会使用我们的软件(这取决于您公司购买的品牌)。

BC:在最近的一篇名为“一个Bitcoin Core简史”的文章中,你描述了在Core客户端中发现的各种漏洞。 你是否认为社区应该更加重视这些漏洞呢?

 AS:当然。 在可用性高的行业中有一个“5000年”漏洞的概念。 这些漏洞通常是很少发生的。 但是,如果你正在运行5000个客户端,或者您遇到异常操作条件,这些罕见的漏洞可能突然开始更频繁地发生。在电信行业中,每一次崩溃或核心转储都会找出可能的根本原因,即使这意味着花费数小时手动检查代码,或添加条件“强制”命令来触发通常不可能使用外部输入触发的特定代码流 。在比特币代码中我们需要相似的措施。

这项工作的部分目的也是为了让个体表现出他们的优点。提出拒绝没有实际证据的调查和像“这只在调试模式中发生”这样的借口,这是一个非常大的问题。坦白地说,某些人对我的职位的回应应该让你更担心Core的发展方法而不是我的批评。因为每一个软件都有漏洞,我指出其中三个应该已经证明,BU在代码库和测试方面是负责任的。并不是真的再说Core有多么地差。

但是如果贡献者在没有检查的情况下就否认我提出的漏洞,那这就是问题。还有什么漏洞也曾被类似地否认过?最糟糕的否认之一是“A不可能发生,因为(似乎不相关的)X,Y和Z.”问题是,如果这种哲学渗透了代码库,你最终得到了许多隐性依附关系, 它只能由原作者或参与项目很长时间的人开发和维护。

在保护调试模式下产生未定义行为的运行代码是一个真正的问题。 因为开发人员是在调试模式下运行。 如果在调试模式下,因你的一个漏洞导致问题,开发人员可能因“修复”该问题,导致生产代码中的漏洞。 例如,节点清除代码周围缺少锁是这种情况的一个可能的例子。 这些锁可能在调试模式下已被删除,dd_mutex可能已经清理,导致程序中断(无效的互斥体)。 但是删除锁的效果是(我们在测试中看到的),你可以得到一个核心转储,在极少数情况下,在你关闭的确切时刻一个对等体会丢弃连接。

BC:对于Core的程序错误,BU会做些什么来改善呢?

AS:找到问题,解决问题。当然,我们有自己的开发方法来阻止这些错误的引入,并且正在重组(在某种程度上,我们也希望能够改变基础)代码来解决这类问题。

BC:BU已经取消区块大小的硬限制,并允许人们选择区块的大小,这个说法对吗? 这样的话系统如何工作呢?

AS:是的,Peter Rizun 已经写了一个非常详细的文件来描述它—“涌现共识”算法。真的需要整篇文章才能解释清楚,所以我只是向你提一下这个文件。

我们也做了理论和分析工作来证明这个想法,在Peter的“收费市场”论文和我的“单一交易(空)块”论文中,你可以找到这个想法。 我们的工作总结成一句话:“网络传播和区块验证延迟会形成非零成本的交易,并将平均区块大小限制为基础物理网络的平均容量。

BC:BU 的客户端与Bitcoin ClassicXT有什么区别呢?

AS:BU认为在中本聪共识之上的算法“利益相关者共识”实际上是不可能的。例如,对Classic和XT的一个重大批评是“如果矿工错误地发出大块的信号,那什么时候拒绝他们?BU认识到这种更高层共识的不可能性(或者更准确地说,中本聪共识是实现它的唯一已知算法 – 顺便说一下,从理论的角度来看,它避免了FLP结果,因为它从来没有实际达成共识 – 如果一个拥有超强技术能力的外星人从创世块改写到区块链,中本聪共识将切换到该链),因此没有任何协调算法可自动改变共识。

相反,BU从共识层中移除了大多数非货币功能保护参数。  所以如果网络中突然出现了更大的区块, 你会关注。但是如果某人花了别人的钱或者给他自己一个很大的区块作为奖励,你会拒绝它。

并且它需要操作者真正地参与去生成第一个大块。 这允许矿工在其他矿工错误地发出信号(在FLP术语中称为“一个错误过程”)时迅速退回。

BC:最近比特币社区宣布投入120万美元用于协议发展。请问您对此项捐赠及其声明的原则有什么看法?

AS: 人们愿意给比特币开发设立开发基金,这是一件非常好的事情。这是完全正确的事情。一个盈利的商业公司主导发展的“Blockstream模式”似乎不是比特币作为货币和比特币货币持有人的最佳利益。

BC:BU团队对隔离见证持什么意见?

AS:我不能替团队说话,更重要地是我不能代替BU团队成员说话。我的个人意见如下:

对于区块链来说,隔离见证只是增加了区块链不必要的复杂性。

隔离见证能够实现的的扩容规模不足以让任何公司对在比特币基础上创建产品或服务感兴趣,它带来的扩容规模甚至不能满足链下扩容方式的需求。

隔离见证最终的大小是1.7MB交易区块容量,但是需要一个4MB的数量容量(这是否意味着一个简单的硬分叉增加2MB后会使总的块的大小变成8MB? 因为在当今的网络中,2MB非常的容易,但是8MB可能就“勉强”了)。隔离见证不会解决所有已存在的问题(比如延展性)因为旧的交易总是在产生,旧交易会产生很多使比特币在未来难以维护和扩展的“技术负债”。

但是隔离见证会解决某些已存在的问题,前提是使用隔离见证型交易。但是许多其他已知的问题没有解决。(事实上,其他被承诺的问题和特性,最终并没有被包括在隔离见证的实现当中)。一个全新的交易格式可以更简单地,更优雅地解决隔离见证本应该解决的问题。

隔离见证会要求每一个钱包修改代码。

“它看起来像政治一个大的签名空间似乎能鼓励某些特定人群,同样它也能劝阻某些人,而且它确认了开发人员作为网络的管家和一些”魔术数字”的仲裁者。

BC:为了让社区信任你们团队提出的比特币协议,你有什么想对社区说的吗?

AS:不需要。你不需要相信任何人。BU鼓励和支持多个客户端实现,而且我们也会为你提供依靠中本聪共识的方法。

同时,我们是比特币持有者,也不是被以盈利为目的的和比特币相竞争的区块链公司雇佣的。

BC:你认为区块大小的问题能很快得到解决吗?

AS:当然,我希望如此。我认为个人和企业对BU的支持,无论是公开的,还是私下对很多矿工说的,都会对BU有很大的影响。让我们告诉矿工们,经济和商业的大多数想要更大的区块!


谢谢你,Andrew,谢谢让我们的读者对BU的情况有了了解。

声明:此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。本网站所提供的信息,只供参考之用。