肖恩 范宁(区块链技术的演进)
肖恩·范宁(区块链技术的演变)
很多人谈论区块链,但很少有人真正做好研究它的基础。没有对这项技术的基本了解,就很难在商业上有所成就。
比特币是区块链技术的起源。我们应该回到原点,探寻比特币的深层结构和肌理,梳理其演变过程中的冲突与创新。
探索区块链技术的本质是从业者的必由之路。
1个来源
区块链技术起源于比特币。
比特币是中本聪在2008年设计开发的点对点电子现金系统。这是一个分布式系统,它的价值流通媒介是虚拟的加密数字货币:比特币。
比特币的发行和流通不受任何中央机构控制,只要你有计算能力,能上网,就可以参与其中。它的代码是开源的,由来自世界各地的极客组成的比特币核心的核心开发者在GitHub(源代码托管仓库)上共同维护和更新。GitHub上有超过40000个收藏,代码被分叉超过24000次。
比特币是密码学和经济学的集大成者,让人类第一次掌握了自己的数据主权,将打破现有互联网巨头垄断的数据孤岛状态。所有数据都在区块链上,这将是一个由全人类维护的部分数据库。
比特币采用的关键技术其实可以追溯到上世纪70年代。
1977年,罗纳德·里维斯特、阿迪·阿迪·萨莫尔和伦纳德·阿德曼提出了非对称加密算法RSA。非对称加密的思想第一次在具体的算法中付诸实践。
1980年,Ralph Merkle提出了Merkel数据结构,广泛应用于文件系统和对等网络系统。用比特币Merkle树计算交易根hash。
1982年,Leslie Lamport提出了拜占庭一般问题来描述分布式系统中的一致性问题。leslie lamport提出的Paxos算法只适用于没有拜占庭错误的可信环境。中本聪创造性地将工作证明(POW)引入比特币来解决这个问题。
1983年,David Chaum发表了论文《不可追踪支付的盲签名》。在这篇论文中,他提出了一种盲签名密码算法来实现电子交易中的匿名性,这也是他提出的eCash中的一项重要的密码技术。
1985年,Neal Koblitz和Victor Miller独立提出了椭圆曲线加密算法,这是一种基于椭圆曲线数学的公钥加密算法。比特币ECDSA secp256k1算法用于实现其公钥签名系统。
1997年Adam Back提出了HashCash的方法,这个算法的论文中出现了工作量证明的概念,当时主要用于反垃圾邮件。如果将电子邮件发送到目标邮箱,则必须满足特定的计算结果,目标邮箱系统才能接收到该电子邮件。对于普通的邮件发送者来说,符合要求的数据的计算是在不经意间完成的,但是对于垃圾邮件发送系统来说,每天都要完成大量的邮件发送任务,这些邮件的累计计算时间会大大增加系统的负担,从而增加垃圾邮件的发送成本。
1998年,戴伟提出了B-money(一种匿名分布式电子加密货币系统),占据了比特币白皮书的第一个参考资源。它继承了用工作量来证明造币的思想,将记账分布到一个点对点的网络中。但是,离一个可用的P2P电子支付系统还有很大的差距,因为它缺乏最关键的技术——共识机制,也就是说,它不能解决双花问题,所以交易双方必须信任第三方。
1998年,肖恩·范宁(Shawn Fanning)在美国波士顿东北大学读大一的时候,为他的室友开发了一个音乐收集程序。这个程序可以在网上搜索音乐文件,并对其进行整理和索引,用户可以很容易地找到自己想要的音乐。肖恩·范宁将这个程序命名为Napster。从那以后,越来越多的人开始在互联网上使用P2P技术。
2001年,由美国国家安全局(NSA)开发,美国国家标准与技术研究院(NIST)发布的SHA2(安全哈希算法2)算法诞生了。它是一种密码哈希函数算法标准,属于SHA算法之一,可分为SHA224、SHA256、SHA384、SHA512、SHA512/224、SHA512/256六种不同的算法标准。比特币SHA256算法用于计算块数字摘要,SHA256算法用于两次挖掘。
2发展
2008年11月,中本聪出版了《比特币:一种点对点的电子货币系统》,比特币时代正式开始。
中本聪在他的文章中描述数据结构时使用了诸如块和链这样的词。后来人们在提炼比特币底层实现技术的时候,把抽象的技术体系用块和链来表达,创造了区块链这个词。可以说,比特币的底层设计思想衍生了区块链的概念。
在中本聪的论文中,区块链由一系列通过加密技术生成的块组成。这些块依次连接,新添加的块总是添加在区块链的末尾。
区块链由对等网络节点共同生成。网络中的所有事务由整个网络节点共同维护,并存储在本地。数据与其他节点一致,因此区块链也可以看作是一个去中心化的分布式数据库。
2009年1月5日,主比特币网络上的第一枚比特币诞生了。比特币的网络节点使用工作量证明算法生成块,也就是俗称的“挖矿”。
“挖掘”是指利用计算机解决一个复杂的数学问题。谁的计算能力强,谁就可能先解决问题,然后广播到网络上。这道数学题的验证过程非常简单,其他节点可以快速检查答案的正确性。如果是正确的,那就承认这个谜题的合法性(块数据)。数据块包含交易,网络节点在确认数学问题答案的同时会确认交易的合法性,并记录在本地区块链中。
为了鼓励网络节点主动包出区块,抵消节点计算能力带来的功耗和设备损耗,开发者在比特币系统中设计了一套挖矿激励机制,即区块奖励机制。奖励初始块50比特币,之后每10分钟增加一块奖励50比特币。
比特币总产量2100万,每当挖矿总量达到剩下的一半,区块奖励减半。比如当开采量达到1050万(2100万× 1/2)时,区块奖励25 (50× 1/2),当开采量达到1575万(1050+1050× 1/2)。每次减半周期约为4年,2140年总产量接近2100万件。当用户发起交易时,需要支付额外的交易费用,这笔费用也将随区块奖一起奖励给采包网节点。
在比特币系统中,用户签名发起的交易和实体经济中的交易一样,是指用户在业务行为中发起转账的操作实体,包括发起方、收款方、金额、描述等。在比特币系统中,所有交易都存储在区块链账本中,也称为区块链账本记账。
在中本聪的白皮书《比特币:一个点对点的电子货币系统》中,未使用的交易输出(UTXO)被创新性地用于记录比特币交易。
比特币交易由交易输入和交易输出组成。每一个交易都要耗费一个(或多个)投入,同时产生一个(或多个)产出,它产生的产出就是“未使用的交易产出”。发起者需要用私钥对交易进行签名,以证明资产的所有权和交易的合法性,交易的接收者不需要参与整个过程。
图1
如图11,A,B,C是三个账户,Tx定义为一个交易。每个事务由输入和输出两部分组成,每个事务的输入都指向前面的UTXO。交易完成后,UTXO将成为失效的交易输出,不能再次使用;这个事务生成的输出是新的UTXO,它的所有权属于接收者。如果交易过程中有剩余资产,会生成一个change UTXO,接收方是自己。交易流程如下:
(1) Transaction -1(铸币)表示该交易由矿工开采获得,输入标识由开采获得,输出的所有者为A,表示矿工开采获得的UTXO-A-1属于账户A
(2)transaction -2的输入指向transaction -1的输出,即账户A用自己的UTXO作为transaction-2的输入,输出为B和A,表示账户A向账户B转账,同时有资金剩余,零钱给自己。此时,UTXO-A-1将成为失效的事务输出,不能再次使用,并以灰色标记。
(3)交易-3是从账户B到账户C的转账,交易-4是从账户A到账户C的转账,同时账户C有两个UTXO:UTXO-C-1和UTXO-C-2。
(4)Transaction-5的输入由两个C账户(UTXO-C-1和UTXO-C-2)的UTXO组成,输出是B账户和你自己的C账户,意思是把资产转移到B账户,同时给自己找钱。
由于每个账户的余额都是由最终属于自己的所有UTXO之和组成,经过这五笔交易,账户A的资产是UTXO-A-3,账户B是UTXO-B-2和UTXO-B-3,账户C是UTXO-C-3。每个帐户只能控制自己的UTXO,这是他们的剩余资产。所以,从这个角度来看,在比特币区块链没有平衡的概念,只有UTXO。
比特币的项目地址可以在GitHub网站搜索,搜索比特币后的结果如图2所示。
图2
比特币项目主要包括两个项目:比特币和bips。
比特币是一个比特币客户端源代码项目,用C++语言开发实现。下载编译后,用户可以用来挖矿或者作为全节点钱包。
BiPS(bit coin Improvement Proposals)是一个比特币改进提案项目,用于接收升级和改进比特币的提案列表。任何人都可以来这个项目提出自己的改进想法,使之成为一个新的提案。每个建议都有多种状态,如接受、拒绝、草稿、最终版本等。比特币的升级和维护更多的是取决于这些提议是否最终得到确认,而这些提议是由比特币社区共同维护和确认的。
3技术创新
比特币是首个基于区块链技术的去中心化支付系统。它有很多特色和创新,主要体现在两个方面,一是作为支付体系的创新,二是去中心化的创新。
1.作为支付系统的创新
作为支付系统的创新主要表现在以下四个方面:
(1)比特币可以作为全球资产。无论如何,无论资产有多大,都可以通过区块链网络转移到目标账户。比特币发行时间为10分钟,交易场所不受任何物理限制。只要有网络,用户就可以通过工具发起交易,转移资产,不受国界、地域的限制;
(2)比特币的交易成本极低,常见的跨境支付成本在1%左右,而有些支付方式的成本会高达3%左右。如果使用比特币网络支付,只需要支付小额交易打包费,与金额无关,尤其是在大额支付中,更能体现其手续费低的优势;
(3)比特币是一个去中心化的网络和系统,不属于一个中心化的组织或个人。它的规则不会被轻易修改,它的网络也不会被个别机器控制。比如,自发行以来,网络的稳定运行已经足够证明其安全性,其2100万块的总机制一直由全体矿工维护,没有改变;
(4)交易是公开的、匿名的。任何人都有参与交易的机会,他的账户是匿名的,所以他不需要申请特别许可就可以进入网络。只有通过密码学的手段才能证明自己身份的合法性,与真实身份无关,具有一定的匿名性。
2.分散创新
在去中心化创新方面,比特币带来了制度建设的新思维。核心是去中心化,但还是要正确理解比特币的“去中心化”属性。这里有三个维度:
(1)架构层。在物理世界中,系统由多台计算机组成。在运行过程中,在不影响系统的情况下,可以容忍部分电脑宕机。比特币的网络节点部署在世界各个角落,这些节点还保存着完整的区块链数据。一台或多台电脑的任何宕机都不会影响比特币网络的其他节点,更不会影响整个区块链网络的使用。
(2)治理层。系统的所有权不是由某个中心控制,而是由多个机构或个人共同拥有。比特币网络的治理由所有参与的矿工决定,矿工的计算能力是平均分配的。某个人或组织很难控制大多数(51%)的矿工,这保证了比特币系统在治理上的去中心化特征。
(3)逻辑层。从系统的设计和数据结构来看,它是一个完整的、不可分割的整体,所有参与者维护相同的账簿数据。参与计算的每个网络节点都维护着足额的区块链账簿,节点之间的账簿具有很强的一致性。他们也是基于相同的数据进行验证、封装和增长块,他们的数据层本质上是一个分布式的账本,具有很强的一致性。