月亮链 月亮链
Ctrl+D收藏月亮链
首页 > 币赢 > 正文

ORE:比特币不属于任何个人 但谁在掌控 Bitcoin Core?_BIT

作者:

时间:1900/1/1 0:00:00

谁在控制BitcoinCore的GitHub信息库,这个问题经常被人提出。但这本身就是一个转移视线的提法,源于威权主义的观点。显然,这种提法不适用于BTC。

本文旨在揭示BitcoinCore如何运作,以及在更高层次上BTP本身如何发展。

本文作者为BitcoinCore开发者,由加密谷独家编译

BitcoinCore的历史

BitcoinCore是开发BTP的焦点,而不是一个指挥和控制点。如果它因为任何原因不复存在,一个新的焦点就会出现——它所基于的技术通信平台(目前是GitHub存储库)是一个方便而非定义/项目完整性的问题。事实上,我们已经目睹BTC发展重心改变了平台甚至名字!

2009年初,BTC项目的源代码只是托管在SourceForge上的一个.rar文件。早期的开发人员实际上会通过E-mail与Satoshi交换代码补丁。

2009年10月30日,Sirius(MarttiMalmi)在SourceForge上为BTC项目创建了一个subversion存储库。

2011年,BTC项目从SourceForge迁移到了GitHub。

2014年,BTC项目更名为BitcoinCore。

不轻信任何人

虽然一些少数有组织的GitHub“维护者”帐户能够将代码合并到主分支中,但这更像是一种“清洁工”的职位,而非掌权者。

BitcoinCore遵循最小特权原则,即如果被滥用,任何赋予个人的权力都很容易被颠覆。

PeterTodd推文:“Core对于重要的列表是公开透明的,可以签署合并提交的PGP密钥。”

这里要学到的教训是:不要轻易相信GitHub!即便BitcoinCore也不知道可以更改回购的人员的完整列表,因为这可能扩展到数十名GitHub员工。”

从反抗者的角度来看,GitHub是不可信任的。任何GitHub员工都可以使用他们的管理权限将代码注入存储库,而无需维护人员的同意。但GitHub攻击者不太可能破坏BitcoinCore维护者的PGP密钥。

BitcoinCore不是基于GitHub帐户代码的完整性,而是具有持续集成系统,该系统执行必须对每个合并提交签名的可信PGP密钥进行检查。虽然这些密钥与已知身份相绑定,但仍然无法确保万无一失。密钥可能会被泄露,除非原始密钥持有者通知其他维护者,否则我们将无从得知。因此,提交密钥也不能提供完美的安全性,它们只会使攻击者更难以注入任意代码。

MicroStrategy计划为员工提供投资比特币的选项:金色财经消息,MicroStrategy首席执行官Michael Saylor发推特宣布,该司计划为员工提供投资比特币的选项,作为其401K投资组合的一部分。[2022/4/26 5:13:25]

开启王国的钥匙

在撰写本文时,这些是可信赖的PGP指纹:

71A3B16735405025D447E8F274810B012346C9A6133EAC179436F14A5CF1B794860FEB804E66932032EE5C4C3FA15CCADB46ABE529D4BCB6416F53ECB8B3F1C0E58C15DB6A81D30C3648A882F4316B9BCA03882CB1FC067B5D3ACFE4D300116E1C875A3D

这些密钥注册给了:

WladimirJ.vanderLaan

PieterWuille

JonasSchnelli

MarcoFalke

SamuelDobson

这是否意味着我们可以完全相信这五个人?并不是。钥匙不是身份证明,可能落入其他人的手中。如果运行verify-commitspython脚本,你能得到什么保证呢?

python3contrib/verify-commits/verify-commits.pyUsingverify-commitsdatafrombitcoin/contrib/verify-commitsAllTree-SHA512smatchedupto309bf16257b2395ce502017be627186b749ee749Thereisavalidpathfrom“HEAD”to82bcf405f6db1d55b684a1f63a4aabad376cdad7whereallcommitsaresigned!

