区块链简介

概况

任何事物的发展,从来不是一蹴而就的。

商贸合作中签订的合同,怎么确保对方能遵守和执行?

餐厅宣称刚从海里打捞上来的三文鱼,怎么证明捕捞时间和运输中的卫生?

数字世界里,怎么证明你对资产的所有?

这些看似很难解决的问题,在区块链的世界里已经有了初步的答案。


从数字货币说起

货币是人类文明发展过程中的一大发明,最重要的职能包括价值尺度、流通手段、贮藏手段。很难想象离开了货币,现代社会庞大而复杂的经济和金融体系还能否持续运转。

历史上,货币的形态经历了多个阶段的演化,包括实物货币、金属货币、代用货币、信用货币、电子货币、数字货币等。货币自身的价值依托也从实物价值、发行方信用价值,到今天出现的对信息系统(包括算法、数学、密码学、软件等)的信任价值。

需求

一般等价物都可以作为货币使用。然而平时最常见的还是纸币本位制,既方便携带、不易仿制、又相对容易辩伪。

注意,严格来讲,货币(money)不等于现金或通货(cash,currency),货币的范围更广。

或许有人认为信用卡相对纸币形式更方便。相对于信用卡这样的集中式支付体系来说,货币提供了更好的匿名性。另外,一旦碰到系统故障、断网、没有刷卡机器等情况,信用卡就不可用了。

无论是货币,还是信用卡模式,都需要额外的系统(例如银行)来完成生产、分发、管理等操作,带来很大的额外成本和使用风险。诸如伪造、信用卡诈骗、盗刷、转账等安全事件屡见不鲜。

很自然的,如果能实现一种数字货币,保持既有货币的这些特性,消除纸质货币的缺陷,无疑将带来巨大的社会变革,极大提高经济活动的运作效率。

数字货币相比于传统货币

让我们来对比现在的数字货币和现实生活中的纸币:

属性 分析 胜出方
便携 这点上应该没有争议,显然数字形式的货币胜出。 数字货币
防伪 这点上应该说两者各有千秋,但数字货币可能略胜一筹。纸币依靠的是各种设计(纸张、油墨、暗纹、夹层等)上的精巧,数字货币依靠的则是密码学上的保障。事实上,纸币的伪造时有发生,但数字货币的伪造明面上还没能实现。 数字货币
辩伪 纸币即使依托验钞机仍会有误判情况,数字货币依靠密码学基本不可能出错。数字货币胜出。 数字货币
匿名 通常情况下,两者都能提供很好的匿名性。但都无法防御有意的追踪。 平局
交易 对纸币来说,谁持有纸币谁就是合法拥有者,交易通过纸币自身的转移即可完成。对数字货币来说则复杂的多,因为任何数字物品都是可以被复制的,因此需要额外的机制。为此,比特币发明了区块链技术来确保可靠不可篡改的交易。 纸币
资源 100 美元钞票的生产成本是 0.1 美元左右。100 面额人民币的生产成本说法众多,但估计应该在几毛到几块范围内。数字货币消耗的资源则复杂的多,以最坏情况估计,算出来多少就要消耗多少电(往往要更多)。 纸币
发行 纸币的发行需要第三方机构的参与,数字货币则通过分布式算法来完成发行。在人类历史上,通胀和通缩往往是不合理地发行货币造成的;数字货币尚无机会被验证,在这方面的表现还有待观察。 平局

可见,数字货币并非在所有领域都优于已有的货币形式。不带前提的在所有领域都鼓吹数字货币并不是一种严谨的态度,应该针对具体情况具体分析。实际上,仔细观察目前支持数字货币的交易机构就会发现端倪,当前还没有一种数字货币能完整起到货币的职能。

最后,虽然当前的数字货币“实验”已经取得了巨大成功,但可见的局限也很明显:其依赖的分布式账本技术还缺乏大规模场景下考验;性能和安全性还有待提升;资源的消耗还过高等等。这些问题还有待于相关技术的进一步发展。


实现挑战

设计和实现一个数字货币并非易事。

