现在我们迫切的需要在集中式的管理手段下,寻求一种技术上的解决方案。这种解决方案在技术上是分布式和去中心化的;可以对数据资产的所有权进行安全可靠的界定,做到充分明确数据归属;可以保证数据不会在失控的情况下被篡改,同时数据资产的修改记录可以被完整的跟踪;可以让参与者有充分发挥的空间,甚至直接参与规则的制定;可以充分的在基础设施层面保证系统服务整体的可用性和连续性...幸运的是,区块链技术应时而来了。
值得说明的是,区块链技术进入人们的视野更多的是从它的应用-比特币开始的。2008年中本聪发表了一篇著名的论文《比特币:点对点的电子现金系统》,比特币开始登上历史舞台。虽然从电子货币本身的角度,比特币的出现可能仅仅是一种案例和典型,而且事实也确是这样的,比特币出现初期并没有引起普遍重视,但却悄悄开启了电子货币的潘多拉魔盒。2010年弗罗里达州的一位程序员用1万枚比特币购买了25美元的披萨券,比特币开始拥有公允汇率,并逐步参与经济活动。此后,比特币开始迅速普及和发展,虽然期间也经历了涨跌,但到2021年的时候,比特币的总市值仍然超过了1万亿美元的大关。比特币带来的微通胀紧缩的货币发行和交易模型,以及通过区块链分布式和去中心化的特点建立的通用信用体系,使得资产可以在互联网上安全可靠传输,也一度让作者中本聪成为诺贝尔经济学奖的提名候选人。这一过程我们称为区块链的1.0时期。
1994年计算机科学家、加密大师尼克·萨博,写成了《Smart contracts》一文,成为智能合约的开山之作。他认为将合约条款通过遵循一定规则的计算化协议进行呈现,同时通过加密技术保证隐私和资产安全,可以最大限度的减少合约执行中遇到的各种异常状况,也有利于降低合约成本。在我们日常生活中经常遇到的商品自动售货机、ATM、POS机都可以看作是简单的智能合约的模型,它们可以根据一定的规则,安全可靠的完成交易约定。随着区块链技术的出现,智能合约的发展开启了新的空间。天然的信用底座以及在此基础上构建的加密数字价值平台,智能合约的实现已仅仅是应用逻辑和时间的问题。以太坊的出现是这一时期的重要标志,智能合约、轻量化的权益证明、去中心化应用日新月异,将区块链时代推向了2.0。
当前,价值互联的时代已经来临,从互联网到能源、医疗、版权、政府...虽然我们也感觉到了区块链的发展存在不少炒作的成分,还需要不断的夯实社会和技术基础。但我们也几乎可以预见,区块链技术在未来将会渗透到人类生活的各方各面。就像前文提到的元宇宙,人们在虚拟的世界打造属于自己的资产空间已不再是梦。
一、区块链数据的不可篡改性
区块链本身使用的是一种由区块构成的链式数据结构。区块包含区块头和数据两个主要的组成部分,其中区块头里面包含一个hash指针,这个指针包含上一个区块的地址和上一个区块的区块hash值(当然区块头还包含版本、默克尔树或者状态树根hash、工作量证明相关的难度值、随机数等信息)。在区块链数据结构中,每个区块分为块头与块体两个部分,区块头存放上一区块头的Hash值、区块版本、区块数据树形结构的根Hash值等,块体部分存放具体数据内容。 首先,数据存放在块体当中,并以默克尔树的结构形式进行组织,默克尔树的根Hash值存放于区块头。当对数据区域中的一部分进行修改时,修改动作会直接反应到区块头部的Merkle根Hash值当中,这是区块链对篡改动作发现的第一层。同时在这样的结构下,对于一条已经形成的链条,修改其中一个区块的数据,块体Merkle根Hash值的变化会直接导致区块头数据的Hash值发生变化。所以接下来还需要同时修改后一个区块的区块头,同样修改之后也会影响到再下一个区块的头部信息。因此如果想对某一个区块进行篡改,就需要修改整个区块链后面的所有区块。在这种情况下,配合区块链共识机制,如果篡改者无法超过全网50%的算力,那么其所篡改的区块将无法得到大多数节点的认可,从而成为无效区块。这是区块链信息无法被篡改的技术特性。
二、分布式、去中心化和共识机制
分布式未必是去中心化的。在我们接触的很多分布式体系中,都存在master、slave的角色设置,例如典型的选举过程,属于分布式中心化或者多中心化的体系。去中心化属于分布式的范畴,是实现区域自治的前提,两者并不严格等同,两者也没有绝对的优劣。
在区块链技术的应用中,采用不同的共识算法,可以实现对去中心化、弱中心化等不同场景的应用。从数据存储的角度,区块链可以看作是一种分布式数据存储方案或者更直白一点认为区块链是一种分布式数据库。
在分布式环境下,各节点如何达成共识是一项经典的论题。数学家为此也提出了很多经典的理论。著名的FLP不可能原理认为:“在网络可靠,但允许节点失效(即便只有一个)的最小化异步模型系统中,不存在一个可以解决一致性问题的确定性算法”;CAP理论认为:在分布式环境下,数据的一致性、可用性和分区容错性只能三选其二,无法同时满足。
严密的数学推理证明了在拥有n个节点的分布式环境下,如果仅考虑失败节点的话,可以在容忍(1/2)n-1节点失败的情况下,设计算法达成在一段时间内的最终共识,比如典型的paxos、raft算法。如果考虑拜占庭节点的情况下,容忍失败的节点数将减少到(1/3)n-1的数量,这种情况下算法将依赖更多阶段的消息确认机制,同时需要考虑如何通过技术手段保证消息在传递过程中不被篡改和破坏(例如PBFT算法)。比特币、以太坊等代币应用提出了概率性的最终一致性以及PoW工作量证明的算法(通过在提案过程中增加提案成本)的策略实现共识机制。节点通过复杂的数学计算,进行工作量证明(俗称挖矿)从而争夺区块的创建权力,一旦区块成功创建,节点则会获取一定的代币奖励,而区块创建成功的关键在于谁能更有效地延长区块主链的长度。这样一来,基于算力的竞争体系被建立,在这个体系下,算力是关键的决定因素,任何依赖制度、权力的垄断形式都不再起作用。从CAP理论的角度,PoW实际是通过弱化一致性能力来保证可用性和分区容错性。
三、确权机制
区块链系统可以实现在点对点的网络环境中进行可靠的价值交换。在这样的网络环境中,节点的身份往往是不被信任的,在这种情况下,参与价值交换的所有交易流程,都运行在严格的验证体系之下。最典型的是非对称密码技术的使用。在非对称密码技术中,公钥、私钥成对存在,并且是不相同的,使用公钥加密的内容可以通过私钥解密,同样使用私钥加密的内容也可以通过公钥解密。在加密场景中,我们可以将数据通过公钥加密,这样只有拥有对应私钥的接收方才可以解密看到明文信息;在认证的场景中,可以将信息通过私钥签名,这样只要通过拥有者的公钥进行解密,就可以证明信息是拥有者发出的。在区块链应用中,首先交易的双方都会使用公钥或者具有同等效果的地址作为交易地址,交易的进行需要交易发起人进行签名,以证明其合法性,并且可以支持对交易资产合法性的验证和确认;另一方面,利用区块链不可篡改的技术特点,对数据资产的归属性进行了标识,任何时候,资产所有者都可以通过链上交易的验证来证明自己对资产的所有权。
四、智能合约
智能合约的出现可以追溯到1994年,尼克•萨博当时提出了对智能合约的定义:“一个智能合约是一套以数字形式定义的承诺(promises),包括合约参与方可以在上面执行这些承诺的协议”。合约是我们生活中不可缺少的元素,是我们为某些达成一致的事情采取的具有一定法律意义的行为。尼克•萨博在当时提出智能合约的概念,其实是具有一定的合约数字化成分。首先将合约内容进行数字化表述,之后对合约执行的条件进行编程实现,最重要的一点,是实现合约合法正确的按照约定的执行条件执行。显然,数字化的理念让合约可以做到自动化、智能化,极大的提升了合约的执行效率。抛开合约的执行环境,单从数字化实现来讲,合约的实现也许并不是一件困难的事情,但困难的是数字化给合约带来了诸如篡改、黑客攻击等新的风险,因此合约的执行需要在信任的环境中进行,这也是智能合约的理念一直到区块链技术的出现才得以快速发展的原因。
区块链技术的不可篡改和确权能力正是解决了在缺乏信任的环境中如何建立安全可靠的价值传输机制的问题。在区块链环境下建立数字化合约,人们不必再担心合约被非法篡改和攻击,也不需要担心合约方不按照规定的条件执行,同时合约创建之后的任何操作都可以被追溯。这一机制的出现,使得几乎所有类型的金融交易都可以数字化并在区块链环境中得以实现,也为社会其他领域智能化发展开辟了新的空间。