渣打银行携手北方信托发布加密数字货币托管方案Zodia
Zodia目前正在根据英国相关条例向FCA进行注册
译者注:在比特币首创人中本聪退隐后不久,比特币开发社区内发作了一场内部战争,只管那时的P2SH方案由于Gavin Andresen的影响力,乐成击败了Luke Dashjr提出的CHV解决方案,但这次艰难的政治斗争,为厥后的扩容战争埋下了伏笔。原文作者是PETE RIZZO和AARON VAN WIRDUM。
“把日期往后推两个月, OP_EVAL还没有准备好。” 这是Gavin Andresen勉力想制止的意见,随着Russell O’Connor通过键盘打出一段指责语后,长达数月之久的比特币升级起劲(在比特币首创人中本聪退出后),在实行前突然陷入阻滞。正如O’Connor所展现的那样,这个提议的下令(被Andresen称为通向更平安的比特币钱包的“最快路径”),可被用来确立恶意买卖,其将软件发送到无限的盘算循环中,以对其举行验证。简而言之,OP_EVAL可能会被滥用,损坏比特币节点,进而损坏比特币网络。
O'Connor写道:
“我花了整整70分钟,才找到这个破绽。你们需要住手现在的行为,并真正明白比特币。” 这是比特币项目的新带头人Andresen第一次严重受挫,他很快就提出申辩。在他看来,放弃 OP_EVAL不仅虚耗了数月的编码和审查事情,还会让用户没有工具去提防木马和病毒,进而掠夺他们的数字钱包。这正是OP_EVAL吸引力的焦点所在 —— 简朴的多署名钱包将允许用户恢复比特币,纵然其备份丢失;可以构建服务来发送类似银行的警报,以阻止敲诈和偷窃,而且更好的是,这一切都可以通过行为类似于用户所领会和明白的买卖来实现的。
然则,对于那些看到这一升级所带来的潜在负面影响的人来说,O’Connor的忠告之言足够了。
开发者Alan Reiner写道:
“我想提醒人人,我们正在搅散一个价值2000万美元以上的项目,这不仅仅是一个软件问题,任何希望都需要像钻石一样坚硬。” OP_EVAL的失败将发生更大的影响,简直,中本聪推出了天下上第一个去中央化的数字钱币,但它的答应远未实现。在2011年终,很少有人能明白它的代码,而拥有珍爱它的手艺的人显然更少。这些开发职员应若何组织?他们对用户负有什么责任?当不清楚谁(若是有的话)应该拥有最终决议权时,他们将若何制订调换?
在比特币软件的第一场大战中,这些问题很快就被推到最前面。
非正统的继续
自由和开源项目通常是由首创人向导,而首创人又必须使他们的事情与孝敬者保持一致。只管如此,在泛起方向性纠纷的时刻,首创人仍拥有着自然的权力,可以担任其创作的决议者。
在早期,比特币也不破例。在比特币存在的头两年里,中本聪扮演着首席开发者和仁慈独裁者的角色。作为比特币无可争议的带头人,中本聪制订了多达8项协议更改,而没有涉及更普遍的讨论[1]。再厥后,中本聪就逐渐退出了比特币项目的维护。
到了2010年底,中本聪删除了他在Bitcoin.org网站上留下的笔名,并让资深3D图形开发职员Gavin Andresen宣称他是比特币项目“事实上的向导者”[2]。
围绕这次过渡的情形很不寻常,包罗简短的公共新闻,私下通报职责以及密钥交流。
不外,那时这对于规模虽小,但不停在增进的比特币编码职员来说,这险些没有什么难题。大多数人都在忧郁关键问题,而Andresen,一位终身教授的配偶,有时间和热情来向导这项事情[3]。
事实上,那时有许多迫切的需求(更快的同步,更好的测试等),但“钱包被盗讲述”的增添以及偷窃造成的不良影响,很快成了一个主要问题。
曾有一段时间,比特币的新孝敬者似乎都赞成这个目的[4]。
最基本的多重署名
幸运的是,中本聪提供领会决方案的蓝图,正如Andresen所领会到的,比特币的代码已允许用户确立平安的买卖,这些买卖只有在使用多个私钥署名时才气使用[5]。
有了多重署名(multisig),私钥可以存储在多个装备上,或者存储在天下的另一端,或者在用户和钱包服务之间共享,这意味着黑客将不得不攻击多个目的才气偷取比特币。
Andresen被这个想法迷住了,他成为了该想法的第一个拥护者,在开发者邮件列表上,Andresen写下了一封慷慨激昂的呼吁书,激励孝敬者接纳行动。
他写道:
“我最忧郁的是,我们会说,‘固然,我们只需要几天时间就可以就若何做好这件事杀青共识’,六个月后共识仍然没有杀青,人们的钱包(将)继续丢失或被盗。” 忧郁并非没有重担,正如中本聪所实行的,多重署名具有显著的瑕玷。其中最紧迫的是买卖与比特币的尺度地址花样不兼容,这需要更长的地址。因此,多重署名买卖更大,用度也要更高。更主要的是,这些用度不是由使用多重署名钱包吸收比特币的人支付的,而是由向他们发送比特币的人支付的。
由于这些属性,多重署名买卖在软件中被指定为“非尺度”买卖,这意味着它们纷歧定会广播到网络上的节点。若是一个节点吸收到一笔多重署名买卖,它将直接忽视它。同样,不能保证矿工将这些买卖纳入到区块。
若是将它们包罗在内,则节点将接受它们(多重署名买卖最终有用)。但在实践中,这些买卖险些不可能获得确认。
进入 OP_EVAL
Andresen为了释放他所看到的多重署名的潜力,他继续提倡了一种新的“操作码op-code”,这是一种下令,节点可以使用该下令来确定新型买卖是否有用以及何时有用。
OP_EVAL旨在容纳诸如多重署名之类的更高级的买卖,其主要依赖哈希,这是一种密码学技巧,可以确定地对数据举行压缩,但不可逆地压缩成一个唯一的数字字符串。
这个想法最初是由匿名开发者ByteCoin提出的,其基本思想是用户可通过将哈希包罗在买卖中,来详细说明比特币日后破费条件的指令。
多重署名用户在破费币时会为增添的买卖巨细付费,而所需的分外数据对网络的肩负变小了。
由于该提议获得了努力反馈,Andresen没有虚耗任何时间,他希望尽早部署OP_EVAL。
他写道:
“平安性在优先级列表上确实很高,我希望在一年之内在论坛署名中看到平安的比特币地址。” [7]。 然则,并非所有人都认同Andresen的紧迫感,对于一个已拥有数千万美元价值的项目而言, OP_EVAL意味着一次重大升级。而在大洋彼岸,年轻的Amir Taaki建议开发者花些时间来审查该提案。Taaki写道:
“乍一看,这个提案似乎不错,但快速将其纳入区块链可能不是一个明智的想法……比特币不会在明天爆炸式增进,因此推迟此类重大更改不会造成重大损失。” 使问题进一步复杂化的是,开发职员假设将 OP_EVAL添加到协议中将带来伟大的协调挑战。从本质上讲,实行它需要冒风险,有可能会盘据成不兼容的网络。这意味着一旦OP_EVAL上线,每个用户都必须切换到新版本的软件和新的区块链,这就是所谓的“硬分叉”升级。
若是不能统一升级,矿工可能会在不知不觉中发生“无效”区块。更糟糕的是,用户可能在不知不觉中接受了“无效”买卖。
一种新的软分叉
但很快,Andresen就意识到可以抚慰他的批评者。
他发现,通过一个巧妙的技巧,通过重新界说中本聪最初包罗的几个不流动的操作码中的一个,作为未来下令的占位符来部署OP_EVAL。
出乎所有人的意料(包罗Andresen自己),这也将兼容那些没有升级到接受OP_EVAL的节点。这些节点将检查哈希是否与新指令匹配,但不会强制执行它们,而是默认接受买卖。
只要大多数矿工执行新规则,这意味着新区块链将被升级节点和未升级节点都视为有用。升级后的节点将接受区块链,由于它们正在执行新规则,而没能升级的节点也将接受新的区块链,由于它们都不体贴新规则。
中本聪已部署过这种向后兼容的升级或“软分叉”,然则随着网络规模的扩大,开发者们最先发生了一些忧郁。
不出所料, Andresen意识到这是可以制止的,这一点受到了其他着名代码孝敬者的迎接,他很快与他们分享了这一新闻。对此,Gregory Maxwell评论道:
“哇,Gavin以为 [ OP_EVAL] 不需要盘据网络就可以完成的看法,让我大吃一惊,拿出香槟庆祝吧。” 有了它,开发职员便继续设计出一种加倍平安的方式来激活软分叉。他们的理论是,他们可以举行类似民意调查,以确定某个功效何时获得矿工们足够普遍的支持,然后他们可以行使这些支持来确保平安升级。矿工将被要求在开采的区块中加入一点数据,以注释他们将执行新的规则。当大多数人准备好时,更改就可以激活了[10]。
致命的瑕玷
但所有的这些事情,都被O’Connor的发现所推翻[13]。
效果导致开发者们盘据成了差别的派别,一些人以为OP_EVAL被不必要地延迟了,另一些人则以为提议的快速修复会损害比特币基本脚本语言的某些所需属性[14]。
包罗Luke Dashjr、Pieter Wuille以及Maxwell在内的开发职员提出了替换方案,其与 OP_EVAL类似,接纳了将币发送至一个哈希的观点。但挑战仍然是若何将这种逻辑(他们最初称之为“Pay to Script Hash”或简称为“P2SH”)转化为比特币软分叉,以制止区块链盘据。
现有的操作码只能走到这一步:未升级的节点将需要接受从哈希中破费币的买卖,而无需领会新规则。
是Andresen找到了前进的门路,而他特定的P2SH解决方案基本不需要新的操作码。相反,Andresen的想法是,可以对比特币举行编程以识别某种买卖花样,然后以一种非通例的方式注释这种花样,以使用新的指令对其举行验证。
任何未升级的节点都将使用通例逻辑来注释非通例花样。与OP_EVAL一样,未升级的节点始终将买卖视为有用。这意味着P2SH可以作为软分叉部署:只要大多数算力强制执行新规则,新旧节点都将在统一区块链上杀青共识。
Andresen的提案对大多数人而言似乎令人满意的。O’Connor评论称[15]:
““看起来,这似乎是可以接受的。” Taaki在谈到该代码的非通例方式时示意: “这个想法是一种黑客行为……但我喜欢它。” 在随后的一次开发者集会上,与会者一致赞成实行Andresen的P2SH提案。而矿工们将在2月1日之前的一周举行民意调查,若是大多数算力(跨越55%)示意支持,那么两周后,就会释放一个客户端来激活软分叉。但和平只连续了几天时间。
为什么不用美元?
打破共识的是Dashjr,他由于有事提早脱离了集会,厥后才得知Andresen的P2SH版本方案被公以为折衷方案。
而Andresen方案的非通例性子,激怒了Dashjr,他以为这会使协议变得复杂,并带来了不确定的结果。Dashjr向Andresen提出了这个问题,但后者以为Dashjr的担忧不值得改变设计[16]。
在遭到拒绝后,Dashjr于一月中旬在公然的BitcoinTalk论坛上发作,他训斥P2SH提案并指控Andresen“独自”支持了这一改变[17]。
Dashjr写道:
“Gavin强迫所有使用最新比特币代码的人投票支持[P2SH],若是你想否决这种疯狂的协议更改,那么你将需要修改你的BitcoinD源代码,或者在默认情形下投票赞成它。” 由于Dashjr的否决意见并没有太有说服力,以及他对Andresen的训斥声,人们对这篇帖子的反映并不努力。一些人以为Dashjr并没有将手艺争执局限于开发职员,而是试图怂恿民众。Dashjr是比特币项目当中一位类似唐吉诃德的代码孝敬者,一位论坛用户示意,Dashjr的言论让他看起来“精神不稳固”,另一位用户则示意,他基本不想为细节费心,他只是信托Andresen[19]。
作为回应,Dashjr从哲学的角度对P2SH提案提出了连续的否决意见,他不仅对P2SH的手艺价值提出了质疑,还对其对治理的影响提出了质疑。
“若是你想要一种君主钱币,为什么不直接使用美联储的美元呢?” Dashjr 用这样的话来回应那些攻击他的人,而效果自然是遭到了他人的围攻,他们以为Dashjr是在争取权力[20]。
但Dashjr 并没有退缩,其编写了P2SH的替换版本,称为CheckHashVerify(CHV),本质上,CHV是P2SH的另一种实现方式,然则并不需要对买卖输出举行非通例的注释。取而代之的是,,CHV添加了一个新的操作码,就像OP_EVAL一样,可“伪装”为占位符操作码。
但对Andresen而言,这已经太晚了[21],他以为不能再举行更多的争执。而对于民众的气忿,他以自己的方式回应道:
“Luke,你在挑战我的耐心,在我做一些愚蠢的事情之前,我将脱离代码几天,以冷静下来。” 争论延伸由于Andresen的P2SH设计在很大程度上被视为项目主要开发职员首选的足够好的解决方案,Dashjr发现自己处于孤立无援的田地。
只有Taaki有一些忧郁,但他并不是由于否决Andresen的解决方案,也没有说赞成Dashjr的方案。
这也使得Taaki不信托该项目的加速开发历程,若是决议历程需要时间而且涉及到更普遍的用户群,那么他更喜欢这样做。
在他看来,一小撮开发者就决议比特币的路径是不妥的,Taaki强烈以为,任何对该项目感兴趣的人都应该意识到权衡,并尽可能介入决议。
他对其他开发者示意:
“我希望人们对此事有发言权,纵然这会使开发职员很难注释他们的决议。” 纵然Taaki赞成Andresen的P2SH和Dashjr的CHV提案之间的差异很小,但他坚持以为,让用户介入开发历程是一项主要的事情,他示意: “我忧郁的是,有一天比特币会损坏,这种分外的审查可被视为确立开放文化的机遇。” 为此,Taaki撰写了一篇博客文章,其中列出了P2SH和CHV升级以及两者之间的差异[23]。Taaki的讯息是,用户可以选择,而且投票是基于挖矿算力。
杂乱的局势
Taaki的言论,造成了伟大影响。简直,中本聪已经制订了软分叉,但到2011年底,该网络已不再像早期那样运行。
中本聪在2008年公布白皮书时,他假设事情量证实(PoW)将由用户通过个人盘算机孝敬盘算量来提供,他写道:“事情量证实实际上是一CPU一票。”
在这种设计下,任何用户都可以成为矿工,并通过提议区块、验证对等方发送的买卖以及强制执行开发职员编写的代码来珍爱网络。
但在该软件推出后的几年里,这种模式已经被企业家们镌汰了。自从Lazlo Hanyesz(用比特币换披萨那位开发者)想出了若何用功效更壮大的图形处置单元(GPU)来挖取比特币的方式,专家们一直在忙于将挖矿这件事从业余爱好酿成企业式事情。
大约在统一时间,Marek “Slush” Palatinus提出了一种方式,其允许矿工搜集提议区块所需的算力,并分享利润。这实际上使得挖矿事情不再是一种彩票行为,而成为了一种稳固的收入泉源。
到2011年底,那时全球只有三个矿池,DeepBit、Slush Pool以及BTC Guild,这些矿池控制了比特币网络一半以上的算力。彼时,大多数“选票”就集中在少数几个矿池运营商的手上,这不再是“一CPU一票”制,矿池成为了网络选民的代表。
对于一些人来说,这证实比特币网络出了一些问题。“我以为一个矿池来决议网络的转变是一场闹剧,”早期矿工Midnightmagic争辩说[24]。
而对其他人来说,挖矿中央化是一个不幸的依赖,这使得“软分叉”升级更易于治理,从而降低风险。(究竟,现在平安推出只需要少数矿池运营商介入)
例如,Maxwell更愿意接受眼前不尽如人意的现实[25],他回答说:
“若是面临较重大的更改,那么开发职员和矿池都将退缩,但现在似乎没有人否决它。这是一个很好的未来机制… 希望我们不会遭遇比特币不再去中央化的杂乱局势。” 投票照样不投票?Andresen和Dashjr的敌对提议,体现出对比特币治理的对立看法,这只会使问题复杂化。
在此之前,开发者们一直把即将到来的软叉升级称为一种投票:矿工可以用多数算力执行P2SH(或OP_EVAL)的新规则,因此投票旨在权衡这一效果的可能性。
虽然这一术语最先逐步被人人知道,但这忽略了一些手艺上的细微差别。在举行一项民意调查时,开发者并没有问矿工们对他们的新提案的看法。相反,他们将其视为查看矿工是否准备确保平安升级的一种方式。
从这个角度来看,对于开发职员来说,只有一个提议会被添加到软件中,而用户和矿工将执行网络规则。
Maxwell对Taaki的投票界说感应恼火[26],他争辩道:
“比特币系统不适合多数选举,这不是由多数算力决议,也不是由多数人决议,也不是由多数钱决议。” Maxwell强烈以为,矿工的“投票”应像在软件自己那样受到限制,以执行买卖的顺序,而不是整个网络的规则。 “若是现在的矿工中的绝大多数(甚至100%)决议区块补助永远为50 BTC的话,会发生什么?什么都没有了,从比特币网络的角度来看,在软件中改变这一规则的矿工们就不再存在了。” Dashjr并不否决Maxwell,但实际上,他很难想象,若是开发者在没有矿工支持的情形下推动变化,比特币将若何保持平安。 “矿工可以简朴地拒绝P2SH买卖,以免受‘开发团队转变’的影响,”他回应道[27],“若是开发者封锁了所有的矿工,猜猜会发生什么?网络很容易遭受50%攻击,它会变得不平安。” 从这个角度来看,我们就更容易明白,为什么Dashjr会以为Andresen在滥用他首席开发者的角色,以试图单独推动P2SH。若是矿工使用尺度软件挖取一个区块,它会自动投下赞成P2SH的“票”[28]。作为回应,Dashjr编写了补丁,引入了矿工投票赞成和否决P2SH和CHV的选项。
只管很少有矿工使用该代码,但Dashjr的否决发生了效果。DeepBit矿池的运营者Tycho最先对自己在评估竞争代码方面的角色感应不安。
很显著,开发者之间尚未杀青共识,他写道:
“我不想成为对此做出决议的单一实体。” [29] 陷入僵局在提出拒绝用矿池来影响升级决议的想法后,Tycho给那时的争论增添了一个转折点,若是没有他的支持,P2SH将很难被激活。
到了1月下旬,第一轮P2SH投票即将竣事,而支持P2SH的算力并没有到达激活阈值。升级显然要被推迟了,这一现实不仅使Andresen感应沮丧,也使其他开发职员感应沮丧。
在IRC上,Maxwell公然示意,僵局似乎没有竣事的迹象,他写道:
“以为这是急着上线的说法是胡说八道,Gavin在去年10月份就最先了P2SH门路,据我所知,除非有人确定最后限期,否则这就没有效果,由于总会有一些人的好主意会在下一刻蹦出来。” Andresen并没有将延迟的责任归咎于矿池的泛起,而是怪到了DeepBit运营者Tycho的身上,Andresen写道: “现在来看,似乎有人拥有足够的算力来否决任何转变。” [31]。 这让Andresen感应不安,他以为Tycho的态度不道德,Andresen写道: “我以为,行使自己最大矿池运营商的权力违反普遍的共识是纰谬的。”[32] 事实上,纵然Andresen向民众施加压力,迫使用户要求他们的矿池升级,并提出在P2SH导致任何财政损失的情形下归还DeepBit的所有资金时,Tycho 也不愿意“投票”通过这一提案[33]。面临延迟,Andresen试图引起民众的关注,并坚持以为P2SH和CHV之间的选择对用户险些没有影响。
他写道:
“ [P2SH/CHV]这两个提案,相当于工程师们在争论把两块木头拼在一起,是用钉子、螺丝钉照样胶水。任何解决方案都市奏效,普通用户不会注意到任何区别。” 从回帖的情形来看,比特币用户们接受了Andresen的说法,指责Tycho阻碍了升级,并向他施压以使其激活提案。而Tycho则反过来强烈否决Andresen的的说法。他说,纵然自己掌握了30%的算力,其他的矿工也可以否决他,他不想成为决议因素。
第二轮投票
由于P2SH迟迟未能获得足够的算力支持,Andresen被迫公然讨论其提议的计谋,而且他最先接受CHV作为打破僵局的潜在替换方案。
只管如此,社区成员之间的反映,形成了一道界线。
BitcoinTalk用户dooglus以为:“最终,矿工是唯一对此类问题有发言权的人。他们是唯一决议哪些买卖进入区块的人。”
但BitcoinTalk论坛的治理员Theymos完全拒绝了这个想法,他提出“非矿工也可以拒绝区块,若是有足够多的客户端这样做,矿工们挖取的币将一文不值。”
他们提出建议,应在内部举行为期两周的讨论,并在最后举行投票[37]。不管是出于建议照样有时,Dashjr很快确立了一个Wiki页面,在那里,受人尊重的开发职员可以表达他们的偏好。
在接下来的几天里,Maxwell、Thomas以及Wuille都示意,他们很愿意接受P2SH或CHV,只管他们明确示意自己更喜欢P2SH。而O’Connor和Dashjr赞成P2SH是可接受的,但他们更倾向于CHV[38]。
无独有偶的是,Andresen依旧投票支持了P2SH,并对CHV提案提出了强烈否决意见。
更主要的是,只有很少的矿工支持CHV提案,到2月中旬时,P2SH获得了30%的算力支持,而Dashjr的替换方案只停留在2%的算力支持。
在IRC集会上,Dashjr说他正在思量是否完全撤出CHV,并委曲接受了P2SH的主导地位[39]。在统一次集会上,参会职员赞成将第二次投票的停止日期定为3月1日。
随着新的停止日期的邻近,更多的矿工支持了P2SH,算力支持率接近了55%的门槛。很快,Tycho和Dashjr别无选择,只能接受多数人的喜欢[40]。
据此,Andresen宣布在10天之内部署并激活软分叉,并于2012年4月1日强制执行新规则[41]。
自中本聪退出以后,P2SH成为了首个获得实行的比特币提案升级。
茶壶里的风暴
P2SH艰难的政治历程,将继续在该提案之外发生持久影响。
最终,Andresen得以部署了他设计和喜欢的解决方案。若是可以说,Andresen的向导能力在危急中受到质疑,那么到最后,他的向导能力又获得了很好的牢固。
之后,Andresen甚至要求Dashjr完全住手对比特币举行孝敬,只管看起来他要么放弃了这种威胁,要么Dashjr爽性置之度外[43]。
与此同时,Maxwell成为了比特币的“焦点开发者”之一,他与Andresen、Wladimir van der Laan以及Jeff Garzik分享了比特币项目的commit维护权限。
基调已经定好了:谈到比特币的开发时,务实的态度会获得回报,而相反的孝敬者则会遭到开除。
随着越来越多的用户涌向比特币,P2SH很快就获得了接纳,只管它会继续成为开发者之间分歧的*****。
回首一年后在应对另一场危急时发生的事宜,Andresen会夸口说,他信赖P2SH验证了他对该项目的向导能力以及愿景[44]。
2013年头,开发者Peter Todd制作了一段视频,Andresen在回应这段视频时写道:
“区块巨细将会提高,你的视频只会让很多人对一些没有的事情感应担忧,就像去年Luke-Jr的 [CHV] 提案一样,只会在茶壶里引起一场风暴。” 若作甚第一个去中央化的数字钱币做出决议?若是这个问题最终被问到,那将需要一场更普遍的战争,而这需要数年的时间,才气解决它 …加入新手交流群:每天早盘分析、币种行情分析
添加助理微信,一对一专业指导:chengqing930520
上一篇:看法 | 我们必须解决比特币托管的用户体验问题加入新手交流群:每天早盘分析、币种行情分析,添加助理微信
一对一专业指导:chengqing930520
最新资讯