在现实生活中,因为纸币具备可转移性,相对容易地完成价值的交割。但是因为电子内容天然具备零复制成本,无法通过发送电子内容来完成价值的转移。持有人可以试图将同一份电子货币发给多个人,这种被称为“双重支付攻击(Double-Spent)”。

也许有人会讲,当前银行中的货币都是电子化的,因为通过账号里面的数字记录了资产。说的没错,这种电子货币模式有人称为“数字货币 1.0”,它实际上是假定存在一个安全可靠的第三方记账机构来实现,这个机构利用信用作为抵押,来完成交易。

这种中心化控制下的数字货币实现相对简单,但需要一个中心管控系统。但是,很多时候并不存在一个安全可靠的第三方记账机构来充当这个中心管控的角色。

例如,贸易两国可能缺乏足够的外汇储备;网络上的匿名双方进行直接买卖;交易的两个机构彼此互不信任,找不到双方都认可的第三方担保;汇率的变化;可能无法连接到第三方的系统;第三方的系统可能会出现故障……

总结一下,在去中心化的场景下,存在几个难题:

  • 货币的防伪:谁来负责验证货币;

  • 货币交易:如何确定货币从一方转移到另外一方;

  • 避免双重支付:如何避免出现双重支付。

好吧,这事其实不太容易。


比特币出现

在不存在一个第三方记账机构的情况下,如何实现一个数字货币系统呢?

近三十年来,数字货币技术朝着这个方向努力,经历了几代演进,包括 e-CashHashCashB-money等。

1983 年,David Chaum 最早提出ecash,并于 1989 年创建了 Digicash 公司。ecash 系统是首个匿名化的数字加密货币(anonymous cryptographic electronic money, or electronic cash system),基于 David Chaum 发明的盲签名技术,曾被应用于银行小额支付中。ecash 依赖于一个中心化的中介机构,导致它最终失败。

1997 年,Adam Back 发明了 Hashcash,来解决邮件系统中 DoS 攻击问题。Hashcash 首次提出用工作量证明(Proof of Work,PoW)机制来获取额度,该机制后来被后续数字货币技术所采用。

1998 年,Wei Dai 提出了 B-money,将 PoW 引入数字货币生成过程中。B-money 同时是首个面向去中心化设计的数字货币。从概念上看已经比较完善,但是很遗憾的是,其未能提出具体的设计实现。

上面这些数字货币都或多或少的依赖于一个第三方系统的信用担保。直到比特币的出现,将 PoW 与共识机制结合在一起,首次从实践意义上实现了一套去中心化的数字货币系统

比特币网络无需任何管理机构,自身通过数学和密码学原理来确保了所有交易的成功进行,比特币自身的价值是通过背后的计算力为背书。这也促使人们开始思考在未来的数字世界中,该如何衡量价值,如何发行货币。

目前看来,数字货币比较有影响力的模式有两种,一种是类似 paypal 这样的选择跟已有的系统合作,成为代理;一种是以比特币这样的完全丢弃已有体系的分布式技术。

现在还很难讲哪种模式将成为未来的主流,甚至未来还可能出现更先进的技术。但对比特币这一类数字货币的设计进行探索,将是一件十分有趣的事情。


什么是区块链

定义

区块链(Blockchain)技术自身仍然在飞速发展中,目前还缺乏统一的规范和标准。

wikipedia 给出的定义为:

A blockchain —originally, block chain —is a distributed database that maintains a continuously-growing list of data records hardened against tampering and revision. It consists of data structure blocks—which hold exclusively data in initial blockchain implementations, and both data and programs in some of the more recent implementations—with each block holding batches of individual transactions and the results of any blockchain executables. Each block contains a timestamp and information linking it to a previous block.

最早区块链技术雏形出现在比特币项目中。作为比特币背后的分布式记账平台,在无集中式管理的情况下,比特币网络稳定运行了近八年时间,支持了海量的交易记录,并未出现严重的漏洞。

注:比特币历史上唯一已知的漏洞事件曾导致比特币的恶意增发,但问题很快被发现并修正,相关非法交易被撤销。

公认的最早关于区块链的描述性文献是中本聪所撰写的 比特币:一种点对点的电子现金系统,但该文献重点在于讨论比特币系统,实际上并没有明确提出区块链的定义和概念。在其中,区块链被描述为用于记录比特币交易的账目历史。