Verify-commits脚本是一个完整性检查,任何开发人员都可以在他们的机器上运行。执行后,它会在自2015年12月提交82bcf405之后的每个合并提交中检查PGP签名。在编写时已经超过3,400次合并。

如果脚本成功完成,它告诉我们,自那时起已经更改的每一行代码都已通过BitcoinCore开发过程,并被具有维护者密钥的人进行了“签名”。虽然这无法完全保证没有人注入恶意代码,但会大大减少攻击面。

Higer:2020年最耀眼的不是比特币 而是DeFi:金色财经年度巨献洞见财富密码2021投资策略会持续进行中,区块链研习社Higer《如何布局DeFi下一爆发点》的精华看点如下:

目前,排名前20的加密资产里已经呈现了一种正在发生着的趋势,就是DeFi代币越来越多,未来这个趋势还会加速。

在2020年DeFi锁仓金额实现了30倍的增长,各细分领域不断演化且表现优异,Aave涨幅5000%、YFI涨幅2350%、Melon涨幅960%,涨幅500%以上的还有:LINK、REN、LRC、BNT等。

在2021年Uniswap、AAVE、YFI等头部项目可能继续加大产品创新并受到追捧,与此同时,一些创新项目在短期内还会吸引广泛关注,比如比特币锚定币以及算法稳定币。

但是DeFi世界变化太快,而投资的核心是观察项目的增长数据,项目之间的竞争非常激烈,没有一个赛道能稳坐宝座,Cover对NXM的挑战就是一个例子。[2020/12/30 16:06:01]

什么是“维护者”,以及他们是如何实现这一角色的,这点我们稍后会深入研究。

多层防御

BitcoinCore代码的完整性不能仅仅依赖于少数密钥,这就是为什么存在大量其他检查的原因。

有许多安全层来提供深度防御:

PullRequest安全性

任何人都可以通过在Bitcoin/Bitcoin上打开针对主分支的PullRequest(简称PR),来自由地提出代码更改,以改进软件。

开发人员审核PR以确保它们无害。任何人都可以自由地审查PR并提供反馈。在为BitcoinCore做出贡献时,没有门槛或入门测试。如果没有人对一个PR提出合理的反对意见,那么维护者就会进行合并。

Core维护者设置pre-pushhook,以确保它们不会将未签名的提交推送到存储库中。

合并提交可以选择通过OpenTimestamps加上安全时间保障。

TravisContinuousIntegration系统会定期运行此脚本以检查gittree的完整性,并验证主分支中的所有提交是否都由可信的PGP密钥进行签名。

任何想要运行此脚本以验证所有合并提交的PGP签名的人都可以追溯到2015年12月。

发布安全性

Gitian确定性构建系统由多个开发人员独立运行,目标是创建相同的二进制文件。如果有人设法创建与其他开发人员不匹配的构建,即表明引入了非确定性,则最终版本不会发生。如果存在非确定性,开发人员会追踪出错的地方,修复它,并构建另一个候选版本。一旦确定性构建成功,那么开发人员就会对生成的二进制文件进行签名,从而保证文件和工具链不被篡改并且使用相同的源代码。此方法将构建和分发过程作为单点故障删除。任何具有技术技能的人都可以运行自己的构建系统。

观点:投资者对2009年远古钱包比特币异动反应过度:昨日晚间,某2009年远古比特币地址出现异动,有声音猜测该地址可能属于中本聪,而后多方给出分析称不太可能。但消息传出之时迅速引发了比特币的大幅抛售,导致比特币从9800美元的高点跌至9400美元的低点。分析平台Santiment分享了这条消息开始传播时关于投资者情绪的数据,并解释称随后的抛售表明人们对此“反应过度”:“BTC在1小时内的跌幅达到4%。社会交易量表明,人们对此反应过度,当价格开始反弹时,人们的反应又迅速平息下来。”(CryptoSlate)[2020/5/21]

