主页 > imtoken官方 > 1.3 区块链分类与架构

1.3 区块链分类与架构

imtoken官方 2023-04-30 07:41:54

通过以上的了解,我们知道区块链系统其实是一个维护公共数据账本的系统,所有的技术单元都是为了更好的维护这个公共数据账本而设计的。 采用共识算法实现节点账本数据的一致性; 通过密码算法保证账本数据的不可篡改和数据传输的安全性; 通过脚本系统扩展了账本数据的表达范围。 我们甚至可以认为,区块链系统实际上是一个专门设计的数据库系统或分布式数据库系统,其中可以存储数字货币、逻辑更复杂的智能合约、范围更广的各种业务数据。 在区块链系统的发展过程中,也经历了这样一个阶段。 从比特币开始,早期的区块链系统都是面向数字货币的,比如比特币、莱特币等,现阶段我们可以认为区块链系统是支持数字货币合约的系统; 后来,出现了一个更灵活的系统,可以支持自定义智能合约。 其代表作是以太坊,可以认为是比特币等数字货币体系的延伸。 但以太坊仍然内置了对数字货币的支持,延续了比特币体系的金融特性,也使得以太坊的应用更加面向金融领域; 之后的代表就是Hyperledger项目,尤其是Fabric子项目。 在这个系统中,它超越了金融领域的应用,支持各个领域的数据定义。 我们将这三个阶段称为区块链系统的1.0、2.0、3.0架构时期。 为了让大家在开发过程中对区块链系统有一个整体的概念,在本节中,我们对常见的区块链系统的架构进行描述,并从不同的角度对区块链系统进行分类。

1.3.1 区块链架构

一、区块链1.0架构

如前所述,现阶段的区块链系统主要用于实现数字货币。 让我们看一下示意图。

如图所示,在整个架构中,分为核心节点和前端工具。 这里要提到核心节点中的“矿工”功能。 在1.0架构体系中,矿工主要承担两个任务:

第一种是在获得区块打包权后,将内存池中的交易数据(在网络中发送但尚未确认入块的交易数据,属于待确认的交易数据)打包到区块中通过竞争获得数据,并广播给其他节点;

二是接受系统对打包行为的数字货币奖励,使系统通过这种奖励方式完成新币的发行。

image.png

在前端工具中,最明显的是钱包工具。 提供钱包工具,供用户管理自己的账户地址和余额; 浏览器用于查看当前区块链网络发生的数据,如最新的区块高度、内存池中的交易数量、单位时间内的网络处理能力等; RPC客户端和命令行界面用于访问核心节点的功能。 此时核心节点相当于一台服务器,通过RPC服务接口提供功能调用。

2. 区块链2.0架构

区块链2.0架构的代表产品是以太坊,那么我们可以套用以太坊的架构来说明,先看示意图:

image.png

如图所示,与1.0架构相比,最大的特点就是对智能合约的支持。 在以太坊中,我们使用智能合约开发工具来开发合约程序,编译成字节码,最后部署到以太坊区块链上。 在分类帐中。 部署的智能合约在称为“以太坊虚拟机”的虚拟机上运行。 正是通过这种智能合约的实现,扩展了区块链系统的功能。 同时我们也可以看到,以太坊还是支持数字货币的,所以在应用工具中也有钱包工具。

3. 区块链3.0架构

在3.0的框架下,超越数字货币或金融的应用范围,以区块链技术为泛解决方案,可应用于其他领域,如行政管理、文化艺术、企业供应链、医疗健康、物联网、产权登记等,可以认为是面向行业的应用。

行业应用普遍需要企业级属性,如身份认证、授权、加密传输等,同时对数据处理性能也有要求。 所以企业级场景的应用往往是联盟链或者私有链。 . 我们先看一下原理图:

image.png

如图所示,首先,在3.0架构中,数字货币不再是必选组件。 当然,如果有必要,我们也可以通过智能合约来实现数字货币。 与之前的架构相比,最大的特点是增加了网关控制,实际上增加了对安全保密支持的需求,通过数据审计加强数据的可靠性管理。

