当前位置:主页 > 区块链 > 区块链技术 > 区块链基本架构

区块链的基本架构有哪些?一文读懂区块链的基本架构

2023-02-10 09:30:17 | 来源: | 作者:佚名
这篇文章主要介绍了区块链的基本架构有哪些?一文读懂区块链的基本架构的相关资料,需要的朋友可以参考下本文详细内容介绍

笔者记得当比特币开始受注目时,经常看到有评论和报导将比特币和区块链混为一谈。这一两年随着越来越多的区块链项目的实施,特别是各式各样区块链平台的出现,今天我们反而要掌握的一个课题是,怎样的架构才算是一个区块链?换句话说,一个区块链应该有哪些元素?

初接触区块链的朋友一般的学习方法都是先选择某一个区块链平台,深入研究那个平台的特性。笔者也是先由「比特币」开始,再扩展至其他平台例如「以太坊」(Ethereum) 和Hyperledger Fabric(尚未见到有适合的中文译名,以下会保留这个名称)。而本文却是笔者在接触过不同的区块链平台后作的分析和总结,希望为各位带来另一种学习方式:先从总体认识区块链架构,之后当各位在研习某一个区块链平台时,可以比对这篇文章的介绍,从而较为系统性的掌握区块链不同的部份。

以下我会介绍区块链的三个要素:网络、账本和智能合约。

区块链是由节点构成的网络

所谓网络,就是由多于一部机器连接而成,即我们所称的节点(node),各个节点通常运行同一组软件,这些软件已备有相互沟通的功能,即我们经常说的P2P (Peer -to-Peer) 通讯模式,而非今天主流的客户— 服务器(Client-Server) 模型。今天大部份区块链平台均以互联网互相连结,按需要节点之间的通讯可作加密处理。

在不同的区块链上,节点可能带有不同的功能。例如Hyperledger Fabric 上的Peer 节点负责管有账本和执行智能合约(稍后有更详细介绍),但Orderer 节点则只负责将交易(Transactions) 排序和构建新的区块(Block);「以太坊」的节点可以只是单单管有账本和执行智能合约,同时有些节点也可选择加入挖矿(Mining) 角色来构建新的区块等等。

按不同的实施模式,节点的数量有所不同。在公开使用的区块链平台如「比特币」和「以太坊」,任何人在任何地方任何时间都可加入或离开网络,不需要一个中央组织去批准。这种区块链网络我们称为Permissionless Blockchain。因此节点的数目就经常浮动。在本文写作时(2019年3月),比特币有超过一万个节点,而「以太坊」则有八千六百多个,分布在全球各大洲上。

取自网站https://bitnodes.earn.com/(2019年3月)

至于商用的区块链平台就不一样。商用区块链的节点通常只放在参与的机构和监管机构内,而非任何未被批准的机构或个人可以参与。因此,节点的数量会和参与机构数目有关。例如一个由七间银行组成的「区块链贸易融资平台」,即使每间银行有两个节点,总数不会超过二十个节点。

物理上这些节点构成一个可靠稳妥的架构。理论上节点数目越多,分布越广,网络越坚固,而受阻断服务攻击(DoS, Denial of Service) 的机会越少。这是因为每个节点拥有一份相同的数据结构,在区块链我们称之为「账本」Ledger(或称为账簿)。

各节点共同拥有一个相同的账本

这是区块链一个非常重要的元素。技术上「账本」是一个数据结构,之所以称为账本,主要是因为这个数据结构用作保存一笔又一笔的交易纪录,功能上就如一本账本。而事实上,我们所讨论的「区块链」更准确的说法是「分布式账本技术」(Distributed Ledger Technology),而「区块链」是「分布式账本技术」实现的一种方法。为免把事情复杂化,我们还是沿用「区块链」作讨论。

所谓的「共同拥有」,并非一个「共同使用的物理或逻辑结构」,就如我们说几台电脑共用一个储存装置(硬碟或档案系统)一样。「区块链」所说的「共同拥有」,是各节点各自管有这个数据架构。节点之间的数据架构互不从属,没有物理关系,但它们之间的内容保持相同。

何以各节点管有自己的数据架构而又内容可保持相同?这就是区块链其中一个令人着迷的地方。这个「数据同步」(容许我这样说)的过程称为达致「共识」Consensus。不同区块链会基于不同原因使用不同的共识方法。如「比特币」和「以太坊」这些公共区块链需要使用Proof of Work这个方法生成新的区块,而当中亦涉及经济诱因(incentive),结果是成千上万的节点向数据达致「同步」这个方向发展。又例如Hyperledger Fabric 是按已定下的政策由指定的Peer 节点处理交易,交给Orderer 节点排序,最后由每个Peer 节点确认才记在账本上,这也是一种使数据达一致的手段。

