AD
首页 > 数字货币 > 正文

谁在掌控 Bitcoin Core?_数字货币

[2021-02-10 21:38:02] 来源: 编辑:wangjia 点击量:
评论 点击收藏
导读: 谁在控制Bitcoin Core(比特币核心)的GitHub信息库,这个问题经常被人提出。但这本身就是一个转移视线的提法,源于威权主义的观点。显然,这种提法不适用于BTC。 伯尼·桑德斯的经济政策会
谁在控制Bitcoin Core(比特币核心)的GitHub信息库,这个问题经常被人提出。但这本身就是一个转移视线的提法,源于威权主义的观点。显然,这种提法不适用于BTC。

伯尼·桑德斯的经济政策会让人们购买比特币

要记住的重要一点是,伯尼桑德斯并不是那么认真思考。

谁在掌握Bitcoin Core(比特币中间)的GitHub信息库,这个问题常常被人提出。但这自身就是一个转移视线的提法,源于威权主义的看法。明显,这类提法不适用于BTC。



谁在掌握Bitcoin Core(比特币中间)的GitHub信息库,这个问题常常被人提出。但这自身就是一个转移视线的提法,源于威权主义的看法。明显,这类提法不适用于BTC。

本文旨在展现Bitcoin Core怎样运作,以及在更高条理上BTP自身怎样生长。

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



Bitcoin Core的汗青

Bitcoin Core是开发BTP的核心,而不是一个批示和掌握点。假如它因为任何缘由不复存在,一个新的核心就会涌现——它所基于的手艺通讯平台(现在是GitHub存储库) 是一个随意马虎而非定义/项目完整性的问题。现实上,我们已眼见BTC生长重心改变了平台以至名字!

2009年终,BTC项目的源代码只是托管在SourceForge上的一个.rar文件。初期的开发职员现实上会经由历程E-mail与Satoshi交流代码补丁。

2009年10月30日,Sirius (Martti Malmi)在SourceForge上为BTC项目竖立了一个subversion存储库。

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

2014年,BTC项目更名为Bitcoin Core。



不轻信托何人

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

Bitcoin Core遵照最小特权准绳,即假如被滥用,任何给予个人的权益都很随意马虎被推翻。



Peter Todd推文: “Core关于主要的列表是公然通明的,能够签订兼并提交的PGP密钥。”

这里要学到的经验是:不要随意马虎置信GitHub!纵然Bitcoin Core也不知道能够变动回购的职员的完整列表,因为这大概扩大到数十名GitHub员工。”

从反抗者的角度来看,GitHub是不可托托的。任何GitHub员工都能够运用他们的治理权限将代码注入存储库,而无需庇护职员的赞同。但GitHub攻击者不太大概损坏Bitcoin Core庇护者的PGP密钥。

Bitcoin Core不是基于GitHub帐户代码的完整性,而是具有延续集成体系,该体系执行必需对每一个兼并提交署名的可托PGP密钥举行搜检。虽然这些密钥与已知身份相绑定,但仍然没法确保十拿九稳。密钥大概会被泄漏,除非原始密钥持有者关照其他庇护者,不然我们将无从得知。 因而,提交密钥也不能供应圆满的平安性,它们只会使攻击者更难以注入恣意代码。



开启王国的钥匙

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

71A3B16735405025D447E8F274810B012346C9A6133EAC179436F14A5CF1B794860FEB804E66932032EE5C4C3FA15CCADB46ABE529D4BCB6416F53ECB8B3F1C0E58C15DB6A81D30C3648A882F4316B9BCA03882CB1FC067B5D3ACFE4D300116E1C875A3D

这些密钥注册给了:

Wladimir J. van der Laan

Pieter Wuille

Jonas Schnelli

Marco Falke

Samuel Dobson

这是不是意味着我们能够完整置信这五个人?并不是。钥匙不是身份证明 ,大概落入其他人的手中。假如运转verify-commits python剧本,你能获得什么保证呢?

