区块链的诞生
公认的最早关于区块链的描述见于中本聪所撰写的比特币白皮书,但在白皮书中并没有明确提出区块链的定义和概念(主要是在讨论比特币系统),“区块链”这个名词实际上是后来人们总结归纳后提出的。中本聪虽然没有直接提出区块链的概念,但比特币确实是第一个应用区块链技术的项目,可以说区块链是随着比特币的出现而诞生的。因此要讲区块链的诞生,就不得不从比特币的历史说起。
大家都知道比特币是中本聪在2008年提出的,但对其更早期的历史可能就不太清楚了。实际上比特币的诞生过程中,一个神秘团体起到了很大的作用,中本聪在设计比特币时大量借鉴了该社区的研究成果。这就是“密码朋克”(Cypherpunk),一个由密码学和计算机天才组成的交流小组。“密码朋克”的成员里可谓大咖云集,囊括了阿桑奇(维基解密创始人)、科恩(BT下载发明者)、伯纳斯·李(万维网发明者)等一众牛人,当然还有比特币发明者中本聪。
“密码朋克”提倡使用加密算法来保护个人隐私,反对政府和公司滥用个人数据,信仰自由主义。同时也是数字货币最早的传播者,在其电子邮件组中,常见关于数字货币的讨论,并有一些想法付诸实践。比如大卫·乔姆、亚当·贝克、戴伟、哈尔·芬尼等人在早期数字货币领域做出了大量的探索。比特币并不是数字货币的首次尝试。据统计,比特币诞生之前,失败的数字货币或支付系统多达数十个。正是这些探索为比特币的诞生提供了大量可借鉴的经验。
近三十年来,加密数字货币发展迅速,经历了多次演进,包括 e-Cash、HashCash、B-money 等。1983年,David Chaum最早提出e-Cash,并于1989年创建了Digicash公司。e-Cash是首个匿名化的数字加密货币。1997年,Adam Back发明了HashCash,以解决邮件系统中DoS 攻击问题。HashCash首次提出工作量证明机制(Proof of Work,PoW),该机制在日后的区块链项目中被广泛采用。1998年,Wei Dai提出了B-money,将PoW引入数字货币生成过程中。B-money可以算作去中心化数字货币的先驱,但是很遗憾的是,其最终未能设计落地。上面这些数字货币都或多或少的依赖于一个第三方系统的信用担保,很大程度上影响到了项目的成败。直到2008年比特币横空出世,将PoW与分布式存储、密码学、博弈论等结合在一起,首次从实践意义上实现了一套去中心化的数字货币系统。
比特币项目落地之后,吸引来了大量的挑战者和改进者。包括大量的竞争货币(山寨币)和底层技术平台(公链),这些在后面的文章会讲到。随着采用比特币底层技术的项目越来越多,慢慢就把“区块”和“链”这两个词合并起来变成一个词:“区块链”(BlockChain)。所以现在大家都用区块链来指代分布式存储、链式数据结构、非对称加密、共识算法、P2P网络等一系列技术的组合。
区块链的定义
那么区块链的准确定义是什么呢,Wikipedia上给出的说明比较冗长,简单归纳下:区块链是一种分布式数据库技术,通过维护数据块的链式结构,可以维持持续增长的,不可篡改的数据记录。当然笔者觉得维基百科这个释义是有些问题的,因为它更多的是强调区块链作为数据库的属性,而没有点明其核心价值,即以去中心化的方式解决多方互信和价值转移的问题。个人认为更好的定义应该是这样:区块链是一种去中心化的价值传输协议,通过共识来验证并记录数据,具有信息透明、可溯源和不可修改的特点。它由一系列技术组合而来,是制造信任、转移价值的底层基础设施。
区块链的核心技术
区块链的核心技术包括:块链数据结构、分布式存储、非对称加密、共识算法、P2P网络、智能合约等。可以简化并抽象成五层技术架构。今天先简单解释下这些核心技术,后面的文章会深入挖掘技术背后的缘由和价值。
块链数据结构:将数据存储在一定容量的区块中,每个区块分为区块头和区块体(含交易数据)两个部分。区块头中包括前一区块的哈希值(PrevHash)和用于计算挖矿难度的随机数(Nonce);区块体则包含经过加密的具体交易信息。通过头哈希和时间戳将区块首尾连接起来,形成链条式的结构。分布式存储:网络中的每个节点都可以(不是一定)选择存储完整的数据,并依据出块情况对节点本地数据进行实时更新。
避免了中心化存储带来的安全和单点崩溃问题,同时结合共识机制来保证数据的一致性。非对称加密:包含两个密钥:公钥(publickey)和私钥(privatekey)。它们是成对存在的。公钥用来对数据进行加密和验签,私钥用来对数据进行解密和签名;一般公钥是公开的,私钥是自己保存,相对了传统的对称加密而言更具有安全性,是一种高级加密方式,常见的有RSA、ECDSA等。P2P网络:负责交易数据的网络传输和广播、节点发现和维护。网络中没有客户端或服务端的概念,只有平等的同级节点,每个节点既是客户端也是服务端。
信息会由发起节点开始向临近节点进行广播,收到信息的节点又会进行转发,从而实现指数级传播到全部网络节点。共识算法:也叫共识机制,主要用来解决各节点数据一致性和有效性问题。通过一套大家认可的验证方式对网络中的交易进行验证,验证通过后交易方可生效。同时也普遍作为发行Token的一种机制,常见的有POW、POS、DPOS、PBFT等算法。 智能合约:指的是一段写在区块链上的代码,一旦某个事件触发合约中的条款,代码即自动执行。其保证在没有第三方的情况下让参与方履行承诺(交易),履约过程是完全自动且不可逆转的。
区块链的分类
目前区块链主要可以分为三类,即公有链、联盟链和私有链。这是根据其开放(去中心化)程度来进行划分的,也是被大多数人认可的。
公有链:对所有人开放,任何人都可以参与的区块链,完全去中心化不受任何机构控制。其应用场景十分广泛,目前比较成熟的落地项目就是数字货币。 联盟链:被多个组织或个人构成的联盟控制,由指定节点进行共识验证的区块链,属于多中心化模式。主要应用于行业内多个机构之间的业务流转,例如供应链金融、商品溯源等。私有链:完全被单独的个人或某个组织控制记账权限的区块链,属于完全中心化模式。主要应用于企业内部的审计和数据管理等场景。
为什么会演变出上述的三种链,这里就不得不提到区块链领域的三元悖论(类似于蒙代尔三角),即区块链不可能同时满足去中心化、安全、高效这三个特性。必须弱化一者才能满足其它两点特性,而安全又是必须得到满足,于是人们只能在去中心化和高效当中进行取舍,逐步分化出了这三种类型的区块链。公有链实现了完全的去中心化和安全,所以性能上就比较差;联盟链为了商业应用,在安全的前提下要大幅提高性能,就不得不通过一个多中心授权的方式来管理节点,以提高共识效率,实现了多中心化;私有链考虑到内部使用的特点,把安全和效率做到了极致,所以必然依赖单个中心进行处理,实现了完全中心化。当然随着区块链技术的不断发展,三元悖论或许有被打破的可能,值得期待。
区块链的应用场景
现在区块链技术还处于早期阶段,大量项目并未真正落地,但这波浪潮似乎已经不可阻挡。那么我们就来看看当前和未来可能落地区块链技术的应用场景吧。下面为大家总结了包括金融、物流、征信确权、物联网、资源共享、公益慈善、投票竞猜这七大典型应用领域。
金融领域:除了目前火热的数字货币之外,区块链在金融行业还有很多应用场景。比如证券交易结算、资产数字化、跨境支付、众筹投资和互助保险等,这些场景大多都是通过采用区块链技术来取缔中介方,以达到降低费用成本和提高处理效率的核心目的。物流领域:主要应用于供应链方面,基于区块链数据在交易各方之间的公开透明,供应链条可形成一个完整且流畅的信息流,帮助参与各方及时发现流程中存在的问题,进而提升供应链运转的整体效率。同时,利用区块链可追溯的特点,可以进行商品防伪和质量溯源,打击商品流通过程中假冒伪劣的问题。
征信确权:在征信领域采用区块链技术,既能提高征信的公信力(征信信息无法被篡改),还能显著降低征信成本,提供多维度的精准大数据。另外区块链技术还可以用于产权、版权等所有权的管理和追踪。利用数据不可篡改和不可伪造的特性, 可以在区块链网络上自由进行所有权的转移和交易。
物联网:当前的物联网环境中,所有的设备都需要通过云服务器连接,对中心化的网络管理架构依赖性较强,维护成本也随着物联网网络规模的扩大而显著增加。 采用区块链技术的话,可以使物联网体系中每个设备都作为一个独立节点运行,将计算和存储需求分散到全网各个节点中,有效防止网络中的任何单一节点故障或被攻击,所带来的整个网络崩溃和信息泄露的风险。 另外在工业物联网种,还可以动态掌握网络中各种生产制造设备的状态,提高设备的利用率和维护效率。
资源共享:相比于依然中间方的资源共享模式(Airbnb、Uber等),基于区块链的模式可以更直接地连接资源的供给方和需求方,其安全、透明、不可篡改的特性有助于减小摩擦。当然其效率在某些高频共享场景下会降低用户体验,但是对低频的场景确实非常适用,比如互助社区这种模式。