目前区块链中「共识」这个题目还在发展中,不少人还在投入大量的研究,希望从各方面去改善达致共识的办法。我们悉目以待。

此外,这个「数据架构」是否就是我们沿用很久的「数据库」(Database)?虽然两者都是储存数据的手段,但区块链的数据架构和一般的数据库有着明显的分别。区块链的数据架构通常包含两个部分:交易记录和整体状态(World State)。前者比较易明,就是记录每一笔的交易纪录,而后者则是交易处理过后的状态。

举一个简单例子,如果现在的状态是「我有一百元,而你有二百元」,当一笔交易「我给你五十元」处理后,状态就变为「我有五十元,而你有二百五十元」。但常用的「数据库」就有较广泛的用途而不单只是记录交易和状态。此外,区块链的交易记录只能叠加在现有的记录之上,不能(或不易)删除或更新一些已存在的交易记录。「数据库」则弹性更大,一般可以增加、阅读、更新和删除(CRUD)。

这里我们终于触及到「区块链」这个名词了。上述的交易记录是以「区块链」的模式存在。简单地说,这些交易会放在一个区块内,而区块与区块之间利用密码学(Cryptography) 的技术连结起来成为一个链状结构。新来的交易会加入在新的区块,而新的区块就接在现存的链上,如此这条「区块链」就随时间增长。

区块链的一个重要特性,就是数据写上后不易被修改或删除,而且修改的记录很容易被其他节点发现而拒绝接受。这是因为区块链的构造透过密码学和其链状架构,以及达致共识的机制得出的果效。以刚才的例子,不论是要删去「我给你五十元」这笔交易记录,又或者将整体状态中的「我有五十元」改为「我有五千元」,几乎成为不可能的事。

至于谁来建立区块和维持这条区块链?不同的平台有不同的做法。「比特币」和「以太坊」的区块链是由「采矿节点」(Mining Node or Miner) 透过竞争生成区块,而管有区块链的节点就按既定协议来维护节点上的区块链。Hyperledger Fabric是由Orderer 节点生成区块,而每个Peer 节点收到区块后,再确认当中交易才放入Peer 节点上的区块链。

最后,虽然称为「账本」,所有记录并不限于和金钱或货品交易。理论上任何资料也可以记在这个数据架构,而记在区块链的资料都有着刚才所讲的特性。如果有留意新闻,去年就有人将两韩的「板门店宣言」写在以太坊上。理论上只要以太坊一天还存在,这笔记录都会永远留存。

可编程的智能合约

智能合约(Smart Contract) 并不是区块链发明,然而,在区块链架构中智能合约扮演一个重要的角色。

智能合约是一些编码(code) 或程式(program),透过编码反映出各参与方的计划和意愿。它之所称为「合约」,是因为在区块链的应用场景中,「智能合约」可视为交易双方或多方共同接受的事项,有如商业上的「合约」;它之所以是「智能」 ,是因为这个编码落实在区块链时,节点会照编码所定的步骤和逻辑(logic) 自动执行,最重要的还是执行结果同步于整个区块链网络(即每一节点)。

沿用上述的例子,「我给你五十元」可以是一个单一而明确的交易,但也可反映现实一个有条件性的合约,例如:「如果你明天把这份文件送到我的公司,我给你五十元」。这个「我给你五十元」交易会否出现,要视乎这个条件有没有发生。当然,现实商业世界的合约条款要更复杂,但只要可以以编码模式写成智能合约,还是可以在区块链的平台执行的。

智能合约的例子(取材自Hyperledger Composer)

技术上来说,智能合约可以更新账本。这个更新涉及产生新的交易记录,和修改整体状态。因为这涉及更新区块链中最重要的数据架构,智能合约必须要反映真实参与各方的意愿(大家都接受这些合约内容和相关编码),按照指定的检定机制(例如合约的执行要由哪些机构确认)等,甚至引入第三方的监察或审计等。

智能合约作为编码,必然在某个地方执行。在区块链的平台上,节点负责执行智能合约,而且是由多个节点各自进行。例如以太坊是每个节点都会执行智能合约,由于是同一份合约编码,如果大家都有着相同的账本,执行后的结果理论上应该是相同,从而更新账本。而Hyperledger Fabric 则按大家协定和需要指定一些节点Peer 负责执行,得出的结果经过Orderer 排序后以区块模式发送给所有Peer 更新他们的账本。(当然,因为各节点各自独立执行合约编码,现实是有可能出现不一致的情况。各平台在设计时已包括机制处理这些情况。)