一旦Gitian构建成功完成,并由构建者签署,BitcoinCore维护者便会签署一条包含每个SHA256哈希值的消息。如果你决定运行预构建的二进制文件,则可以在下载后检查其哈希值,然后使用哈希值验证签名版本消息的真实性。

以上所有内容都是开放源代码,任何有技能和意愿的人都可以审核。

最后,即使完成上述所有质量检查和完整性检查,提交到BitcoinCore,并最终进入版本的代码也不会被任何中心化的实体部署到节点网络上。相反,每个节点运行者必须有意识地决定是否更新他们运行的代码。BitcoinCore刻意没有加入自动更新功能,因为它可能用于使用户运行他们没有明确选择的代码。

尽管BitcoinCore项目实施了所有技术安全措施,但它们也并非完美。理论上,任何代码都有可能遭到损害。BitcoinCore代码完整性的最后一道防线与任何其他开源项目相同:时刻保持警惕。有越多的人盯着BitcoinCore代码,进入发布版本的恶意或缺陷代码就越少。

代码覆盖范围

BitcoinCore有许多测试代码。有一个针对每个PR运行的集成测试套件和一个每晚在主服务器上运行的扩展测试套件。

可以通过以下方式自行检查测试的代码覆盖率:

1.克隆BitcoinCore的GitHub存储库;

2.从源代码安装构建所需的依赖项;

3.运行这些命令;

4.在./total_coverage/index.html上查看报告;

或者,可以查看由MarcoFalke主持的代码覆盖率报告。如下图:

代码覆盖率报告

代码覆盖率越高,意味着预期运行的确定性越高。

当涉及到共识关键软件时,测试非常重要。对于特别复杂的更改,开发人员有时需要进行艰苦的变异测试。也就是说,他们通过故意破坏代码来查看测试是否会按照预期一样失败。

分析 | 当前比特币散户投资者仍然没有真正入场:据CCN .com调查数据显示,目前比特币的零售兴趣指标评级为12,与2017年达到的100评级相差甚远,这意味着比特币散户投资者仍然没有真正入场。而灰度投资公司(Grayscale)最近发表的评论也支持了这一观点,Grayscale表示,“第一季度机构投资者占灰度产品总需求的比例最高为(73%),这与他们在过去12个月(73%)的流入份额一致。正如之前的报告中所提到的,本轮比特币牛市的背后主要是机构投资者,许多机构投资者可能认为当前形势是一个有吸引力的切入点,可以增强他们在数字资产中的核心地位。“[2019/6/24]

GregMaxwell在讨论0.15版本时,对这个过程给出了一些见解:

“测试是对软件的测试。要测试,你必须破解软件本身。”

自由市场竞争

BitMEX曾撰写了一篇关于BTC实现路径生态系统的精彩文章。目前有十几种不同的BTC实现方式,甚至会有更多的“竞争网络”实现。这是开源的自由,任何对BitcoinCore项目不满意的人,都可以自由地开启他们自己的项目。他们可以从头开始,也可以分叉Core软件。

在撰写本文时,有96%的BTC节点正在运行某种版本的BitcoinCore。为什么会出现这种情况?

如果切换到另一个软件实现路径所需的努力最小,那么是否意味着BitcoinCore在节点网络上具有近乎垄断的地位?毕竟,许多其他实现方法提供了与BitcoinCore兼容或高度相似的RPCAPI。

我认为,这是BitcoinCore成为开发焦点的结果。它拥有更多开发人才和时间作为支持,这意味着,BitcoinCore项目生成的代码往往拥有最好的性能、稳健和安全。

在资金管理方面,节点运营商不会想运行次好的软件。同时,鉴于这是一个共识软件,BTP不具有,一个正式的规范,因为没有人有权威制订。因此,用焦点开发人员的实现方式或多或少都更安全。

