比特币技术的蓝图(上)
在不断壮大的数字货币领域,Joseph Lubin可谓声名赫赫,在我(原作者)眼里他总能将事情做到极致但却毫不张扬。
2014年的冬天,他邀请我到迈阿密参加一个比特币会议,告诉我他们正在创建一个新的项目,名为Ethereum(以太坊),是他和一群志同道合的加拿朋友刚启动的项目。他雄心勃勃地表示:「我们将会取代保险公司,我们将会取代华尔街!」他们正在试图征服各行各业,比如说在线电影发行平台,像Netflix和Hulu;游戏平台,如Xbox和世嘉;即时通讯应用像Twitter等;亦或涉猎到日常生活相关的退休金计划,货币兑换,选举投票,知识产权管理和信托基金等。在Lubin眼里,这一切的一切,所有根基于互联网或任何数字信号渠道的信息都将因此经历根本性的改变。
他的想法受到了许多数字货币爱好者的追捧。众所周知,比特币交易是完全透明的,几乎没有延时,无需任何第三方审核,也无需授权给任何管理员。所以说,理论上类似的技术应该可以应用在更多复杂的金融服务里,更确切的说,这项技术可能在网络上任何需要储存和处理数字信息的领域得到运用。在过去的一年中,这一理论激发了许多各式各样的项目申请。其中一些创意猜想正在比特币网络上进行实验开发。另有一些项目,如Ethereum,已经开始在一个名叫Altcoins的比特币克隆网络上运作。这些项目吸引了大量的社会投资。像是在今年一月,一个由比特币衍生而来的创业公司Colu就从两家知名的风投Spark Capita和Aleph融到了250万美元。通过参加这些正式或非正式的展会和会议,明显可以感觉到,比特币技术的可能性是无限的,数字货币只是这个技术第一个或许是最无聊的实际应用。
虽然这些项目眼花缭乱,但他们都试图让互联网摆脱未知的拥有最高权限的管理员的束缚。现在我们在网上创建的数据和执行的命令都会存储在中央服务器上,而这些服务器大多被企业或政府机构所掌管。我们已经习惯依赖这些服务器,它们可以储存和收发电子邮件;能帮助网站和智能手机app识别使用者的身份;会保存购物车记录并处理付款程序。名义上这些数据属于我们,但为了访问或使用它们,我们仍需要穿过多重数字信道,由此可见,我们并没有真正拥有这些数据。
Nick Szabo关于数字协议和智能财产的理论赢得了许多数字货币信徒的推崇,他经常被误认为是比特币的创始人,他曾在一篇博文里说过:
实际上,我们所用的系统已被默认由一个或一群人来监管控制,他们可以轻易地在计算机上读取、修改、删除或阻止我们的指令。换句话说,我们在这些人面前是毫无缚鸡之力的,只能选择相信他们会如实地执行我们的订单,确保我们的支付等。如果有人在控制端想要忽视或伪造某条指令,还没有什么安全措施可以约束他们。
长久以来,大多数人认为互联网的运作就只能这样了。假如我们的数字世界可以视作一堆数据,我们要更新这些数据并将其复制到另一个地方,保护好这些数据不被腐蚀、篡改是至关重要的。传统的解决方案,就是在物理或虚拟层面上设置访问权限。我们之所以选择信任现有的互联网服务,因为我们认为这些有权限的企业、机构是我们的利益共同体,我们也有随时检举他们的能力。但现实是残酷的,很多情况下他们不再是单纯地为大众提供服务。就像有报道称Facebook就曾在后台篡改用户页面数据来进行心理学实验。
大多数人遇到棘手的问题的时候,如果想不到完美的解决方案,通常都会选择危害最小的方法,所以我们情愿让尽可能少的人有权限掌控我们那些虚拟数据。至少,相比于其他的陌生人,这些企业、机构还是更可信的。然而,这恰恰是比特币技术所要打破的观念:一个公共数据库,每个人都可以看到,任何人都可以往里添加数据,但没有人能够破坏它。
作为虚拟货币的比特币早已为世人所知,而真正有着深远意义比特币协议是怎样运作的呢?为什么要相信比特币?协议里假定每参与者都有可能是骗子,但它仍能让他们自动遵守规则,这是怎样做到的呢?
当谈论到比特币技术的时候,需要知道两个概念:一个是Blockchain(区块链),比特币交易中被输入的交易记录会被打包成数据块,这些数据块会线性增长从而组成了一条Blockchain。第二个是添加这些数据块的人,他们被称为矿工(Miners)。
当你拥有一笔比特币,这意味着Blockchain上会有一条数值记录,伴随着一条数字签名记录。数字签名是一种加密技术,只有正确对应出另一半签名才能解密,这个签名就是你的「私钥」(Private Key),它会存储在你的比特币钱包里。如果你想使用比特币,首先你需要提出一个交易请求。矿工就会根据此打包一个数据块,这个数据块会记录所需支付的金额并链接到之前赚取这些比特币的那笔交易,同时他们核对签名来证明你确实是所有者,在此之后,则会为交易的新主人生成一个新的数字签名,当新主人想花掉它们的时候,则要重复以上动作。
所以说Blockchain无非是一长串的交易记录,其中每一个都会联系到一条较早的交易记录,用户们不能直接更新Blockchain上的记录。为了将比特币转让给别人,你必须提出请求并将此公布在比特币网站上。然后矿工会根据这个请求,做必要的检查,验证签名,并确保有足够的比特币可以进行交易,然后他们会把这些记录捆绑成数据块添加到Blockchain的末端。所有矿工都有自己版本的Blockchain,并且都是独立工作。当完成一个新的数据块,矿工会将它公布在网络上供其他矿工来检查,要添加新的数据块必须征得其他矿工的同意。但鉴于他们都是陌生人,所以真没什么理由去相信彼此的工作。
那么什么情况下矿工会撤消并停止支付呢?
SatoshiNakamoto (中本聪)是比特币的开发者兼创始者,他的理念被广泛认为是分散式计算的突破。(译者注:分散式计算是一种把需要进行大量计算的工程数据分割成小块,由多台电脑分别计算,在上传运算结果後再统一合并得出数据结论的科学。)「从上世纪八十年代,我们就知道,只要达到一定的共识,就可以让所有连接网络的计算机采用同一个系统日志纪录」Factom的创始人Paul Snow介绍说。不过,他认为这一切的前提是参与人相互间都有同样的信任度,这个系统才会成功运行。
比特币技术将这种信任转换成数字信心。首先数字签名是第一层信任保障。更主要的一点是Blockchain具有不可逆性,所以矿工们不会去轻易地改变它。添加一个新的数据块到Blockchain的过程是非常繁杂的。任何参与者都需要进行大量的哈希运算,甚至更夸张的说,会需要耗费大量的电能,才能做出令其他矿工都满意的数据块并把它添加到Blockchain中。「就好比你正在筑造一面巨大的墙」Factom的总裁Peter Kirby解释说,「每当你想同意一件事,就往墙上垒上几千块砖头,如此往复,想试图改变底部的某一块砖将会是非常困难。」
既然这样,那我们来尝试攻击一下这个系统吧!
比如说我想改变Blockchain上的一个数据,假设这个数据被刻录在第100层数据块里。矿工们已在辛勤地编辑第110层数据块。为了让其他矿工接受我的版本的Blockchain,我需要先恢复100层数据块,然后篡改该层的数据。由于所有后续的哈希值都会基于我改变的数据而发生变化,我需要再进行大量的运算直至添加到110层。更主要是我需要在其他矿工完成110层数据块之前完成这庞大的工作量,因为只有我公布一条更长的Blockchain,矿工们才会接受并继续在此之上工作。但一个具有微薄之力的小小矿工根本无法追上大部队的步伐。更别说,如果真要这么做,还需要去占用比特币网络一大半的计算运力。矿工们一般会配备为执行比特币哈希运算而设计的专业设备。在2014年8月至2015年3月期间比特币网络上的哈希运算率增加了一倍,而且这个数量仍在持续攀升。矿工在工作时给比特币网络带来高达500千瓦的时耗,有时候甚至需要冷却液来进行冷却。事实证明越多人参与进来,比特币网络会变得更加安全。是什么让矿工们愿意投身这项工作呢?当然是因为他们都会有相应的挖矿奖励的。通常将数据块添加到Blockchain上的第一位矿工都能得到一笔比特币作为回报。
旧的模式主要是通过权限封锁来保障网络安全。而比特币的方法却是一种全新的思维,它希望大家都以自我利益为中心,用各自的贪婪牵制对方从而保护网络。「我认为这是一个了不起的想法,」康奈尔大学的研究比特币和分布式网络的专家Ittay Eyal说,「比特币系统可以让攻击者来参与贡献,这种激励机制吸引了很多人前来分享资源。」
回归到比特币,它其实就是Blockchain里面储存的属于你的价值。2009中本聪开发建立了一个开放源代码项目,正式宣告了比特币的诞生,当时Blockchain还只不过是一串简单的交易记录。但没过多久,人们认识到,在交易的时候很多非金融数据也可以被写入到Blockchain里。就在去年,经各界讨论,比特币协议的开发人员为比特币网络设定了一个新规定,限制用户在每一笔交易只能最多添加40字节的元数据。尽管如此,比特币的Blockchain上现已充斥着各种各样的非财务信息。从情人节的问候,祈祷和颂词,到维基解密档案里面的文件摘录,或是一本最近出版的介绍比特币的书,所有这些都被放入了Blockchain中,嵌入到交易里。一旦元数据被并入到Blockchain中,它将接受整个对等网络的监督。任何接入这个网络的人都可以访问这些数据。如果想销毁这些数据,你需要入侵每一台计算机,所以说这些数据是不可能被改变的,也无法被一一核查。
Scan QR code with WeChat