智能合约的编写会用上编码语言。不同平台有不同的语言,例如以太坊用的是Solidity,一种新的合约语言,而Hyperledger Fabric 使用多种,由最初的Go,发展到后来的Node 和Java。

结语

这篇文章主要以区块链的一些共同特性而加以讨论。日后当大家深入研究某一区块链平台时可以找出这三个重要元素:网络、账本和智能合约的功能。

以上就是区块链的基本架构有哪些?一文读懂区块链的基本架构的详细内容,更多关于区块链基本架构的资料请关注脚本之家其它相关文章!

免责声明:本文只为提供市场讯息,所有内容及观点仅供参考,不构成投资建议,不代表本站观点和立场。投资者应自行决策与交易,对投资者交易形成的直接或间接损失,作者及本站将不承担任何责任。!
Tag:区块链   架构   智能合约   账本  

你可能感兴趣的文章

更多

热门币种

  • 币名
    最新价格
    24H涨幅
  • bitcoin BTC 比特币

    BTC

    比特币

    $ 95418.75¥ 664982.81
    +0.1%
  • ethereum ETH 以太坊

    ETH

    以太坊

    $ 3290.24¥ 22930.01
    +0.26%
  • tether USDT 泰达币

    USDT

    泰达币

    $ 0.9995¥ 6.9656
    +0%
  • binance-coin BNB 币安币

    BNB

    币安币

    $ 938.15¥ 6538.06
    +1.16%
  • ripple XRP 瑞波币

    XRP

    瑞波币

    $ 2.0624¥ 14.373
    +0.13%
  • solana SOL Solana

    SOL

    Solana

    $ 144.33¥ 1005.85
    +1.95%
  • usdc USDC USD Coin

    USDC

    USD Coin

    $ 1.0002¥ 6.9704
    +0.02%
  • tron TRX 波场

    TRX

    波场

    $ 0.3119¥ 2.1736
    +0.71%
  • dogecoin DOGE 狗狗币

    DOGE

    狗狗币

    $ 0.1376¥ 0.9589
    -0.72%
  • cardano ADA 艾达币

    ADA

    艾达币

    $ 0.3959¥ 2.759
    +1.7%

币圈快讯

  • 比特币ETF四日流入终结

    2026-01-17 13:23
    据Coin Bureau发推称:比特币现货 ETF 出现 3.947 亿美元净流出,结束了连续四天的资金流入趋势。富达、Bitwise、ARK Invest 和灰度均有资金流出,仅贝莱德录得资金流入。
  • 昨日美国比特币现货ETF净流出3.947亿美元以太坊ETF净流入470万美元

    2026-01-17 12:56
    据Farsideinvestors监测,美国比特币现货ETF净流出3.947亿美元,其中:贝莱德IBIT:+1,510万美元,富达FBTC:-2.052亿美元,BitwiseBITB:-9,040万美元,ARKARKB:-6,940万美元,灰度GBTC:-4,480万美元。此外,美国以太坊现货ETF净流入470万美元,其中:贝莱德ETHA:+1,490万美元,灰度ETHE:-1,020万美元。
  • 美国快餐品牌Steak‘nShake宣布购买1000万美元BTC用于战略比特币储备

    2026-01-17 12:54
    美国快餐品牌Steak‘nShake宣布购买10,000,000美元BTC用于其战略比特币储备。该机构将此模式称为自增强系统,旨在将销售增长、食品质量提升与长期比特币积累相结合。
  • Bitdeer Technologies Group遭集体诉讼

    2026-01-17 12:47
    Kahn Swick & Foti 律师事务所发布公告称,其已针对 Bitdeer Technologies Group 发起集体诉讼,该诉讼现于美国纽约南区联邦地区法院审理中。诉讼称公司在 2024 年 6 月 6 日至 2025 年 11 月 10 日期间未披露重大信息,违反联邦证券法。
  • Solana生态MemeRALPH市值突破4300万美元创历史新高24小时涨超250%

    2026-01-17 12:45
    据GMGN行情数据显示,Solana生态MemeRALPH市值突破4300万美元创下历史新高,24小时涨幅达253%,24小时交易额达1770万美元。RALPH的诞生灵感基于“辛普森一家”里的经典角色RalphWiggum。某RALPH内部人士地址此前花费12.3枚SOL(价值1,668美元)购买了2,880万枚RALPH,这些代币当前价值已达107万美元,实现了642倍的回报。Meme币交易波动巨大,多依赖市场情绪和概念的炒作,并无实际价值或用例,投资者需注意风险。
  • 查看更多