作者:JOHN FÁWỌLÉ
区块链架构指的是构成完整区块链系统的组件、子组件或层级。每个层级都有着独特的角色,从存储数据到维护网络连接和确保整个系统达成共识。
对于区块链开发者和初创企业家来说,理解这些层级对于有效利用区块链技术至关重要。
本文旨在通过对区块链架构及其各个层级的功能进行分解,揭示区块链架构的复杂性。我们的目标是帮助您在区块链设计的复杂环境中找到方向,优化性能,并识别潜在的安全漏洞。
区块链架构的类型
一般来说,区块链可以分为四种类型:公共区块链、私有区块链、联盟区块链和混合区块链。每种类型的区块链架构都有其特定的特点。
公共区块链
公共区块链对所有人开放,没有访问权限限制。它们可以采用多种共识机制,尽管由于广泛的用户群体需求的增加,可扩展性可能具有挑战性。比特币和以太坊是经典示例。
私有区块链
私有区块链是为企业需求而创建的。它是一种有权限访问的区块链,只有特定的人群可以访问,通常用于商业组织。超级账本Fabric是最知名的私有区块链之一。
混合区块链
公共区块链和私有区块链各有优缺点。混合区块链(如Dragonchain)的理念是结合这两个世界的优点。
联盟区块链
联盟区块链(如R3 Corda)是由多个私有节点组成的区块链,由合作伙伴共同拥有和管理。
区块链架构的分层结构 根据区块链的类型,实施其架构的方式各不相同,并没有标准的规定。然而,大多数区块链通常具有以下结构:
应用层
为最终用户提供基于区块链的应用程序。
应用层是整个系统的最终产品,为用户提供特定的产品,如钱包、借贷、质押等。
应用层以智能合约为起点,智能合约是一种可编程的代码,用于管理状态转换。它可以充当托管账户、支付通道或保险库,在不同的生态系统中被称为不同的名称,如Solana中的“程序”或Hyperledger中的“链码”。智能合约经常成为黑客攻击的目标,因为其代码中的任何关键错误都可以被利用以获取非法利益。
通常,用户不直接与智能合约进行交互,而是依赖于Web3应用程序或API的前端。Uniswap网站就是一个将用户界面和智能合约结合起来的去中心化应用程序的例子。
服务和可选组件
通过额外的功能增强区块链的能力。
服务层创建了Web3互联互通,消除了障碍,实现了平滑的交互。可选元素包括去中心化自治组织(DAO),在Arbitrum和Polygon等网络中辅助管理和通信,但在比特币和以太坊中不存在。预言机将Web3应用程序与实时资产定价的真实世界数据连接起来,帮助进行链外计算。热钱包既用于存储链上资产,又作为访问点,例如Metamask或Klaytn的本地钱包Kaikas。最后,区块浏览器可以跟踪链的健康状况,帮助检测技术故障和安全漏洞,并及早解决问题。
协议(共识)层
为节点在状态上达成一致的规则。
协议层为区块链参与设定规则,其中共识机制是其关键组成部分。共识机制确保节点在区块的挖掘和处理方面达成一致,并概述了验证器的要求,不同的共识机制可以是工作量证明、权益证明或其他机制。传播协议广播决策,而协议审计确保安全防范诸如51%攻击之类的威胁。
区块链可以是有权限制访问的(限制访问)或无权限限制的(对所有人开放)。侧链是与主链并行运行的,具有独立的共识机制,提供了增强的功能。一个例子是Polygon与以太坊之间的关系。
网络层
实现节点之间的互动。
网络层实现了节点之间的有效发现和互动。通常,一个节点会定位到引导节点(bootnode),引导节点会扫描可用的节点并发起连接。随着信息的传播,通过可信执行环境(TEE)进行保护,以保持完整性。节点会话的维护在不同的网络中有所不同;例如,以太坊使用递归长度前缀(RLP)来定义节点定位、认证和共享数据所需的时间。
数据层
确保安全和可靠的消息传输。
区块链技术的数据层主要涉及数据存储和结构。它包含了区块链,这是一个线性的区块序列,用于存储交易信息。根据具体的区块链,数据结构可以是一个简单的交易列表,比如比特币使用的结构,也可以是一个更复杂的结构,比如以太坊的状态树(state trie),用于存储合约状态信息。
虽然在此处不着重于交易添加和哈希的具体细节,但重要的是要注意数据层在维护完整性和隐私方面起到了一定的作用。大多数在协议中使用的加密原语——签名算法、加密库和公私钥对——都是在这一层中定义的,并且应与高安全标准相结合。
非对称加密是一个关键组成部分,通过公私钥对保持数据的机密性。公钥与钱包地址相关联,私钥授予对与该地址关联的资产的控制权。
每个交易都附带一个数字签名,这是一种加密机制,用于验证正确的私钥控制权,而不会将私钥泄露,从而确保安全性。加密签名是由签名算法生成的,如椭圆曲线数字签名算法、RSA算法等。
硬件/基础设施层
提供托管区块链所需的必要能力。
区块链架构延伸到硬件和基础设施。在这一层中,工作量证明共识协议中的矿工和验证者进行操作,矿工使用专用设备(GPU、风扇、稳压器)和电力创建新的区块,而验证者运行节点进行区块挖掘。至于数据存储,一些区块链选择使用第三方的去中心化数据托管,如Filecoin、IPFS、Arweave或Firebase,因为存在容量限制。
节点或客户端有三种类型:全节点、轻节点和归档节点。全节点存储整个链的状态,参与共识过程,并根据请求提供数据。轻节点仅存储区块摘要,而归档节点存储从创世块到当前的交易数据,可供用户查询。
基础设施层还包括虚拟机,类似于操作系统,并托管智能合约。区块链通常具有原生的虚拟机,例如Avalanche的Avalanche虚拟机和以太坊的以太坊虚拟机。然而,区块链也可以与其他虚拟机兼容。
理解 Layer 1 和 Layer 2 区块链 应用层、服务层、协议层、网络层、数据层和基础设施层构成了完整的区块链。然而,理解 L1 和 L2 的可扩展性解决方案也非常重要,因为这些是您经常会遇到的“Layer”。
Layer 1 区块链
以太坊和比特币是 Web3 中最主要的 Layer 1 区块链。Layer 1 区块链是基础性的、自给自足的区块链。它们大多数是公共的和无权限限制的。一个典型的 Layer 1 区块链拥有区块链架构的所有组件。
然而,由于技术瓶颈,大多数 Layer 1 区块链的可扩展性相对较低。一些 Layer 1 区块链已经积极采取原生的扩展解决方案。例如,以太坊正在实施分片技术以提高吞吐量。
Layer 2 区块链
Layer 2 区块链通过依赖 Layer 1 的安全性和底层操作来提供更高的吞吐量和更低的gas消耗,但通常会实施不同的共识层。
Layer 2 采取各种创造性的方式进行扩展:运行侧链、状态通道、Rollups 或嵌套区块链。闪电网络和 Stack 是比特币生态系统中 Layer 2 的显著示例。
最后的思考
区块链是不同部分和层级的最终产物。这些层级为区块链提供了正常运行所需的各种因素。
然而,需要注意的是,区块链技术的最大痛点之一是安全漏洞。区块链的每个层级都容易受到漏洞的影响。为此,应对协议、去中心化应用和智能合约进行全面审计,以阻止潜在的安全威胁。
FAQs
区块链架构有哪五个主要层级?
一个区块链需要具备五个主要层级的架构:应用层、协议(共识)层、网络层、数据层和硬件/基础设施层。
区块链架构有哪些不同类型?
区块链架构的不同类型包括公共区块链、私有区块链、混合区块链和联盟区块链。
区块链架构的组成部分有哪些?
区块链的组成部分因其创建目的而异。一般而言,这些组成部分通常包括共识算法、点对点节点交互、哈希、系统管理等。
所有评论