古老的账本

图 1.4.3.1 - 古老的账本

记账技术历史悠久,现代复式记账系统(Double Entry Bookkeeping)是由意大利数学家卢卡·帕西奥利,1494 年在《Summa de arithmetica, geometrica, proportioni et proportionalità》一书中最早制定。复式记账法对每一笔账目同时记录来源和去向,首次将对账验证功能引入记账过程,提升了记账的可靠性。从这个角度来看,区块链是首个自带对账功能的数字记账技术实现

更广泛意义地看,区块链属于一种去中心化的记录技术。参与到系统上的节点,可能不属于同一组织、彼此无需信任;区块链数据由所有节点共同维护,每个参与维护节点都能复制获得一份完整记录的拷贝。

跟传统的记账技术相比,其特点应该包括:

  • 维护一条不断增长的链,只可能添加记录,而发生过的记录都不可篡改;

  • 去中心化,或者说多中心化,无需集中的控制而能达成共识,实现上尽量分布式;

  • 通过密码学的机制来确保交易无法抵赖和破坏,并尽量保护用户信息和记录的隐私性。

更进一步的,还可以将智能合约跟区块链结合到一起,让其提供除了交易(比特币区块链已经支持简单的脚本计算)功能外更灵活的合约功能,执行更为复杂的操作。这样扩展之后的区块链,已经超越了单纯数据记录的功能了,实际上带有点“普适计算”的意味了。


基本原理

区块链的基本原理理解起来并不难。基本概念包括:

  • 交易(Transaction):一次操作,导致账本状态的一次改变,如添加一条记录;

  • 区块(Block):记录一段时间内发生的交易和状态结果,是对当前账本状态的一次共识;

  • 链(Chain):由一个个区块按照发生顺序串联而成,是整个状态变化的日志记录。

如果把区块链作为一个状态机,则每次交易就是试图改变一次状态,而每次共识生成的区块,就是参与者对于区块中所有交易内容导致状态改变的结果进行确认。

图 1.4.3.2 - 区块链示例

分类

根据参与者的不同,可以分为公开(Public)链、联盟(Consortium)链和私有(Private)链。

公开链,顾名思义,任何人都可以参与使用和维护,典型的如比特币区块链,信息是完全公开的。

如果引入许可机制,包括私有链和联盟链两种。

私有链,则是集中管理者进行限制,只能得到内部少数人可以使用,信息不公开。

联盟链则介于两者之间,由若干组织一起合作维护一条区块链,该区块链的使用必须是有权限的管理,相关信息会得到保护,典型如银联组织。

目前来看,公开链将会更多的吸引社区和媒体的眼球,但更多的商业价值应该在联盟链和私有链上。

根据使用目的和场景的不同,又可以分为以数字货币为目的的货币链,以记录产权为目的的产权链,以众筹为目的的众筹链等。


小结

区块链是第一个试图自带信任化和防止篡改的分布式记录系统。它的出现,让大家意识到,除了互联网这样的尽力而为的基础设施外,我们还能打造一个彼此信任的基础设施。

类似比特币这样的大规模长时间自治运行的系统,也为区块链技术的应用开启了更多遐想的空间。如果人与人之间的交易无法伪造,合同都能确保可靠执行,世界是不是更美好一些了呢?这是技术进步再次给人类发展带来福利。

不提这种去中心化的金融系统是否能在现实中普及,在跨国交易、跨组织合作日益频繁的今天,已经有了不少有意义的尝试和参考。

更进一步,比特币只是基于区块链技术的一种金融应用(而且是直接嵌入区块链中),区块链技术还能带来更通用的计算能力。HyperledgerEthereum 就试图做类似的事情,基于区块链再做一层平台层,让别人基于平台开发应用变得更简单。

另外,区块链本身可以作为分布式存储,也自然可以作为分布式计算引擎。可以想象,整个加入集群的设备都是计算引擎,大家通过付费来使用计算力,是不是就有点普适计算的意味了?

有理由相信,随着更多商业应用场景的出现,区块链技术将在未来金融和信息技术领域占据一席之地。