在3.0架构中,其实可以看做是一套框架。 通过框架的配置和二次开发,适应各行各业的需求。 比如图中的“可插拔共识”,就是说共识机制是不固定的。 , 但用户可以自行选择配置。

1.3.2 区块链分类

1.根据网络范围

根据网络范围可分为公有链、私有链和联盟链。

(一)公链

所谓公有制,就是完全对外开放。 任何人都可以任意使用。 没有权限设置,也没有身份认证。 比特币是一个公共链网络系统。 使用比特币系统时,只需下载相应的软件客户端,创建钱包地址,转账交易,挖矿等操作即可。 这些功能可以自由使用。 由于公链系统完全没有第三方管理,它依赖于一套预先约定好的规则来保证每个参与者都可以在不受信任的网络环境中发起可靠的交易。 一般来说,公链适用于任何需要公众参与和数据最大透明度的系统比特币系统架构,如数字货币系统、众筹系统、金融交易系统等。

这里需要注意的是,在公链环境下,节点数量不固定,节点在线与否不可控,甚至无法保证节点是否为恶意节点。 我们在讲解区块链的大体流程时,提到了一个问题。 在这种情况下,我们如何知道数据已被大多数节点写入并确认? 事实上,在公链环境下,这个问题并没有很好的解决方案。 目前,最合适的方式是不断地相互同步。 最终,网络中大多数节点形成的链是同步的,区块数据一致被识别。 主链,也就是所谓的最终一致性。

(2) 私有链

私有链是与公有链相对的一个概念。 所谓私有链,是指不对外开放,只在组织内部使用的系统,比如企业票据管理、会计审计、供应链管理等,或者一些政务管理系统。 私有链在使用过程中,通常会有注册需求,即需要提交身份认证,需要一套权限管理体系。 可能有些朋友会有疑惑。 比特币、以太坊等系统虽然都是公链系统,但是如果这些系统都建立在不与外网相连的局域网中,这不就成了私有链了吗? 从网络传输范围来看是可以算的,因为这个网络只要一直和外网隔离,一直只能自己使用,但是因为系统本身没有任何身份认证和权限设置,所以从技术角度来看,这种情况只能算是公链系统客户端搭建的私有测试网。 例如以太坊可以用来搭建私有链环境。 通常这种情况可以用来测试公链系统。 当然,它也可以适用于企业应用。

在私有链环境下,节点的数量和节点的状态通常是可控的,所以在私有链环境下,一般不需要通过竞争来筛选区块数据的加壳者,更加节能环保可以采用友好的方式,比如在介绍中提到的PoS(Proof of Stake,权益证明)、DPoS(Delegate Proof of Stake,权益证明)和PBFT(Practical Byzantine Fault Tolerance,实用拜占庭容错)上述共识机制。

(3) 联盟链

联盟链的网络范围介于公有链和私有链之间。 它通常用于具有多个成员角色的环境,例如银行之间的支付结算、企业之间的物流等。在这些场景中,具有不同权限的成员参与。 与私有链一样,联盟链系统一般都有身份认证和权限设置,节点数量往往是确定的,非常适合企业或机构之间的交易处理。 联盟链不必完全控制。 比如在政务系统中,有些数据是可以对外公开的,所以可以部分开放。

由于联盟链一般用于特定组织之间,像私有链一样,节点的数量和状态也是可控的,通常采用更节能环保的共识机制。

2.根据部署环境

(1) 主链

所谓主链,就是真正部署在生产环境中的区块链系统。 在正式发布之前,软件会经过多次内部测试版本,找出一些可能存在的bug,并用于内部演示,查看效果。 正式版要到年底才会发布。 主链也可以说是由官方客户端组成的区块链网络。 只有主链才会真正得到推广和使用,各项功能设计相对完善。 另外,有时候,区块链系统会因为各种原因出现分叉,比如挖矿时临时出现的小分叉等,这时最长的原链称为主链。

(2) 测试链

这很容易理解。 是开发者为了方便大家学习和使用而提供的用于测试目的的区块链网络,例如比特币测试链、以太坊测试链等。当然,并不是说区块链开发者必须提供测试链,用户也可以自行搭建测试网络。 测试链中的功能设计与生产环境中的主链可能存在一些差异。 例如,在主链上采用工作量证明算法进行挖矿,在测试链上可以更改算法,更方便测试和使用。