python3 contrib/verify-commits/verify-commits.py Using verify-commits data from bitcoin/contrib/verify-commitsAll Tree-SHA512s matched up to 309bf16257b2395ce502017be627186b749ee749There is a valid path from “HEAD” to 82bcf405f6db1d55b684a1f63a4aabad376cdad7 where all commits are signed!

Verify-commits剧本是一个完整性搜检,任何开发职员都能够在他们的机械上运转。执行后,它会在自2015年12月提交82bcf405以后的每一个兼并提交中搜检PGP署名。在编写时已凌驾3,400次兼并。

假如剧本胜利完成,它通知我们,自当时起已变动的每一行代码都已经由历程Bitcoin Core开发历程,并被具有庇护者密钥的人举行了“署名”。虽然这没法完整保证没有人注入歹意代码,但会大大削减攻击面。

什么是“庇护者”,以及他们是怎样完成这一角色的,这点我们稍后会深入研究。



多层防备

Bitcoin Core代码的完整性不能仅仅依靠于少数密钥,这就是为何存在大批其他搜检的缘由。

有很多平安层来供应深度防备:

Pull Request平安性

任何人都能够经由历程在Bitcoin/Bitcoin上翻开针对主分支的Pull Request (简称PR),来自在地提出代码变动,以革新软件。

开发职员考核PR以确保它们无害。任何人都能够自在地检察PR并供应反应。在为Bitcoin Core做出孝敬时,没有门坎或入门测试。假如没有人对一个PR提出合理的阻挡看法,那末庇护者就会举行兼并。

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

兼并提交能够挑选经由历程OpenTimestamps加上平安时候保证。

Travis Continuous Integration体系会按期运转此剧本以搜检git tree(汗青)的完整性,并考证主分支中的统统提交是不是都由可托的PGP密钥举行署名。

任何想要运转此剧本以考证统统兼并提交的PGP署名的人都能够追溯到2015年12月。

宣布平安性

Gitian确定性构建体系由多个开发职员自力运转,目的是竖立雷同的二进制文件。假如有人想法竖立与其他开发职员不婚配的构建,即表明引入了非确定性,则终究版本不会发作。假如存在非确定性,开发职员会追踪失足的处所,修复它,并构建另一个候选版本。一旦确定性构建胜利,那末开发职员就会对生成的二进制文件举行署名,从而保证文件和东西链不被改动而且运用雷同的源代码。此要领将构建和分发历程作为单点毛病删除。任何具有手艺妙技的人都能够运转本身的构建体系。

一旦Gitian构建胜利完成,并由构建者签订,Bitcoin Core庇护者便会签订一条包含每一个SHA256哈希值的音讯。假如你决议运转预构建的二进制文件,则能够在下载后搜检其哈希值,然后运用哈希值考证署名版本音讯的真实性。

以上统统内容都是开放源代码,任何有妙技和志愿的人都能够考核。

末了,纵然完成上述统统质量搜检和完整性搜检,提交到Bitcoin Core,并终究进入版本的代码也不会被任何中间化的实体布置到节点收集上。相反,每一个节点运转者必需有意识地决议是不是更新他们运转的代码。Bitcoin Core锐意没有到场自动更新功用,因为它大概用于运用户运转他们没有明白挑选的代码。

只管Bitcoin Core项目执行了统统手艺平安措施,但它们也并不是圆满。理论上,任何代码都有大概遭到损伤。Bitcoin Core代码完整性的末了一道防地与任何其他开源项目雷同:时候保持警惕。有越多的人盯着Bitcoin Core代码,进入宣布版本的歹意或缺点代码就越少。



代码掩盖局限

Bitcoin Core有很多测试代码。有一个针对每一个PR运转的集成测试套件和一个每晚在主服务器上运转的扩大测试套件。

能够经由历程以下体式格局自行搜检测试的代码掩盖率:

1. 克隆Bitcoin Core的GitHub存储库;

2. 从源代码装置构建所需的依靠项;

