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