区块链概述
比特币诞生后不久,人们开始意识到区块链技术本身具有巨大的潜力,并逐渐发展出独立的应用领域。区块链通常被定义为一种去中心化的分布式账本技术,最初用于记录信息,以确保这些记录不可篡改,从而不需要依赖第三方机构来验证其真实性。
随着以太坊的出现,区块链技术进一步扩展,能够以去中心化的方式运行程序(智能合约),确保程序的执行过程不受干预或篡改。这使得区块链不仅是一个安全的记录工具,还成为了一个公开的计算平台,能够承载各种去中心化应用。
什么是区块链?
区块链作为一种共享且不可篡改的账本技术,能够记录和跟踪各种有价值的资产,如货币、股票、土地和知识产权等。这些资产可以在区块链网络上公开透明地流转和交易,所有交易记录都可以被验证,减少了欺诈的可能性。由于区块链的信息是同步共享且无法篡改的,各方都可以信任这些数据的真实性,这不仅降低了信任风险,还消除了对第三方中介的需求,从而显著减少了交易成本和时间。
在经济活动中,决策通常依赖于信息的真实性和传递速度。区块链能够提供即时、共享、完全透明的信息,确保这些信息在多业务场景中被可靠地传递和使用。由于信息是实时更新的且不可篡改,所有参与者可以随时了解当前状态,这提高了决策的效率和准确性,使得区块链成为一种理想的工具,用于确保信息的可靠性和提高协作效率。
区块链包含 3 个关键元素:
-
分布式账本技术:所有网络参与者都有权访问分布式账本及其不可篡改的交易记录。
- 不可篡改的记录:在交易被记录到共享账本之后,任何参与者都不可以更改或篡改交易。
- 智能合约
智能合约
智能合约是一种自动执行的程序,运行在区块链上,用于自动化和执行合约条款。它们由计算机代码编写,当满足特定条件时,智能合约会自动执行预先设定的操作,而无需人为干预。
智能合约的特点:
- 自动化执行:智能合约根据代码中的逻辑自动执行,确保合约条款在满足条件时自动履行。
- 去中心化:智能合约运行在区块链上,没有中央服务器或管理者,这意味着它们不受单一实体的控制。
- 透明和可信:智能合约的代码和执行过程对所有网络参与者公开透明,因此各方都可以信任合约的执行结果。
- 不可篡改性:一旦智能合约被部署到区块链上,其代码和执行记录是不可更改的,确保了合约的安全性和可靠性。
智能合约广泛应用于各种领域,如金融服务、供应链管理、数字身份认证等,自动化和简化了许多流程,减少了人为错误和成本。
区块链共识机制
区块链共识机制是一种协议,确保分布式网络中的所有节点对账本的状态达成一致。由于区块链是去中心化的,没有单一的控制者,共识机制的作用在于协调不同节点之间的意见分歧,确保数据的准确性和一致性。共识机制通过预定的规则来验证交易并决定哪些区块可以被添加到区块链中。
常见的共识机制有:
工作量证明(POW)、权益证明(POS)、权威证明(POA)
工作量证明(POW)
工作量证明(Proof of Work, PoW)是一种用于区块链网络的共识机制,通过解决复杂的数学难题来决定哪个节点有权将新的区块添加到区块链中。在PoW系统中,网络中的每个节点(称为矿工)竞争性地进行计算工作,试图找到一个符合特定条件的哈希值。
主要特点:
- 计算密集:矿工必须使用大量计算资源来解决难题,这个过程被称为“挖矿”。
- 难题的设计:这个数学难题通常是找到一个符合特定条件的区块哈希值,只有通过不断尝试和错误才能找到符合条件的解。
- 奖励机制:第一个成功解决难题的矿工获得记账权,并且通常会获得一定数量的加密货币奖励(如比特币)以及区块中的交易手续费。
- 安全性:PoW机制的安全性基于工作量的难度,如果有人想要篡改区块链的历史数据,必须重新计算大量的区块,这是计算上非常困难的,因此PoW提供了高度的安全性。
优点:
- 安全可靠:工作量证明是被认为是最安全可靠的共识机制,在确保网络的安全性和可持续性得到了比特币网络长期的实践考验。
- 无需信任:POW机制也不需要参与节点对其它参与者的信任,而是依赖于节点本身的计算能力,参与网络的无需许可性,从而可以更好地确保网络安全和可靠性。
缺点:
- 能源消耗:PoW的主要缺点是需要消耗大量的能源和计算资源,这对环境和成本来说都是不利的。
- 中心化倾向:由于需要高性能的硬件设备进行挖矿,PoW网络可能会导致少数拥有大量计算资源的矿工或矿池掌握更大的权力,影响网络的去中心化。
工作量证明最初由比特币引入,现在也被其他加密货币采用,尽管它因能源消耗高而受到一定的批评,但其安全性和去中心化特性使其在区块链领域中仍然具有重要地位。
权益证明(POS)
权益证明(Proof of Stake, PoS)是一种区块链共识机制,通过节点持有的加密货币数量来决定谁有权生成新区块并验证交易。与工作量证明(PoW)不同,PoS不依赖于计算能力和耗费大量能源,而是根据参与者持有的“权益”来分配记账权。
主要特点:
- 权益决定权重:在PoS系统中,持有更多加密货币的节点(称为验证者)有更高的几率被选中来验证新区块并将其添加到区块链中。
- 能效更高:PoS不需要进行大量计算,因此能源消耗较低,被认为是一种更环保的共识机制。
- 抵押机制:验证者通常需要将一定数量的加密货币作为“抵押”锁定在网络中,如果验证者作恶(如试图篡改交易),他们的抵押资产可能会被没收,从而保障网络的安全性。
- 经济激励:成功验证区块的验证者会获得区块奖励和交易手续费作为激励,类似于PoW中的“挖矿”奖励。
优点:
- 环保节能:与PoW相比,PoS消耗更少的电力和计算资源。
- 去中心化:理论上,PoS可以促进更广泛的参与,因为不需要昂贵的硬件设备。
- 安全性:通过抵押机制,PoS可以有效防止恶意行为,保证网络的稳定性。
缺点:
- 不够成熟,仍旧在不断的发展之中, 例如,POS 共识出现过公地悲剧、长距离攻击(Long range attack)和无利益攻击(Nothing-at-stake attack)等问题,这些问题的解决仍不够简洁,也没有得到足够长时间的检验。
- 另外,参与POS共识需要质押货币,这笔交易需要当前的验证者确认,这相当于是需要获得网络认可,当网络被恶意大的验证者控制时(其拥有超51% 的权益), 它可以对某些交易进行审查,阻碍新参与者进入,从而对网络产生永久性的损害。
权威证明(POA)
POA: Proof-of-authority,是基于声誉(reputation)的共识算法,思路是选出中央权威来统一状态。 所有的交易,节点间不用相互同步,而是统一发送到权威节点(可能多个),由它来验证交易。在验证并签署交易之后,普通节点都从权威节点同步数据。主要用于联盟内共识。
POA 优缺点非常明显,POA 性能非常好,缺点是过于中心化,对权威节点的攻击,将造成网络瘫痪。
权益证明的设计目标是提高区块链网络的可扩展性和能源效率,同时保持安全性和去中心化。
区块链不可能三角
不可能三角是去中心化(Decentralization)、可扩展性(Scalability)、安全性(Security),三者不可兼得,三者只能得其二。
去中心化:指的是节点的去中心化程度,节点越多越分散越去中心化
可扩展性:指的是区块链的处理交易性能,每秒可处理交易越多越具备可扩展性
安全性:指的是整个区块链网络的安全,攻击成本越高越安全
区块链分叉
区块链系统和传统系统一样,也需要随着时间的推移进行升级,以添加新功能或修复漏洞。然而,由于区块链是一个分布式系统,升级过程可能会导致链的分叉。
当区块链进行升级时,所有节点都需要同步更新客户端软件。然而,由于利益或理念上的分歧,一些节点可能会拒绝升级。这时,网络中就会出现两个版本的客户端,使用新软件的节点会按照新的协议构建区块,而旧版本的节点则继续使用旧协议。这导致两个版本的区块互不认可,形成两条完全不同的链,这种情况被称为“硬分叉”。
硬分叉通常反映了社区共识的分裂或改变。比特币历史上发生过一次著名的硬分叉事件,比特大陆为首的矿工集团和BTC Core为首的开发者团队在比特币扩容问题上出现了分歧。最终,比特币在区块高度478559时分叉为比特币(BTC)和比特币现金(BCH),而BCH之后又进一步分叉出BSV等多个链。以太坊也因2016年的THE DAO黑客事件发生过一次硬分叉,导致以太坊分裂为以太坊(ETH)和以太经典(ETC)。
硬分叉往往伴随着安全风险,比如可能出现“重放攻击”,即一个链上的交易在另一个链上被重复执行。此外,分裂的共识也会引发币价的剧烈波动,链上运行的应用程序可能在分叉后同时运行在两个链上,导致不一致性或失效。然而,从长远来看,硬分叉是区块链进化的一部分,随着时间的推移,新的共识通常会重新凝聚,并且变得更加强大。
还有一种被称为“软分叉”的情况,这种分叉是向后兼容的,即使节点没有更新到新版本,仍然可以接受新版本生成的区块。而当区块链没有升级时,有时也会出现瞬时的短距离分叉,通常发生在PoW链中,两个节点同时争夺出块权,形成暂时的分叉,直到其中一个分叉产生新的区块,根据最长链原则,短暂的分叉会自动消失。因此,链上的交易在确认几个区块后就被认为是确定的。
区块链分类
根据开放程度,区块链可以分为三类:公有链、私有链和联盟链。
1. 公有链(Public Blockchain):
- 开放程度:完全开放,任何人都可以参与。
- 特点:去中心化,任何人都可以成为网络节点,读取、写入、验证区块数据。
- 应用场景:加密货币、去中心化应用(DApps)。
- 示例:比特币(Bitcoin)、以太坊(Ethereum)。
2. 私有链(Private Blockchain):
- 开放程度:完全封闭,仅限特定的参与者。
- 特点:由一个组织或机构控制,只有授权的节点可以参与读取和写入数据。
- 应用场景:企业内部管理、供应链管理。
- 示例:Hyperledger Fabric。
- 要注意的是,私链的代码也可能是开源的,开源不表示是公链。
3. 联盟链(Consortium Blockchain):
- 开放程度:部分开放,仅限联盟成员参与。
- 特点:由多个组织或机构共同管理,成员之间共享权限,允许选择性开放数据。
- 应用场景:行业合作、跨机构业务协作。
- 示例:R3 Corda、Quorum。
这三类区块链根据其开放程度,分别适用于不同的应用场景和需求,从完全去中心化的公有链到完全由一个组织控制的私有链,再到多方合作的联盟链。
区块链分层
开发人员试图以各种方式对区块链网络扩容,一个广泛被采用的方案是把一些计算放到链下进行(即链上叠加一层),链上只进行计算的校验和存储。
以下是一个分层架构图:
Layer 0(层0):
- 内容:表示区块链的基础设施层,包含节点基础设施和去中心化的云服务。这一层提供支持区块链运行的网络底层和计算资源。
- 功能:支持整个区块链生态系统的运行,包括连接和维护节点的网络基础设施。
Layer 1(层1):
- 内容:包括主区块链网络,如以太坊、Solana、Polkadot、Cosmos、Cardano等。
- 功能:Layer 1 是区块链的核心层,处理区块生成、交易确认、共识机制的执行等基本功能。这一层是区块链系统的骨干,所有数据记录和智能合约执行都在这一层进行。
-
第 1 层区块链网络为开发dApps提供了基础架构,开发者可以在第1层网络上其他协议,比如我们看到MAKER DAO 稳定币协议、加密朋克 NFT 及 Uniswap DEX 协议等。
随着链上应用不断增长,网络“吞吐量”无法满足快速增加的需求,经常导致网络拥堵。增加区块链网络自身处理能力,一个常见的方法是扩大区块大小,以便在单个区块里可以容纳更多的交易,以太坊社区也确实多次提高过区块大小限制,但提高更快意味着更慢网络传播速度,以及更大数据意味着节点需要更大的存储容量,会提高节点参与网络的门槛,使得网络更中心化;另一个是方法是以太坊在尝试的分片(Sharding)扩容方案,将区块链数据分成不同的组(分片),每个分片负责网络活动中的不同交易子集。
Layer 2(层2):
- 内容:包括扩展解决方案和二层协议,如Optimism、Polygon、StarkNet、Arbitrum等。
- 功能:这一层专注于提高区块链的可扩展性和处理速度。Layer 2 通过将部分交易或计算从 Layer 1 移至 Layer 2 来缓解主链的负载,从而提高交易速度并降低费用。
比特币闪电网络(Lightning Network)
比特币上的 一个主要的 Layer2 扩容方案是闪电网络,旨在提高比特币网络的交易速度和可扩展性,同时降低交易成本。它通过创建一个离链的支付通道网络,允许用户进行快速、低成本的微交易,而无需在比特币主链上记录每笔交易。
闪电网络的工作原理
-
支付通道:两个用户首先在比特币主链上创建一个多重签名的交易,作为支付通道的资金担保。这笔交易将资金锁定在一个由双方共同控制的地址中。
-
离链交易:一旦支付通道建立,双方可以在通道内无限次地相互交易,而这些交易不会立即被记录在比特币主链上。每笔交易都会更新各自的资金余额。
-
通道关闭:当一方决定关闭支付通道时,最终的余额状态会被提交到比特币主链上,主链会根据最后一次更新的余额分配双方的资金。所有中间交易记录都是离链处理的,仅需提交最后的结果到主链。
-
网络效应:闪电网络不仅支持直接的支付通道,也允许通过多个通道进行支付,这意味着即使两方之间没有直接的通道,他们也可以通过网络中其他连接节点的路径进行交易。
如下路,A 要向 F 交易时,可借助 节点C 形成"通道"链路。所有节点一起就形成了一个支付网络。
闪电网络的优势
- 快速交易:通过离链处理,交易可以在几秒钟内完成。
- 低成本:相比在主链上的交易,闪电网络的交易费用极低,适合小额支付或微支付。
- 可扩展性:减少了对主链的负担,大大提高了比特币网络的交易处理能力。
闪电网络的挑战
- 通道流动性:通道中的资金需要预先锁定,这可能会限制通道的流动性和使用效率。
- 网络复杂性:需要用户和节点运营者对网络设置和管理有一定的技术了解。
- 安全性:虽然交易在通道内是私密的,但通道关闭的过程依然需要依赖比特币主链的安全性。
Rollup
Rollup 是一种用于以太坊等区块链上的第二层扩展技术,旨在提高网络的交易处理能力和降低交易成本,同时保持链上的安全性。Rollup 通过将大量的交易数据打包到链下处理,并将结果和必要的证明提交到链上,来实现更高效的交易处理。
Rollup 的工作原理
-
链下处理:在 Rollup 上,交易被批量打包并在链下处理。这意味着大量的计算和数据存储都发生在链下,而不直接占用主链的资源。
-
提交结果:处理完的交易数据会被压缩成一个“Rollup”包,并定期提交到主链上。只需要将最小量的证明数据(如状态变化的摘要)存储在主链上,从而减少了链上的数据负担。
-
数据可用性:所有提交到链上的数据或证明都是公开的,任何人都可以验证这些数据的有效性,确保 Rollup 的操作是安全且可信的。
Rollup 的类型
Rollup 主要有两种类型:
-
Optimistic Rollup:假设所有提交的数据都是有效的,直到有其他节点提出质疑。如果有人质疑某个 Rollup 的有效性,系统会验证该 Rollup 的内容。如果被证明是无效的,系统会回滚交易,并惩罚提交无效数据的节点。
-
ZK-Rollup(零知识 Rollup):使用零知识证明技术,每个 Rollup 都会附带一个数学证明,证明所有交易是有效的。因为 ZK-Rollup 提交的是已验证的证明,所以不需要质疑期,交易最终性更快。
Rollup 的优势
- 高可扩展性:通过将大量交易移到链下处理,主链的负担大大减轻,允许处理更多的交易。
- 低交易费用:由于主链只需要存储压缩后的数据或证明,用户的交易费用可以大幅降低。
- 安全性:Rollup 依然依赖于主链的安全性,即使链下出现问题,主链也可以保障资金安全。
Rollup 的挑战
- 数据可用性:虽然 Rollup 保证了交易的有效性,但链下数据的可用性依然是一个需要关注的问题。
- 兼容性:在采用 Rollup 时,需要考虑如何与现有的链上应用和协议进行兼容和交互。
- 复杂性:实现和维护 Rollup 技术涉及复杂的加密和合约技术,这需要高度专业化的技术支持。
Rollup 是目前最被看好的区块链扩展解决方案之一,因为它能够在保持区块链去中心化和安全性的同时,大幅提升网络的性能和用户体验。
Layer 3(层3):
- 内容:包括去中心化应用(DApps)和智能合约平台,如CryptoKitties、Decentraland、Uniswap、Maker等。
- 功能:这一层是区块链的应用层,用户直接与之交互。Layer 3 承载了具体的区块链应用程序,允许用户通过友好的界面参与各种去中心化金融(DeFi)、NFT 市场、游戏和其他去中心化服务。
对比 Web 2 Internet:
- 在图示中,Web 2.0 的分层模式被与区块链分层进行对比。Web 2.0 的应用层、表示层和会话层分别对应区块链的不同层次,而 OSI 模型的底层(如传输、网络、数据链路和物理层)则对应区块链的 Layer 0 层,提供基础网络支持。