3. 运转这些敕令;

4. 在./total_coverage/index.html上检察报告;

或许, 能够检察由Marco Falke掌管的代码掩盖率报告。如下图:



代码掩盖率报告

代码掩盖率越高,意味着预期运转确实定性越高。

当涉及到共鸣症结软件时,测试异常主要。 关于迥殊庞杂的变动,开发职员偶然须要举行艰辛的变异测试。也就是说,他们经由历程有意损坏代码来检察测试是不是会根据预期一样失利。

Greg Maxwell在议论0.15版本时,对这个历程给出了一些看法:

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



自在市场协作

BitMEX曾撰写了一篇关于BTC完成途径生态体系的精彩文章。现在有十几种差别的BTC完成体式格局,以至会有更多的“协作收集”完成。这是开源的自在,任何对Bitcoin Core项目不满意的人,都能够自在地开启他们本身的项目。他们能够从头入手下手,也能够分叉Core软件。

在撰写本文时,有96%的BTC节点正在运转某种版本的Bitcoin Core。为何会涌现这类状况?

假如切换到另一个软件完成途径所需的勤奋最小,那末是不是意味着Bitcoin Core在节点收集上具有近乎垄断的职位? 毕竟,很多其他完成要领供应了与Bitcoin Core兼容或高度类似的RPC API。


我以为,这是Bitcoin Core成为开发核心的效果。它具有更多开发人材和时候作为支撑,这意味着,Bitcoin Core项目生成的代码每每具有最好的机能、妥当和平安。

在资金治理方面,节点运营商不会想运转次好的软件。同时,鉴于这是一个共鸣软件,BTP不具有(也不能有),一个正式的范例,因为没有人有威望制定。因而,用核心开发职员的完成体式格局或多或少都更平安。

从这个意义上说,开发核心的代码是最接近现有范例的代码。



谁是Core的开发职员?

关于不熟悉Bitcoin Core开发历程的人,从外部看这个项目,大概会以为Core是一个单一的实体。现实状况远非云云!

中间孝敬者之间常常存在不合,纵然是最多产的孝敬者也编写了大批从未兼并到项目中的代码。假如浏览相干指南,你大概会注重到,它们相称松懈——这个历程能够用“大略的共鸣”来形貌。

庇护职员会斟酌:一个补丁是不是相符项目的平常准绳?是不是相符归入的最低标准?进而对孝敬者的广泛共鸣举行推断。

谁是BTC Core的庇护者?他们是在一段时候内做出高质量的代码、在项目中积累了充足的社会资本的孝敬者。

当现有的庇护者们以为,某位孝敬者是在某一范畴才能表现凸起、牢靠、主动的人选时,他们能够授与该职员GitHub帐户提交接见权。

首席庇护者的角色担任监视和谐和项目的各个方面。它是多年来自愿撒布下来的:

Satoshi Nakamoto: 1/3/09 - 2/23/11

Gavin Andresen: 2/23/11 - 4/7/14

Wladimir van der Laan: 4/7/14—present

作为一个Bitcoin Core庇护者一般被称为“清洁工”,因为庇护者现实上没有权益做出违犯孝敬者或用户共鸣的决议。然则,因为全部生态体系被外界太过关注,这个角色的事变大概相称沉重。

比方, Gregory Maxwell (格雷戈里 · 麦克斯韦尔) 在2017年出于个人缘由摒弃了他的庇护者角色,极大概是因为他在扩容议论时期所蒙受的民众压力。

Wladimir写了一篇作为中间庇护者的压力的文章,个中诠释了为何移除Gavin的提交接见,这让很多人觉得不安。

一样地,当Jeff Garzik被从GitHub构造中移除时,他和其他人也都觉得不满,但他已两年没有为Core做孝敬了。保存他GitHub帐户对储存库的接见权限,不仅对项目没有任何优点,反而会组成平安风险,而且违背了Wladimir在他的文章中提到的最小特权准绳。