从这个意义上说,开发焦点的代码是最接近现有规范的代码。

谁是Core的开发人员?

对于不熟悉BitcoinCore开发过程的人,从外部看这个项目,可能会认为Core是一个单一的实体。实际情况远非如此!

核心贡献者之间经常存在分歧,即使是最多产的贡献者也编写了大量从未合并到项目中的代码。如果阅读相关指南,你可能会注意到,它们相当松散——这个过程可以用“粗略的共识”来描述。

动态 | 比特币兑换商Morgan Rockcoons在Bitcointopia欺诈案件中认罪:据Los Angeles Times消息,比特币兑换商Morgan Rockcoons在Bitcointopia欺诈案件中认罪,承认自己将从未拥有的土地出售给了投资者。此前2018年7月份消息,Bitcointopia陆续购入当地土地,欲打造靠数字货币驱动的实验城市;今年3月1日,Morgan Rockcoons被海关执法局逮捕,原因是其与卧底探员私下交易9.99个比特币,被控以及运作未经授权的货币转移业务,而当时他发推特表示重获自由后募集比特币投身于诉讼。[2019/3/9]

维护人员会考虑:一个补丁是否符合项目的一般原则?是否符合纳入的最低标准?进而对贡献者的普遍共识进行判断。

谁是BTCCore的维护者?他们是在一段时间内做出高质量的代码、在项目中累积了足够的社会资本的贡献者。

当现有的维护者们认为,某位贡献者是在某一领域能力表现突出、可靠、积极的人选时,他们可以授予该人员GitHub帐户提交访问权。

首席维护者的角色负责监督和协调项目的方方面面。它是多年来自愿流传下来的:

SatoshiNakamoto:1/3/09-2/23/11

GavinAndresen:2/23/11-4/7/14

WladimirvanderLaan:4/7/14—present

作为一个BitcoinCore维护者通常被称为“清洁工”,因为维护者实际上没有权力做出违背贡献者或用户共识的决定。然而,由于整个生态系统被外界过分关注,这个角色的工作可能相当繁重。

例如,GregoryMaxwell(格雷戈里·麦克斯韦尔)在2017年出于个人原因放弃了他的维护者角色,很可能是因为他在扩容讨论期间所承受的公众压力。

Wladimir写了一篇作为核心维护者的压力的文章,其中解释了为什么移除Gavin的提交访问,这让很多人感到不安。

同样地,当JeffGarzik被从GitHub组织中移除时,他和其他人也都感到不满,但他已经两年没有为Core做贡献了。保留他GitHub帐户对储存库的访问权限,不仅对项目没有任何好处,反而会构成安全风险,并且违反了Wladimir在他的文章中提到的最小特权原则。

其他人可能会关注Core,认为它是一个技术统治或象牙塔,让新人很难加入。但如果你和贡献者交谈,就会发现事实并非如此。虽然多年来只有十几个人拥有提交访问权限,但已有数百名开发人员做出了贡献。我自己也做了一些小贡献。虽然我不认为自己是一个“核心”开发人员,但严格来说,我也是一名Core开发者。没有人能阻止你做出贡献!

MattCorallo推文:“2011年,作为一名不懂标记的高中生,开发者社区与我合作,让我糟糕的补丁变得值得合并,并创造了一个伟大的学习环境。”

JohnNewbery推文:”2016年,@TheBlueMatt在@ChaincodeLabs组织了一次访问。我一直在阅读有关BTC的所有内容,我可以放手尝试,但还是不敢提交PR。Matt,Alex和Suhas非常慷慨地花时间教我们关于BTC的一切,以及如何做贡献。”

JeffRade推文:”我开始对@bitcoincoreorg进行小型提交,并且对@MarcoFalke@pwuille@orionwl@LukeDashjr和@jfnewbery加入我的PR深深感动,这真是一个热情的项目!”

