Hacker Dōjo Workshop:
资助金额:120 USDT
Bounty链接:区块链的基本架构 | Bounties | DoraHacks
创作者:北邮在读硕士 Syshems
本项目由Hacker Dōjo资助,文章转载请联系
Telegram: @DoraDojo0
WeChat: @HackerDojo0
一、六层层级结构
Layer | What it does | Components |
---|---|---|
Application | Hosts applications that interact with the blockchain. | Smart Contract, User Interface, Decentralized Applications |
Services & Optional Components | Enhances the functionality of the blockchain with additional services. | Governance/DAOs, Oracles, Wallets, Blockchain Monitor |
Protocol/Consensus | Defines and regulates how nodes in a blockchain come into agreement. | Consensus, Sidechains, Permissioned and Permissionless, Propagation Protocol, Virtual Machines |
Network | Facilitates effective discovery and interaction among nodes. | Communication Mechanisms, Trusted Execution Environments, Recursive Length Prefix |
Data | Caters for the creation, management, and encryption of data. | Digital Signatures, Hash, Merkle Tree, Data Blocks, Asymmetric Encryption, Storage |
Hardware/Infrastructure | Provides the physical resources needed to host a blockchain. | Mining, Nodes, Tokens, Servers |
1.1 应用层
Layer | What it does | Components |
---|---|---|
Application | Hosts applications that interact with the blockchain. | Smart Contract, User Interface, Decentralized Applications |
智能合约、链码(Hyperledger生态)和去中心化应用程序(DApp)构成了应用层,应用层包括最终用户用来与区块链网络通信的程序,脚本、应用程序编程接口 (API)、用户界面和框架都是其中的一部分。
**应用层协议进一步细分为应用层和执行层。**区块链网络充当这些应用程序的后端技术,它们通过 API 与其进行通信。 智能合约、底层规则和链码都是执行层的一部分。虽然交易从应用层转移到执行层,但它是在语义层(semantic layer)验证和执行的。 应用程序向执行层发出指令,执行层执行交易并确保区块链的确定性。
1.2 服务和可选组件层
服务层通过附加功能增强区块链功能。
Layer | What it does | Components |
---|---|---|
Services & Optional Components | Enhances the functionality of the blockchain with additional services. | Governance/DAOs, Oracles, Wallets, Blockchain Monitor |
服务层创建 Web3 互连,消除障碍并实现顺畅的交互。 可选元素包括去中心化自治组织(DAO); Arbitrum 和 Polygon 的社区和委员会;预言机连接链上链下数据;热钱包存储链上资产并充当访问点,例如 Metamask;区块浏览器跟踪链的健康状况,帮助检测技术故障和安全漏洞并尽早缓解问题。
1.3 协议/共识层
设置节点在状态上达成一致的规则。通过 Protocol/Consensus 层的设计,区块链系统能够实现去中心化、安全、可信的交易记录和共识达成。不同的共识机制和通信协议选择将根据具体的区块链系统和应用需求来确定。
Layer | What it does | Components |
---|---|---|
Protocol/Consensus | Defines and regulates how nodes in a blockchain come into agreement. | Consensus, Sidechains, Permissioned and Permissionless, Propagation Protocol, Virtual Machines |
- 共识机制:
共识机制是区块链网络中节点之间达成一致的规则和算法。共识机制的作用是确保在分布式环境下,节点能够就区块链上的交易和状态达成一致,防止双重花费等恶意行为,并确保新增区块的合法性。共识机制的选择取决于区块链的特定需求,例如安全性、吞吐量、去中心化程度等。- 工作量证明(Proof of Work,PoW):通过节点竞争解决一个复杂的数学难题来获得出块权,被广泛应用于比特币等区块链系统。
- 权益证明(Proof of Stake,PoS):根据节点持有的代币数量来确定出块权,节点的出块权和收益与其持币量成正比,被用于以太坊等区块链系统。
- 委员会型共识:通过选举或委派一定数量的节点组成委员会,委员会成员轮流出块,确保网络的安全性和高吞吐量。
- 实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT):通过节点间的消息交换和多数决策机制,实现容错性,被用于一些联盟链和私有链。
- 通信协议:
通信协议是区块链网络中节点之间进行通信和消息传递的规则和协议。通信协议负责确保节点之间能够可靠地交换交易、区块和其他网络信息,并维护区块链网络的一致性和稳定性。常见的区块链通信协议包括:- Peer-to-Peer(P2P)协议:节点之间通过点对点的方式进行直接通信,而不依赖中心化的服务器。P2P协议提供了节点之间的连接和消息传递机制。
- 网络发现协议:节点通过网络发现协议可以自动发现并连接到其他可用节点,建立起全网的连接和通信。
- 传输层安全协议(Transport Layer Security,TLS):TLS协议提供了节点之间通信的安全加密和认证机制,确保通信过程的保密性和完整性。
1.4 网络层
网络层提供对等节点的交互和发现。
Layer | What it does | Components |
---|---|---|
Network | Facilitates effective discovery and interaction among nodes. | Communication Mechanisms, Trusted Execution Environments, Recursive Length Prefix |
节点会定位引导节点,该引导节点会扫描可用的对等点并启动绑定。 信息的流通过程会通过可信执行环境 (TEE) 得到保护,以保持数据的完整性。节点会话维护因网络而异,例如以太坊采用递归长度前缀,定义定位、验证和共享数据所需的时间节点。
- 网络拓扑结构:
网络拓扑结构定义了区块链网络中节点的组织方式和连接模式。常见的网络拓扑结构包括:- 对等网络(Peer-to-Peer,P2P):区块链网络中的节点通过直接的点对点连接形成一个对等网络结构,而不依赖中心化的服务器。P2P网络具有去中心化、高可用性和抗故障的特点。
- 混合网络(Hybrid Network):混合网络结合了对等网络和中心化网络的特点,一部分节点通过对等网络连接,而另一部分节点则连接到中心化的服务器。这种结构可以提供更高的吞吐量和性能。
- 节点连接和发现:
节点连接和发现机制是区块链网络中节点之间建立连接和寻找其他可连接节点的方式。这些机制确保节点能够在网络中发现和连接到其他节点,形成一个完整的区块链网络。常见的节点连接和发现机制包括:- 初始节点(Bootstrap Nodes):初始节点是区块链网络中的一组已知节点,新节点可以通过连接到这些初始节点来获取网络的初始状态和连接其他节点的信息。
- 节点发现协议:节点发现协议定义了节点如何通过网络广播自身的存在,并寻找其他可连接的节点。一种常见的节点发现协议是基于DHT(分布式哈希表)的Kademlia协议。
- 路由和传输:
路由和传输机制负责节点之间消息的传递和数据的传输。在区块链网络中,消息通常是交易、区块和其他相关数据的传输。常见的路由和传输机制包括:- 路由协议:路由协议用于确定消息从发送节点到达目标节点的路径和传输方式,确保消息能够正确到达目标节点。
- 传输协议:传输协议定义了消息在网络中的传输方式和传输层的安全性。常用的传输协议包括TCP(传输控制协议)和UDP(用户数据报协议)。
- 安全性和保护机制:
网络层也涉及到区块链网络的安全性和保护机制。由于区块链网络面临各种威胁和攻击,需要采取相应的安全措施来保护网络的稳定性和数据的完整性。常见的安全性和保护机制包括:- 加密通信:区块链网络中的通信可以使用加密技术来确保消息的保密性和防止篡改。
- 防御性拜占庭容错(Defensive Byzantine Fault Tolerance,dBFT):dBFT是一种共识机制和网络层协议的组合,用于抵御拜占庭式攻击,提供网络的安全性和鲁棒性。
通过在 Network 层中定义适当的网络拓扑结构、路由和传输机制以及安全保护措施,区块链网络能够实现节点之间的可靠通信、数据传输和安全交互,确保整个网络的正常运行和安全性。
1.5 数据层
区块链的 Data(数据)层是区块链架构中的一个关键组成部分,它涉及区块链中数据的存储、验证和一致性。该层负责确保区块链数据的安全性、可靠性和完整性。以下是对区块链的 Data 层的介绍:
Layer | What it does | Components |
---|---|---|
Data | Caters for the creation, management, and encryption of data. | Digital Signatures, Hash, Merkle Tree, Data Blocks, Asymmetric Encryption, Storage |
- 分布式账本:
分布式账本是区块链中存储交易记录和状态的主要组成部分。它是一个公开可读的数据库,记录了区块链网络中发生的每个交易和状态的变化。分布式账本的特点包括:- 事务记录:分布式账本记录了每个交易的详细信息,包括交易参与者、交易时间、交易金额等。
- 状态存储:分布式账本还存储了每个区块链系统的当前状态,包括账户余额、智能合约状态等。
- 不可篡改性:一旦数据被添加到分布式账本中,它们将无法篡改或删除,确保数据的完整性和可信度。
- 数据冗余性:分布式账本中的数据被复制和存储在区块链网络的多个节点上,提高了数据的冗余性和可用性。
- 数据验证和一致性:
数据验证和一致性机制用于确保区块链中的数据的正确性和一致性。这些机制确保每个节点在添加新的区块或执行交易时,对数据的验证和一致性达成一致。常见的数据验证和一致性机制包括:- 共识机制:区块链中的共识机制(如工作量证明、权益证明等)确保了区块的添加是通过一致的规则和算法进行的,并防止双重花费等恶意行为。
- 数字签名:区块链中的交易使用数字签名进行验证,确保交易的合法性和完整性。
- 默克尔树:默克尔树用于将多个交易记录压缩成一个单一的哈希值,从而减少数据的存储和验证工作。
- 数据存储:
区块链中的数据存储方式通常包括:- 区块存储:区块链中的交易被打包成一个个区块,每个区块包含了一定数量的交易记录和其他相关信息。
- 交易存储:交易存储包括记录每个交易的详细信息,例如交易参与者、交易金额等。
- 状态存储:状态存储记录了区块链系统的当前状态,包括账户余额、智能合约状态等。
这些数据存储方式的结合,确保了区块链中的交易和状态的可靠存储和访问。
通过在 Data 层中定义适当的分布式账本、数据验证和一致性机制以及数据存储方式,区块链系统能够实现交易和状态的可靠记录、数据的完整性和不可篡改性。这使得区块链能够提供安全、可信的数据存储和交易记录的功能。
1.6 硬件/基础设施层
Layer | What it does | Components |
---|---|---|
Hardware/Infrastructure | Provides the physical resources needed to host a blockchain. | Mining, Nodes, Tokens, Servers |
区块链的 Hardware/Infrastructure(硬件/基础设施)层是区块链架构中的一个关键组成部分,它涉及支持区块链系统运行所需的硬件设备和基础设施。该层提供了计算、存储和网络等基础设施,支持区块链网络的功能和性能。以下是对区块链的 Hardware/Infrastructure 层的介绍:
- 硬件设备:
硬件设备是支持区块链系统运行的物理设备。它们包括:- 节点设备:节点是区块链网络中的参与者,节点设备可以是计算机、服务器、矿机等。节点设备负责执行区块链的各种功能,如交易验证、共识算法等。
- 存储设备:存储设备用于存储区块链的数据,包括交易记录、区块数据、分布式账本等。存储设备可以是硬盘、SSD(固态硬盘)等。
- 网络设备:网络设备包括路由器、交换机、网络电缆等,用于建立和维护区块链网络中节点之间的通信和连接。
这些硬件设备的性能和可靠性对于区块链系统的运行和安全性至关重要。
- 基础设施:
基础设施是支持区块链系统运行的软硬件环境。它包括:- 云服务:云服务提供了基于云计算的资源和平台,如云服务器、云存储等。通过使用云服务,区块链系统可以获得灵活的资源分配和扩展能力。
- 数据中心:数据中心是存放和管理大规模硬件设备的场所,提供稳定的供电、冷却、网络连接等基础设施支持。
- 安全设施:安全设施包括防火墙、入侵检测系统、物理访问控制等,用于保护区块链系统免受恶意攻击和未经授权的访问。
这些基础设施为区块链系统提供了所需的计算、存储、网络和安全支持,确保系统的可用性、可扩展性和安全性。通过在 Hardware/Infrastructure 层选择适当的硬件设备和基础设施,区块链系统能够具备足够的计算能力、存储容量和网络连接,以满足系统的要求和应对不同规模的应用需求。
二、执行、结算、排序、数据可用性
区块链的 Execution(执行)层、Settlement(结算)层、Data Availability(数据可用性)层和Ordering(排序)层是区块链架构中的四个关键组成部分,用于处理和管理交易的执行、结算、数据传输和排序。以下是对这些层的介绍:
-
Execution层(执行层):
Execution层处理区块链上的交易执行,**确保交易的可靠性和一致性。**它包括智能合约引擎、虚拟机和执行环境等组件,用于验证和执行用户提交的智能合约和交易。Execution 层负责执行交易中的计算操作,并在区块链网络中更新状态和账本数据。它通常使用编程语言和执行环境来处理智能合约的逻辑和业务逻辑。- 智能合约:智能合约是在区块链上执行的计算机程序,其中包含了一系列的代码逻辑和条件。智能合约定义了参与方之间的交互规则,并在满足特定条件时自动执行相关操作。
- 虚拟机(Virtual Machine):区块链执行层中常见的一个组件是虚拟机,它是一个在区块链上运行智能合约的虚拟执行环境。不同的区块链平台可能会使用不同的虚拟机,例如以太坊使用的是以太坊虚拟机(Ethereum Virtual Machine,EVM)。
- 交易验证:执行层负责验证交易的有效性和合法性。在执行层中,交易需要通过一系列的验证步骤,包括验证交易的签名、检查账户余额和执行交易的逻辑等。只有通过验证的交易才能被包含在区块中并被记录到区块链上。
- 共识机制:共识机制是区块链中用于确定哪个节点有权添加新区块的一种算法。执行层需要支持相应的共识机制,确保所有参与节点对于区块链状态的变化达成一致,并防止恶意行为和双重支付等问题。
- 数据存储和访问:执行层负责存储和管理区块链上的数据。它通常采用分布式的数据存储方式,确保数据的高可用性和容错性。同时,执行层还提供了对存储数据的访问接口,使得用户和应用程序能够查询和更新区块链上的数据。
-
Settlement层(结算层):
**结算层是通过共识机制确保交易的合法性和一致性,处理和确认交易结算,并提供安全的交易环境。**它是区块链系统中至关重要的组成部分,为交易的安全性和可靠性提供了坚实的基础。它涉及将执行层中执行的交易结果映射到区块链账本中的状态变化和账户余额。Settlement 层确保交易的正确结算和资金转移,并更新账本中相应的数据。它可能涉及数字资产的转移、账户余额的调整以及其他与交易结算相关的操作。- 在区块链结算层中,交易被收集、验证和记录在一个称为区块的数据结构中。每个区块都包含一组交易和一个称为区块头的元数据。这些区块头包含了前一个区块的哈希值,从而形成了一个链式结构。这种链式结构使得区块链具有不可篡改性,因为更改任何一个区块都会破坏整个链的一致性。
- 一旦新的区块被添加到区块链中,交易就被视为已经确认和结算。这意味着交易不可逆转,而且在区块链网络中的节点之间具有一致的状态。
- 结算层还负责处理可能发生的双重支付问题,并确保每个参与者的余额和交易历史是正确的。另外,结算层还涉及加密算法和数字签名等技术,用于保护交易的机密性和身份验证。通过使用加密技术,区块链结算层能够提供安全的交易环境,防止篡改和伪造。
-
Data Availability层(数据可用性层)
数据可用性层是指区块链技术中负责存储、访问和检索数据的组成部分,用于确保区块链上的数据可以被有效地存储、传输和使用,为区块链的可靠性、可用性和数据安全性提供了基础支持。
- 数据可用性层通过复制和分发数据来确保数据的可用性和冗余性,这种复制和分发机制使得即使有部分节点发生故障或被攻击,其他节点仍然可以提供数据的可用性和服务的连续性。
- 利用加密技术来保护数据的机密性和完整性。区块链中的数据通过使用哈希函数和数字签名进行加密和验证,确保数据在传输和存储过程中不被篡改或泄露。
- 提供了一组 API 和协议,使得应用程序和用户可以方便地与区块链进行交互和访问数据。这些API和协议提供了各种功能,例如查询交易历史、获取账户余额、执行智能合约等。
-
Ordering层(排序层):
Ordering 层负责对区块链中的交易进行排序,并将已排序的交易打包成区块,确保交易的正确执行、结算、数据传输和顺序。- 排序层使用共识机制来确定节点之间对交易顺序的一致性达成共识,就交易顺序达成共识后并将结果广播给网络中的其他节点。
- 当多个节点同时提出交易时,需要对这些交易进行排序,以便确保它们被添加到区块链中的正确位置。常见的排序规则包括按时间顺序、按交易优先级、按交易费用等。
- 应用一些优化策略来提高交易处理的效率和吞吐量。例如,可以使用批处理技术将多个交易打包成一个区块,从而减少通信和计算开销。此外,还可以使用并行处理和分片等技术来并发处理多个交易和区块,以加快整个系统的处理速度。
三、L1 和 L2
区块链的 Layer1 和 Layer2 是指区块链技术中的两个层级或层次结构,用于描述不同的技术和解决方案。
-
Layer1:
**Layer1是区块链技术的基础层,包括底层协议、共识机制、加密算法、网络和数据结构。它提供了区块链系统的基本架构和功能,确保数据的安全性、一致性和可用性。**Layer1的设计和实现对于区块链的性能、安全性和可扩展性至关重要。
Layer1的特点和功能包括:
- 去中心化:Layer1 实现了区块链的去中心化特性,没有中心化的控制机构,所有的参与者共同参与账本维护和共识达成。
- 安全性和可信度:Layer1 通过共识算法和密码学机制确保交易的安全性和账本数据的不可篡改性。
- 性能和可扩展性:Layer1的性能和可扩展性受到底层协议和算法的限制,例如比特币的 PoW 机制导致吞吐量较低,以太坊的 PoW 机制也存在性能瓶颈。
- 代币发行:Layer1可以支持原生的加密货币或代币发行,用于激励矿工、支付交易费用或作为数字资产的表征。
-
Layer2:
Layer2是在区块链 Layer1 之上构建的一系列扩展性解决方案和协议,旨在提高区块链系统的性能、可扩展性和交易吞吐量。Layer2不是独立的区块链,而是在区块链 Layer1 上的补充技术,旨在增强区块链系统的性能和功能。Layer2解决方案通过在区块链之外进行交易和数据处理,减轻了Layer1上的负担,从而提供了更高效的交易和应用体验。常见的 Layer2 解决方案包括闪电网络(Lightning Network)、Plasma 、rollup 等。
Layer2的特点和功能包括:
- 扩展性和高吞吐量:Layer2解决方案通过将交易从区块链中移除或批量处理,提高了系统的吞吐量和性能。
- 实时交易:Layer2可以提供几乎即时的交易确认和支付体验,避免了区块链 Layer1 上的交易确认延迟。
- 降低成本:通过将交易和计算移至Layer2,可以减少Layer1上的交易费用和资源消耗。
- 隐私保护:Layer2解决方案可以提供更高级别的隐私保护,避免将所有交易细节暴露在公开的区块链中。
综合而言,Layer1是指区块链的基础层级,提供核心功能和特性,而Layer2是指在Layer1之上构建的扩展性解决方案和协议,提供更高效的交易处理和应用体验。两者可以结合使用,以提供更完善和强大的区块链技术。
- 公链和 Layer1 的区别:
Layer1和公链(Public Blockchain)在概念上有一些区别,尽管它们在某些方面可以重叠或相关。
- Layer1:
Layer1是指区块链技术中的基础层级,它包括底层的区块链协议、共识算法、数据结构和网络协议等。Layer1是区块链系统的核心组成部分,提供了区块链的基本功能和特性,例如分布式账本、交易验证和共识达成。Layer1的设计决定了区块链系统的安全性、可靠性、性能和可扩展性。在 Layer1 中,可以实现不同类型的区块链,包括公链、私链和联盟链等。 - 公链:
公链是一种开放的区块链网络,允许任何人加入并参与其中,无需特定的许可或限制。公链通常是完全去中心化的,没有中心化的控制机构,由全球的节点共同参与账本维护和共识达成。公链上的交易和数据是公开可见的,并且遵循共识规则和协议。公链常用于加密货币的发行和交易,也用于构建去中心化应用(DApps)和智能合约。
因此,公链是指基于Layer1的开放区块链网络,允许任何人参与其中,并保持公开、透明和去中心化的特性。公链是Layer1的一种应用和实现方式,而Layer1更广泛地涵盖了区块链技术的基础层级和协议。公链可以视为Layer1的一种形式或类型,用于实现开放和去中心化的区块链网络。
参考:
「1」:A beginner's guide to understanding the layers of blockchain technology
「2」:https://hacken.io/discover/blockchain-architecture-layers/