其他人大概会关注Core,以为它是一个手艺统治或象牙塔,让新人很难到场。但假如你和孝敬者攀谈,就会发明现实并不是云云。虽然多年来只要十几个人具有提交接见权限,但已有数百名开发职员做出了孝敬。我本身也做了一些小孝敬。虽然我不以为本身是一个“中间” 开发职员,但严格来说,我也是一名Core开发者。没有人能阻挠你做出孝敬!



Matt Corallo 推文: “2011年,作为一名不懂标记的高中生,开发者社区(迥殊是像Greg Maxwell, pwuille等人)与我协作,让我蹩脚的补丁变得值得兼并,并制造了一个巨大的进修环境。”



John Newbery 推文: ” 2016年,@ TheBlueMatt在@ChaincodeLabs构造了一次接见。我一直在浏览有关BTC的统统内容,我能够松手尝试,但照样不敢提交PR。Matt,Alex和Suhas异常激昂大方地花时候教我们关于BTC的统统,以及怎样做孝敬。”



 Jeff Rade推文: ”我入手下手对@bitcoincoreorg举行小型提交,而且对@MarcoFalke @pwuille @orionwl @LukeDashjr和@jfnewbery到场我的PR深深感动,这真是一个热忱的项目!”

人们最难以明白的事变之一似乎是,BTC生长的核心并不仅仅是Bitcoin Core GitHub账户定义的构造。虽然Bitcoin Core有一些构造 (它运用中间化的通讯渠道来举行谐和),但项目自身不受任何介入者的掌握——纵然是那些升级了GitHub存储库特权的介入者也不行。

虽然从手艺上讲,庇护职员构造内部大概会发作“政变”,并有大概挟制GitHub存储库,检察持不赞同见的开发职员,以至大概争夺“Bitcoin Core”的品牌称号,但效果是Bitcoin Core将不再是开发的重点。阻挡庇护者行动的开发职员只需将代码分叉,并将事变转移到Bitcoin Core庇护者没有治理权限的另一个存储库。

纵然没有“政变”,假如一个有争议的变动以某种体式格局进入Core,部份开发职员会将软件分叉,删除这个变动,并将其供应给用户运用。你大概会说,这正是Amaury Sechet分叉Bitcoin Core,并删除断绝见证,竖立比特币ABC时所发作的事变。或许,假如Core谢绝一些人想要的发起的变动,开发职员能够分叉,再增加这些变动。这类状况发作过很屡次,比方:

Mike Hearn用forked Core竖立了Bitcoin XT

Andrew Stone创立了Core,竖立了Bitcoin Unlimited

Jeff Garzik用fork Core竖立了BTC1

分叉代码很随意马虎。转移BTC生长的核心却很难题的——你必需压服孝敬者,他们最好把时候花在另一个项目上。



James Lopp推文:”我不对任何人、任何比特币开发团队尽忠。我的企图是运转最能庇护我财务主权的代码。”

很难压服民众。用户不会盲目地跟随Bitcoin Core的变化,这是一种自我强化的信心,因为假如用户不介入共鸣历程,并意想到本身的挑选,他们就会把部份权益拱手让给开发者。

然则,用户在2017年的UASF (User Activated Soft Fork) 活动中,执行了他们的权益。一名假名shaolinfry的BTC开发者提出了BIP 148,这个提案将迫使矿工在8月1日摆布激活断绝见证。

然则,因为BIP 148争议太大,没法被Bitcoin Core采纳,所以shaolinfry将Core举行了分叉,并供应了“Bitcoin UASF”软件。这个软件完成获得了不小的吸引力,而且制造了充足的压力来压服矿工在BIP 148停止日期之前采纳BIP 91来激活fork。

在我看来,最好的Bitcoin Core孝敬者是那些充足执行主权的人。比方John Newbery,只管他没有编写包含这个特定共鸣毛病的代码,然则他以为本身有义务细致地搜检来阻挠它被兼并,而且在编写测试时发明这个毛病的代码。