人们最难以理解的事情之一似乎是,BTC发展的焦点并不仅仅是BitcoinCoreGitHub账户定义的结构。虽然BitcoinCore有一些结构(它使用中心化的通信渠道来进行协调),但项目本身不受任何参与者的控制——即使是那些升级了GitHub存储库特权的参与者也不行。

虽然从技术上讲,维护人员组织内部可能会发生“政变”,并有可能劫持GitHub存储库,审查持不同意见的开发人员,甚至可能抢夺“BitcoinCore”的品牌名称,但结果是BitcoinCore将不再是开发的重点。反对维护者行为的开发人员只需将代码分叉,并将工作转移到BitcoinCore维护者没有管理权限的另一个存储库。

即使没有“政变”,如果一个有争议的变更以某种方式进入Core,部分开发人员会将软件分叉,删除这个变更,并将其提供给用户使用。你可能会说,这正是AmaurySechet分叉BitcoinCore,并删除隔离见证,创建比特币ABC时所发生的事情。或者,如果Core拒绝一些人想要的提议的变更,开发人员可以分叉,再添加这些变更。这种情况发生过很多次,例如:

MikeHearn用forkedCore创建了BitcoinXT

AndrewStone创立了Core,创建了BitcoinUnlimited

JeffGarzik用forkCore创建了BTC1

分叉代码很容易。转移BTC发展的焦点却很困难的——你必须说服贡献者,他们最好把时间花在另一个项目上。

JamesLopp推文:”我不对任何人、任何比特币开发团队效忠。我的意图是运行最能保护我财务主权的代码。”

很难说服公众。用户不会盲目地追随BitcoinCore的变化,这是一种自我强化的信念,因为如果用户不参与共识过程,并意识到自己的选择,他们就会把部分权力拱手让给开发者。

然而,用户在2017年的UASF(UserActivatedSoftFork)运动中,实行了他们的权利。一位化名shaolinfry的BTC开发者提出了BIP148,这个提案将迫使矿工在8月1日左右激活隔离见证。

然而,由于BIP148争议太大,无法被BitcoinCore采纳,所以shaolinfry将Core进行了分叉,并提供了“BitcoinUASF”软件。这个软件实现获得了不小的吸引力,并且创造了充分的压力来说服矿工在BIP148截止日期之前采用BIP91来激活fork。

在我看来,最好的BitcoinCore贡献者是那些充分实行主权的人。例如JohnNewbery,尽管他没有编写包含这个特定共识错误的代码,但是他认为自己有责任仔细地检查来阻止它被合并,并且在编写测试时发现这个错误的代码。

JohnNewbery推文:”我为CVE-2018-17144的错误全权负责。错误的代码被合并是不对的。由于没有彻底地审查共识变更,整个社区搞砸了它,开发人员需要注意!这是大家的责任。”

我们都是Satoshi(中本聪)!

为BitcoinCore做贡献

虽然有足够的资源可以帮助有抱负的开发人员,但为Core做贡献仍旧让人感到畏惧。你可以从JimmySong写的指导说明“AGentleIntroductiontoBitcoinCoreDevelopment”入手。

Core开发人员EricLombrozo还撰写了一篇文章“TheBitcoinCoreMergeProcess”,了解如何在Core存储库中进行更改。

此外,AlexB.撰写了一篇关于BTC开发理念的优秀文章“TheTaoofBitcoinDevelopment”,任何想要成为贡献者的人都可以通过阅读它来节省大量时间。

具体的示例可能会有所帮助。在写这篇文章时,我尝试在我的机器上运行verify-commits.py脚本,以便审核GitHub提交历史记录的完整性,但遇到了困难。

