论比特币的分布式防御

Unknown view 37 2016-3-15 09:14
share to
Scan QR code with WeChat

比特币是点对点的电子货币,它的P2P特性足以用于防御国家级别的攻击。

政府可以轻易整垮中心化的网络比如Napster,但是纯P2P的网络比如Gnutella和Tor可以存活下来——中本聪

一些人声称比特币不可能挺过一次精心组织的国家级攻击。另一些人认为比特币的去中心化是没有理想测试标准的不明确概念,去中心化只是开发者阴谋的伪装。

如果比特币是不可防御的,那么它就没有意义了;如果去中心化不重要,那么比特币就是不可防御的。

根据Paul Baran1964年关于分布式网络的论文,网络拓扑设计的关键是保证在丢失一定数目的节点后,仍然能保证正常的通信能力。中心化的网络(星型结构)在丢失一个节点后将会瘫痪,而这两种结合起来的分布式网络(多边型)会更有弹性。

关于比特币的防御能力,我们指的并不是它的线性协议或是我们所保护的通信属性。

作为一种货币,比特币形成的是一个社会场景,即人与人之间的关系。我们说的防御就是针对这种社会场景,而不是线性协议。

在比特币的世界里,是共识规则来定义货币的。对这些规则的改动则是实行硬分叉和软分叉。在一次硬分叉中,新的交易即使符合原来的规则,也可能是无效的。而在一次软分叉中,新的交易只要符合原来的规则就是有效的。

打个比方,1933年金本位与美联储货币脱钩(硬分叉),不时地将这些货币替换成新的货币,虽然旧的货币仍然是合法的(软分叉)。一次没有通过持币人普遍同意的硬分叉就是偷窃,这就是为什么定义比特币的规则被称为共识规则的原因。

对于货币来说,美联储系统是中心化的(有个权威机构),黄金是分布式的(没有权威机构)。黄金是有最小单位定义的货币,它不可能在线上传输,对于现代商业来说很不合适。作为一种信息货币,比特币的创新之处是它对权威机构的审查免疫(无需审查)。一次比特币硬分叉就相当于改变黄金的最小度量单位。

社会场景是由人们的选择来界定的,人们通过选择接受或者反对货币的改变来保护他们自己在交易中免受欺诈。并且,也只有通过这种自利政策的广泛应用才能保护货币免受权威的操纵(比如:未得到共识支持的硬分叉)。比特币免审查的优点就是一种普通大众可以在交易中进行确认的功能。

我们应该如何定义这种去中心化优势?

在模拟系统中,一个节点代表一个人,一条边代表比特币的一次有效交易。这个场景中比特币的流动是有方向的,每条边都反映了比特币的流向,并且隐含了交易的数量。

如果一个人从没有在交易中接收过比特币,并且也没有确认过交易,那他/她对这套防御机制就没有贡献。如果一个人把他/她的确认功能代理给另一方,那么这个代理就代表一个节点。换句话来说,“支付处理机构”或者“网络钱包服务”仅仅是整个场景中的一个节点,他们被代表的客户都没有显示出来。

当客户决定离开支付处理机构,自己确认交易的时候,在他们确认之前他们还不能作出防御。其中的区别就好像是已经全副武装VS有能力被全副武装。后一种情形在你被打劫的时候根本没有用处,想象一下你对着劫匪大喊:“离开我的房子,不然我就跑到枪支储藏室去!”

无论在什么时候,比特币的防御能力都跟用户的数量和交易的分散化程度有关。最强壮的系统是这样的:在一定时期内全世界所有人都拥有同样数量的比特币。而最脆弱的系统是这样的,一家支付处理机构(或者是网络钱包服务商)在一定时期内受理所有比特币交易。中心化的情形,如图:

更具体来说,最强壮的系统是这样的:它有最大数量的节点,每个节点的入边数量差异最大。或者说:

经济的去中心化 = 入边数量 * 入边数量标准差/入边平均值

关于矿工的去中心化

占据大多数的挖矿哈希算力可以进行“双花”欺诈、可以执行一次软分叉、而且可以通过各种方法拒绝服务。挖矿的去中心化与经济的去中心化水平没有什么关系。

获取经济方面的利益一般要通过51%攻击来实现,但是国家级攻击通常对摧毁整个系统更感兴趣。全网算力就是用来抵御这种攻击的,但是中心化的哈希算力将站在这种防范措施的对面。这是因为人们会更倾向利用这种中心化优势获取利益,而不是作贡献。

挖矿的去中心化可以像经济的去中心化一样进行定义。我们再看看一个社会场景,最理想的状态就是世界上的每个人都有同样的哈希算力,并且一样重要的是,有足够多的全网算力抵御持续的、有明确目标的国家级攻击,虽然这不是挖矿去中心化定义的一方面。

每个矿工在图中都由一个节点表示,如果一个矿工把决策权代理给一个矿池,那仅仅是这个矿池有一个节点表示,推导过程跟经济的去中心化代理一样。每个矿工拥有的哈希算力就是节点的权重值,没有边。

在任意时期内,比特币挖矿的去中心化程度跟矿工数量相关,也跟哈希算力的分散化程度相关。更具体一点,最强大的系统是这样的:拥有最大数量的节点,并且权重方差最大。

挖矿的去中心化 = 矿工数量 * 哈希算力标准差 / 哈希算力平均值

开发人员的去中心化

虽然软件是基础的,而开发人员是最根本的组成部分,实现的分散化可以增强标准规范。但是开发者不可能强迫人们不去挖矿,或者让他们在可以的时候不去确认交易。

我们可以测量去中心化的程度吗?

比特币是一种货币系统,货币最本质的一个方面就是可替代性,且要求匿名。比特币在设计上就是不透明的,并且有强大的底层技术努力来促进这种属性。如果没有明确的定义,我们不可能奢望测试去中心化的程度。

然而,使用矿工提供或者暴露的信息估计一下挖矿的中心化程度还是可能的。同样,使用网络钱包和支付处理机构提供的信息,估计一下经济的中心化程度也是可能的。

假设去中心化是不重要的,或者认为我们不可能决定特定的发展,又或者阻碍这种发展,那将是巨大的错误。

失败的情景会是怎样?

由网络钱包、支付处理机构以及大型矿池支持的有争议的硬分叉,将把人们带到一种无法避免资金损失的山寨币境地。

btcfans公众号

Scan QR code with WeChat

From the Internet
Disclaimer:

Previous: 生存还是发展?这是一个问题! Next: Windows10商店一如既往的接受比特币支付

Related