3.根据对接类型

(1)单链

能够独立运行的区块链系统可以称为“单链”,比如比特币主链和测试链; 以太坊主链和测试链; 莱特币主链和测试链; 联盟链等。这些区块链系统具有完整的组件模块,形成一个自成一体的系统。 大家要注意,对于一些软件系统,比如基于以太坊的众筹系统或者财务担保系统,这些只能算是智能合约应用,不能算是一个独立的区块链系统。 应用程序的运行需要一个独立的区域。 区块链系统的支持。

(2) 侧链

侧链是区块链系统的一种跨链技术。 这个概念主要是由比特币侧链发起的。 随着技术的发展,除了比特币,越来越多的区块链系统也应运而生。 每个系统都有自己的优势和特点。 不同的链条如何结合,打通信息孤岛,取长补短? 侧链就是这样一种技术。

以比特币为例,比特币系统主要是为了实现数字加密,业务逻辑也固化了比特币系统架构,所以不适合实现其他功能,比如金融智能合约、小额快速支付等。但是,比特币是目前使用规模最大的公链系统,在可靠性和去中心化保障方面具有相当大的优势。 那么如何利用比特币网络的优势运行其他区块链系统呢? 考虑在现有的比特币区块链之上构建一个新的区块链系统。 新系统可以具备很多比特币不具备的功能,如隐私交易、快速支付、智能合约、签名覆盖等,并且可以与比特币主链进行通信。 简单来说,侧链是一种基于锚定比特币的新型区块链。 目前锚定比特币的侧链包括ConsenSys的BTCRelay、Rootstock、BlockStream的元素链。 大家要注意,侧链本身就是一个区块链系统,侧链不一定非要用比特币作为参考链。 这是一个通用的技术概念。 比如以太坊可以作为其他链的参考链,也可以自己作为侧链和其他链进行锚定。 其实抛开链和网的概念,就是不同的软件之间相互提供接口,增强软件之间的功能互补性。 我们看一下侧链的示意图:

image.png

通过这个简单的示意图,我们可以看出区块链系统和侧链系统本身是一个独立的链系统,两者之间可以按照一定的协议进行数据交互。 这样,侧链就可以起到扩展主链功能的作用,很多在主链中不方便实现的功能都可以在侧链中实现,侧链可以通过数据增强其可靠性与主链的交互。

(3) 跨链

如今,可以说我们的生活几乎离不开互联网,仅仅是互联带来的能量就已经如此巨大。

区块链也是如此。 目前各种区块链系统层出不穷,有的只实现数字货币,有的实现智能合约,有的实现金融交易平台,有的是公链,有的是联盟链等等。 这么多的链条,它们五光十色,功能各异,充满想象力,不断刷新着新的应用方式。 那么,如果这些链系统能够相互联系起来,会发生什么样的化学反应呢? 区块链应用不同于传统软件,具有数据不可篡改、完整性证明、自动网络共识、智能合约等独特属性,从最初的数字货币到未来可能的区块链可编程社会,这些都不会既改变了生活服务方式,也促进了社会治理结构的变革。 如果每条链条都是一根神经,一旦连接起来,就会像一个神经系统,为我们的社会发展带来更新。 智力水平。

此外,从技术角度来看,区块链系统之间的互联互通可以相得益彰,每一类系统都会各有优缺点,在功能上相互补充,甚至相互验证,可以有很大的提升。 增强系统可靠性和性能。

当我们坐上飞机,开始一段美妙的旅程,是不是想起了最初的莱特兄弟; 当我们坐在高铁上,享受着高效的城市穿梭时,我们是否想起了最初的蒸汽机? 在屋子里,享受宁静的睡眠时,你会想起原来的茅草屋吗? 是的,世界给了我们很多原材料。 我们用原材料制造出一个又一个工具,并用它们来改造世界,改善我们的生活。 区块链就是这样一种改造世界的原材料,有人用它创造了第一个工具,它的名字叫比特币。