John Newbery推文: ” 我为CVE-2018-17144的毛病全权担任。毛病的代码被兼并是不对的。因为没有彻底地检察共鸣变动,全部社区搞砸了它,开发职员须要注重!这是人人的义务。”

我们都是 Satoshi (中本聪)!



为Bitcoin Core做孝敬

虽然有充足的资本能够协助有志向的开发职员,但为Core做孝敬依旧让人觉得怕惧。你能够从Jimmy Song写的指点申明“A Gentle Introduction to Bitcoin Core Development”入手。

Core开发职员Eric Lombrozo还撰写了一篇文章“The Bitcoin Core Merge Process”,相识怎样在Core存储库中举行变动。

另外,Alex B.撰写了一篇关于BTC开发理念的优异文章“The Tao of Bitcoin Development”,任何想要成为孝敬者的人都能够经由历程浏览它来节约大批时候。

详细的示例大概会有所协助。在写这篇文章时,我尝试在我的机械上运转verify-commits.py剧本,以便考核GitHub提交汗青记录的完整性,但遇到了难题。

为了便于将来的开发职员躲避这些问题,我翻开了一个PR来革新文档。从PR汗青中能够看出,有4位差别的开发职员提出了怎样革新PR的发起。这包含运用差别的wiki标记到简化的bash敕令,以及能够在verify-commits.py剧本中运用的新参数。我以为统统的发起都很合理,所以我将它们兼并到我的代码中,并为我的PR推送了更新版本。在当时,介入检察的开发职员认可可他们发明PR,庇护者Marco Falke将其标记为包含在0.18版本中。经由几天的勤奋,开发职员没有阻挡看法,代码被庇护者Samuel Dobson兼并到了Core中。



总结:没有人能够掌控BTC

正如饱受争议的那样,把BTC明白为一个体系是不大概的。对BTP 的定义 (掌握), 就如同对言语的定义。言语是天然发生的,对辞汇寄义的共鸣是有机的,而不是由字典决议的。就像字典形貌一种言语的征象而不是定义它,BTC的完成体式格局也用代码形貌了BTC的言语。没有人被迫赞同字典中给出的定义,一样,也没有人被迫运转BTC完成体式格局或认同这一历程当中的代码。

言语不受民主安排,BTC也不受民主治理。虽然你大概会听到人们提到矿工、节点、开发职员或用户“投票”,然则,没有任何一种机制能够让多数人迫使持不赞同见的少数人接收他们不赞同的变动。简言之,BTC是无政府状态——没有统治者,但也不是没有划定规矩。划定规矩由收集上的各个介入者定义和执行。

对BTP自身的变动一般是经由历程BTC革新提案流程举行的,纵然这只是一个引荐的最好实践,也不能强制任何人遵照它。它只是一种更正式的体式格局,试图经由历程偕行检察和竖立共鸣的历程来指点革新。

BTC抗脆弱性的一个主要方面——假如只要一个单一的掌握点,那末它也是一个单一的毛病点,会被壮大实体所应用。终究,每一个节点运转者经由历程确保收集上没有其他人违背它们杀青一致的划定规矩来治理本身。这类平安模子是BTC自下而上治理的基本。

没有人掌控BTC。没有人掌控BTC开发的核心。


比特币:www.btcmoney.cc

比特币; https://www.btcmoney.cc/detail/27605.html

加入新手交流群:每天早盘分析、币种行情分析

添加助理微信,一对一专业指导:chengqing930520

上一篇:BM最新撰文《高流动性价钱挂钩代币算法》
下一篇: 伯尼·桑德斯的经济政策会让人们购置比特币

加入新手交流群:每天早盘分析、币种行情分析,添加助理微信

一对一专业指导:chengqing930520

最新资讯
提供比特币数字货币以太坊eth,莱特币ltc,EOS今日价格、走势、行情、资讯、OKEX、币安、火币网、中币、比特儿、比特币交易平台网站。

2021 数字货币 网站地图

查看更多:

为您推荐