为了便于未来的开发人员规避这些问题,我打开了一个PR来改进文档。从PR历史中可以看出,有4位不同的开发人员提出了如何改进PR的建议。这包括使用不同的wiki标记到简化的bash命令,以及可以在verify-commits.py脚本中使用的新参数。我认为所有的建议都很合理,所以我将它们合并到我的代码中,并为我的PR推送了更新版本。在那时,参与审查的开发人员承认可他们发现PR,维护者MarcoFalke将其标记为包含在0.18版本中。经过几天的努力,开发人员没有反对意见,代码被维护者SamuelDobson合并到了Core中。

总结:没有人能够掌控BTC

正如饱受争议的那样,把BTC理解为一个系统是不可能的。对BTP的定义(控制),就如同对语言的定义。语言是自然产生的,对词汇含义的共识是有机的,而不是由字典决定的。就像字典描述一种语言的现象而不是定义它,BTC的实现方式也用代码描述了BTC的语言。没有人被迫同意字典中给出的定义,同样,也没有人被迫运行BTC实现方式或认同这一过程中的代码。

语言不受民主支配,BTC也不受民主管理。虽然你可能会听到人们提到矿工、节点、开发人员或用户“投票”,但是,没有任何一种机制能够让多数人迫使持不同意见的少数人接受他们不同意的变更。简言之,BTC是无政府状态——没有统治者,但也不是没有规则。规则由网络上的各个参与者定义和执行。

对BTP本身的更改通常是通过BTC改进提案流程进行的,即使这只是一个推荐的最佳实践,也不能强迫任何人遵循它。它只是一种更正式的方式,试图通过同行审查和建立共识的过程来指导变革。

BTC抗脆弱性的一个重要方面——如果只有一个单一的控制点,那么它也是一个单一的故障点,会被强大实体所利用。最终,每个节点运行者通过确保网络上没有其他人违反它们达成一致的规则来管理自己。这种安全模型是BTC自下而上治理的基础。

没有人掌控BTC。没有人掌控BTC开发的焦点。

-END-

JamesonLopp作者

DUANNIYI翻译

SonnySun编辑

Roy排版

标签:ORECOREBITTCOFORE币CORE MultiChain Tokenbybit上海办公地点Bitcoin Atom

币赢热门资讯
BTC:研报 | 比特币走势稳健,中小币种进入分化调整期_usdm币是什什么稳定币

一、每周行业动态1.截至今日,加密货市场总市值1735.52亿美元,与前一周相比下跌2.77%;2.最近一周整个加密货币市场成交量为3486.29亿美元.

1900/1/1 0:00:00
GHT:价值50亿美元 美国法院要求「澳本聪」提供 BTC 所有权记录_48个BTCs能卖多少钱

美国佛罗里达州南区地方法院5月3日发布命令,要求CraigWright提供一份公开的BTC地址清单.

1900/1/1 0:00:00
Marvel:链游发行平台MixMarvel 发布会在韩盛大召开_MIX

4月30日晚上7点,由全球第一区块链游戏发行平台MixMarvel举办的大型发布会在首尔拉开帷幕,来自全球各地的众多合作伙伴纷纷到场支持,现场观众达500余人,场面爆满.

1900/1/1 0:00:00
Chain:第三期FOne交易挖矿币种投票结果公示_blockchain是什么软件

亲爱的社区用户:第三期FOne交易挖矿币种投票已顺利结束。我们现公布结果如下:排名???交易区??????????币种??????全称?????????????????????票数1精选热门币X.

1900/1/1 0:00:00
比特币:以太坊V神:Bitcoin SV被高估 比特币现金被低估_BUT

据ambcrypto.com报道,第二大加密货币以太坊的共同创始人VitalikButerin在近日演讲时称,BitcoinSV被高估,而比特币现金被低估.

1900/1/1 0:00:00
USD:比特币持续上涨 USDT是助推原因?_币世界快讯GUSDT

昨天,比特币价格近期最低的5200美元快速飙升到2019年最高的5900美元,目前币安比特币价格5777美元,火币USDT的场外价格也达到了6.69元.

1900/1/1 0:00:00