本篇文章主要给网友们分享区块链核心架构的知识,其中更加会对区块链核心架构有哪些进行更多的解释,如果能碰巧解决你现在面临的问题,记得关注本站!
什么是区块链技术?区块链到底是什么?什么叫区块链?
狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。
广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。
【基础架构】
一般说来,区块链系统由数据层、网络层、共识层、激励层、合约层和应用层组成。其中,数据层封装了底层数据区块以及相关的数据加密和时间戳等基础数据和基本算法;网络层则包括分布式组网机制、数据传播机制和数据验证机制等;共识层主要封装网络节点的各类共识算法;激励层将经济因素集成到区块链技术体系中来,主要包括经济激励的发行机制和分配机制等;合约层主要封装各类脚本、算法和智能合约,是区块链可编程特性的基础;应用层则封装了区块链的各种应用场景和案例。该模型中,基于时间戳的链式区块结构、分布式节点的共识机制、基于共识算力的经济激励和灵活可编程的智能合约是区块链技术最具代表性的创新点。
拓展资料:
【区块链核心技术】
区块链主要解决的交易的信任和安全问题,因此它针对这个问题提出了四个技术创新:
1.分布式账本,就是交易记账由分布在不同地方的多个节点共同完成,而且每一个节点都记录的是完整的账目,因此它们都可以参与监督交易合法性,同时也可以共同为其作证。
区块链的分布式存储的独特性主要体现在两个方面:一是区块链每个节点都按照块链式结构存储完整的数据,传统分布式存储一般是将数据按照一定的规则分成多份进行存储。二是区块链每个节点存储都是独立的、地位等同的,依靠共识机制保证存储的一致性,而传统分布式存储一般是通过中心节点往其他备份节点同步数据。
没有任何一个节点可以单独记录账本数据,从而避免了单一记账人被控制或者被贿赂而记假账的可能性。也由于记账节点足够多,理论上讲除非所有的节点被破坏,否则账目就不会丢失,从而保证了账目数据的安全性。
2.非对称加密和授权技术,存储在区块链上的交易信息是公开的,但是账户身份信息是高度加密的,只有在数据拥有者授权的情况下才能访问到,从而保证了数据的安全和个人的隐私。
3.共识机制,就是所有记账节点之间怎么达成共识,去认定一个记录的有效性,这既是认定的手段,也是防止篡改的手段。区块链提出了四种不同的共识机制,适用于不同的应用场景,在效率和安全性之间取得平衡。
区块链的共识机制具备“少数服从多数”以及“人人平等”的特点,其中“少数服从多数”并不完全指节点个数,也可以是计算能力、股权数或者其他的计算机可以比较的特征量。“人人平等”是当节点满足条件时,所有节点都有权优先提出共识结果、直接被其他节点认同后并最后有可能成为最终共识结果。
4.智能合约,智能合约是基于这些可信的不可篡改的数据,可以自动化的执行一些预先定义好的规则和条款。以保险为例,如果说每个人的信息(包括医疗信息和风险发生的信息)都是真实可信的,那就很容易的在一些标准化的保险产品中,去进行自动化的理赔。
在保险公司的日常业务中,虽然交易不像银行和证券行业那样频繁,但是对可信数据的依赖是有增无减。因此,笔者认为利用区块链技术,从数据管理的角度切入,能够有效地帮助保险公司提高风险管理能力。具体来讲主要分投保人风险管理和保险公司的风险监督。
参考资料:
区块链-百度百科
区块链的模型架构是什么?
区块链技术不是单一的创新技术区块链核心架构,而是多种技术整合创新的结果区块链核心架构,其本质是一个弱中心的、自信任的底层架构技术。与传统的互联网技术相比,它的技术原理与模型架构是一次重大革新。在这里,区块链核心架构我们将就区块链的基本技术模型进行剖析。
模型图
区块链技术模型自下而上包括数据层、网络层、共识层、激励层、合约层和应用层。每一层分别具备一项核心功能,不同层级之间相互配合,共同构建一个去中心的价值传输体系
数据层是区块链最底层的释术架构,应用区块链核心架构了公私钥相结合的非对称加密技术,利用散列函数确保信息不被篡改,还采用了链式结构、时间戳技术、梅克尔(Merkle)树等技术对数据区块进行处理,让新旧区块之间相互链接,相互验证,是区块链安全稳定运行的基础。
链乔教育在线旗下学硕创新区块链技术工作站是中国教育部学校规划建设发展中心开展的“智慧学习工场2020-学硕创新工作站 ”唯一获准的“区块链技术专业”试点工作站。专业站立足为学生提供多样化成长路径,推进专业学位研究生产学研结合培养模式改革,构建应用型、复合型人才培养体系。
北大青鸟设计培训:组成区块链基础运算功能的组织架构内容?
随着互联网的都不发展,消费者对区块链技术和数字虚拟货币的认知程度也在不断的提高。
今天,我们就一起来了解一下区块链技术的基础运算方法都有哪些结构构成的。
下面java课程就一起来了解一下具体情况吧。
构成计算技术的基本元素是存储、处理和通信。
大型主机、PC、移动设备和云服务都以各自的方式展现这些元素。
各个元素之内还有专门的构件块来分配资源。
本文聚焦于区块链的大框架:介绍区块链中各个计算元素的模块以及各个模块的一些实现案例,偏向概论而非详解。
区块链的组成模块以下是去中心化技术中各个计算元素的构件块:存储:代币存储、数据库、文件系统/blob处理:有状态的业务逻辑、无状态的业务逻辑、高性能计算通信:数据、价值和状态的连接网络存储作为基本计算元素,存储部分包含了以下构件块。
代币存储。
代币是价值的存储媒介(例如资产、证券等),价值可以是比特币、航空里程或是数字作品的版权。
代币存储系统的主要作用是发放和传输代币(有多种变体),同时防止多重支付之类的事件发生。
比特币和Zcash是两大“纯净”的、只关注代币本身的系统。
以太坊则开始将代币用于各种服务,以实现其充当全球计算中心的理想。
这些例子中代币被用作运营整个网络架构的内部激励。
还有些代币不是网络用来推动自身运行的内部工具,而是用做更高级别网络的激励,但它们的代币实际上是存储在底层架构中的。
一个例子是像Golem这样的ERC20代币,运行在以太坊网络层上。
另一个例子是Envoke的IP授权代币,运行在IPDB网络层上。
数据库。
数据库专门用来存储结构化的元数据,例如数据表(关系型数据库)、文档存储(例如JSON)、键值存储、时间序列或图数据库。
数据库可以使用SQL这样的查询快速检索数据。
传统的分布式(但中心化)数据库如MongoDB和Cassandra通常会存储数百TB甚至PB级的数据,性能可达到每秒百万次写入。
SQL这样的查询语言是很强大的,因为它将实现与规范区分开来,这样就不会绑定在某个具体的应用上。
SQL已经作为标准应用了数十年,所以同一个数据库系统可以用在很多不同的行业中。
换言之,要在比特币之外讨论一般性,不一定要拿图灵完备性说事。
你只需要一个数据库就够了,这样既简洁又方便扩展。
有些时候图灵完备也是很有用的,我们将在“去中心化处理”一节具体讨论。
BigchainDB是去中心化的数据库软件,是专门的文档存储系统。
它基于MongoDB(或RethinkDB),继承了后者的查询和扩展逻辑。
但它也具备了区块链的特征,诸如去中心化控制、防篡改和代币支持。
IPDB是BigchainDB的一个受监管的公开实例。
在区块链领域,也可以说IOTA是一个时间序列数据库。
文件系统/blob数据存储。
这些系统以目录和文件的层级结构来存储大文件(电影、音乐、大数据集)。
IPFS和Tahoe-LAFS是去中心化的文件系统,包含去中心化或中心化的blob存储。
FileCoin、Storj、Sia和Tieron是去中心化的blob存储系统,古老而出色的BitTorrent也是如此,虽然后者使用的是p2p体系而非代币。
以太坊Swarm、Dat、Swarm-JS基本上都支持上述两种方式。
数据市场。
这种系统将数据所有者(比如企业)与数据使用者(比如AI创业公司)连接在一起。
它们位于数据库与文件系统的上层,但依旧是核心架构,因为数不清的需要数据的应用(例如AI)都依赖这类服务。
Ocean就是协议和网络的一个例子,可以基于它创建数据市场。
还有一些特定应用的数据市场:EnigmaCatalyst用于加密市场,Datum用于私人数据,DataBrokerDAO则用于物联网数据流。
处理接下来讨论处理这个基本计算元素。
“智能合约”系统,通常指的是以去中心化形式处理数据的系统[3]。
它其实有两个属性完全不同的子集:无状态(组合式)业务逻辑和有状态(顺序式)业务逻辑。
无状态和有状态在复杂性、可验证性等方面差异巨大。
三种去中心化的处理模块是高性能计算(HPC)。
无状态(组合式)业务逻辑。
这是一种任意逻辑,不在内部保留状态。
用电子工程术语来说,它可以理解为组合式数字逻辑电路。
这一逻辑可以表现为真值表、逻辑示意图、或者带条件语句的代码(if/then、and、or、not等判断的组合)。
因为它们没有状态,很容易验证大型无状态智能合约,从而创建大型可验证的安全系统。
N个输入和一个输出需要O(2^N)个计算来验证。
跨账本协议(ILP)包含crypto-conditions(CC)协议,以便清楚地标出组合电路。
CC很好理解,因为它通过IETF成为了互联网标准,而ILP则在各种中心和去中心化的支付网络(例如超过75家银行使用的瑞波)中广泛应用。
CC有很多独立实现的版本,包括JavaScript、Python、Java等。
BigchainDB、瑞波等系统也用CC,用以支持组合式业务逻辑/智能合约。
三. 区块链系统的核心之一-分布式共识机制
拜占庭将军问题(Byzantine Generals Problem)区块链核心架构,是由莱斯利·兰波特在其同名论文中提出的分布式对等网络通信容错问题。
在分布式计算中,不同的计算机通过通讯交换信息达成共识而按照同一套协作策略行动。但有时候,系统中的成员计算机可能出错而发送错误的信息,用于传递信息的通讯网络也可能导致信息损坏,使得网络中不同的成员关于全体协作的策略得出不同结论,从而破坏系统一致性。这个难题被称为“拜占庭容错”,或者“两军问题”。
拜占庭假设是对现实世界的模型化。拜占庭将军问题被认为是容错性问题中最难的问题类型之一。拜占庭容错协议要求能够解决由于硬件错误、网络拥塞或断开以及遭到恶意攻击,其他计算机和网络可能出现不可预料的行为而带来的各种问题。并且拜占庭容错协议还要满足所要解决的问题要求的规范。
在拜占庭时代有一个墙高壁厚的城邦——拜占庭,高墙之内存放在世人无法想象多的财富。拜占庭被其他10个城邦所环绕,这10个城邦也很富饶,但和拜占庭相比就有天壤之别了。
拜占庭的十个邻居都觊觎它的财富,并希望侵略并占领它。但是,拜占庭的防御非常强大,任何单个城邦的入侵行动都会失败,而入侵者的军队也会被歼灭,使得该城邦自身遭到其他互相觊觎对方的九个城邦的入侵和劫掠。
拜占庭的防御很强,十个城邦中要有一半以上同时进攻才能攻破它。也就是说,如果有六个或者以上的相邻城邦一起进攻,他们就会成功并获得拜占庭的财富。然而,如果其中有一个或者更多城邦背叛了其他城邦,答应一起入侵但在其他城邦进攻的时候又不干了,也就导致只有五支或者更少的城邦的军队在同时进攻,那么所有的进攻城邦的军队都会被歼灭,并随后被其他的(包括背叛他们的那(几)个)城邦所入侵和劫掠。
这是一个由许多不互相信任的城邦构成的一个网络。城邦们必须一起努力以完成共同的使命。而且,各个城邦之间通讯和协调的唯一途径是通过信使骑马在城邦之间传递信息。城邦的决策者们无法聚集在一个地方开个会(所有的城邦的决策者都不互相信任自己的安全会在自己的城堡或者军队范围之外能够得到保障)。
城邦的决策者可以在任意时间以任意频率派出任意数量的信使到任意的对方。每条信息都包含如下的内容:“我城邦将在某一天的某个时间发动进攻,你城邦愿意加入吗区块链核心架构?”。如果收信城邦同意了,该城邦就会在原信上附上一份签名了的或盖了图章的(以就是验证了的)回应然送回发信城邦。然后,再把新合并了的信息的拷贝一一发送给其他八个城邦,要求他们也如此这样做。最后的目标是,通过在原始信息链上盖上他们所有十个城邦的决策者的图章,让他们在时间上达成共识。最后的结果是,会有一个盖有十个同意同一时间发动进攻的图章信息包,和一些被抛弃了的包含部分但不是全部图章的信息包。
在这个过程中首先出现了第一个问题,就是如果每个城邦向其他九个城邦派出一名信使,那么就是十个城邦每个派出了九名信使,也就是在任何一个时间又总计90次的传输,并且每个城市分别收到九个信息,可能每一封都写着不同的进攻时间。
在这个过程中还有第二个问题,就是部分城邦会答应超过一个的攻击时间,故意背叛进攻发起人,所以他们将重新广播超过一条(甚至许许多多条)的信息包,由此产生许多甚至无数的足以淹没一切的杂音。
有了以上两个问题,整个网络系统可能迅速变质,并演变成不可信的信息和攻击时间相互矛盾的纠结体。
拜占庭假设是对现实网络世界的一种模型化。在现实网络世界中由于硬件错误、网络拥塞或断开以及遭到恶意攻击,网络可能出现许许多多不可预料的行为。拜占庭容错协议必须处理这些失效,并且还要使这些协议满足所要解决的问题所要求的规范。
对于拜占庭将军问题中本聪的区块链给出了比较圆满的解决方案。也就是比较圆满的解决了上述的两个问题。
拜占庭将军问题的第一个问题从本质上来讲就是时间和空间的障碍导致信息的不准确和不及时。
区块链对于第一个问题的解决方案是利用分布式存储技术和比特流技术(BT技术,一种新型的点对点传输技术,具有节点同时作为客户端和服务器端和没有中心服务器等特点),将整个网络系统内的所有交易信息汇总为一个统一的,分布式存储的,近乎实时同步更新的电子总账。统一的分布式共同账本就解决了空间障碍问题;而近乎同步进行的,实时的,持续的对所有账本备份的更新、对账则解决了时间障碍问题。
这个过程较具体一点的描述大概是将区块链系统内所有的交易活动的记录数据统一于一种标准化的总帐上;区块链系统的每一个节点都会保存一份总帐的备份;所有总帐的备份都是在实时的,持续的更新、对账、以及同步着。区块链系统的每一个节点能在这本总帐里记上添加记录;每一笔新添加的记录都会实时的广播到区块链系统内;所以在每一个节点上的每一份总帐的备份都是几乎同时更新的,并且所有的总帐的备份保持着同步。
拜占庭将军问题的第二个问题从本质上来讲就是关于信息过量问题和信息干扰问题。信息过量和信息干扰问题导致决策延迟,甚至决策系统崩溃而无法决策。
区块链对于第二个问题的解决方案是区块链系统的任何一个节点在发送每一笔新添加的记录时需要附带一条额外的信息。对区块链系统的任何一个节点来说这条额外的信息的获得都是有成本的,并且只能有一个节点可以获得。这样就解决了区块链系统的任何一个节点新添加额外信息时的信息多且乱而无法达成一致的问题。在这里,区块链系统的任何一个节点获得那条附带的额外的信息的过程就是著名的工作量证明机制。
共识机制主要解决区块链系统的数据如何记录和如何保存的问题。工作量证明机制就是要求区块链系统的节点通过做一定难度的工作得出一个结果的过程。
区块链系统中某节点生成了一笔新的交易记录,并且该节点将这笔新的交易记录向全网广播。全网各个节点收到这个交易记录并与其他所有准备打包进区块的交易记录共同组成交易记录列表。在列表内先对所有交易进行两两的哈希计算;再对以获得的哈希值进行哈希计算获得Merkle树和Merkle树的根值;把Merkle树的根值及其他相关字段组装成区块头。
各个节点将区块头的80字节数据加上一个不停的变更的区块头随机数一起进行不停的哈希运算(实际上这是一个双重哈希运算);不停的将哈希运算结果值与当前网络的目标值做对比,直到哈希运算结果值小于目标值,就获得了符合要求的哈希值,工作量证明也就完成了。
分布式的区块链系统是一个动态变化的系统(硬件的运算速度的增长,节点参与网络的程度的变化)。系统的不断变化必然带来系统的算力的不断变化。而算力的变化又会导致通过消耗算力(工作)来获得符合要求的哈希值的速度的不同。最终的结果会是区块链的增长速度会有巨大的不同。这是一个很大的问题。为了解决这个问题,区块链系统自动根据算力的变化对工作难度进行调整。也就是采用移动平均目标的方法来确定,难度控制为每小时生成区块的速度为某一个预定的平均数。
在区块链系统中一个符合要求的哈希值是由N个前导零构成,零的个数取决于网络的难度值。为了使区块的形成时间控制在大约十分钟左右,区块链系统采用了固定工作难度的难度算法。难度值每2016个区块调整一次零的个数。
新的难度值是根据前2015个区块(理论上应该是2016个区块,由于当初程序编写时的失误造成了用2015而不是2016)的出块时间来计算。
难度 = 目标值 * 前2015个区块生成所用的时间 / 1209600 (两周的秒钟数)
这样通过规定的算法,区块链系统就保证所有节点计算出的难度值都一致,区块的形成时间大约一致在十分钟左右。
(1)结果不可控制。其依赖机器进行哈希函数的运算来获得结果;计算结果是一个随机数;没有人能直接控制计算的结果。
(2)计算具有对称性。就是结果的获得和结果的验收需要的工作量是不同的。计算出结果所需要的工作量远远大于验收结果所需要的工作量。
(3)计算的难度自动控制。为了使区块的形成时间控制在大约十分钟左右,区块链系统自动控制了每一个符合要求的哈希获得为大约在十分钟左右。
第一,方法简单易行。
第二,系统达成共识容易,节点间不需要太多的信息交换。
第三,系统比较牢固可靠,任何破坏系统的企图都需要投入大到得不偿失的成本。
第一,消耗大量的算力,也就是浪费能源和其他资源。
第二,区块的确认时间比较长,并且难以缩短。
第三,新创立的区块链非常容易受到算力攻击。
第四,容易产生区块链分叉,稳定的区块链需要多个确认,并且这种状况可能不断持续下去。
第五,算力的逐渐集中导致与去中心化的系统设计基础的冲突日益明显。
权益证明机制是一种工作量证明机制的替代方法,试图解决工作量计算浪费的问题.目前其成功的应用是点点币区块链系统。
权益证明不要求区块链系统的节点完成一定数量的计算工作,而是要求区块链系统的节点对某些数量的钱展示所有权。
权益证明机制首先应用于点点币区块链系统中。
点点币区块链系统的区块生成时,节点需要构造一个“钱币权益”交易,即把自己的一些钱币和预先设定的奖励发给自己。进行哈希计算时,哈希值的计算只同交易输入、一些附加的固定数据以及当前时间(是一个表示自1970年1月1日距离当前时刻的秒数的正数)有关。然后,根据类似工作量证明的要求来检查这个哈希值是否正确。
点点币区块链系统的权益证明机制除了设定了哈希计算难度与交易输入的“币龄”成反比外,其与工作量证明机制非常类似。其中,币龄的定义为交易输入大小和它存在时间的乘积。权益证明机制中哈希值只和时间和固定的数据有关,因而没有办法通过多完成工作来快速获取它。
每个点点币区块链系统的交易的输出都有一定的几率来产生有效的正比于币龄和交易货币数量的工作。
第一,缩短了共识达成的时间。
第二,不再需要大量消耗能源。
第一,还是需要哈希计算。
第二,所有的确认都只是一个概率上的表达,而不是一个确定性的事情,有可能受到其他攻击影响。
授权股份证明机制类似于权益证明机制,是比特股BitShares采用的区块链公识算法。授权股份证明机制是民主选举和轮流执政相结合方式来确定区块的产生。
授权股份证明机制是先由节点选举若干代理人,由代理人验证和记账。其他方面和权益证明机制相似。
每个节点按其持股比例拥有相应的影响力,51%节点投票的结果将是不可逆且有约束力的。为达到及时而高效的方法达到51%批准的目标。每个节点可以将其投票权授予一名节点。获票数最多的前100位节点按既定时间表轮流产生区块。每名节点分配到一个时间段来生产区块。
所有的节点将收到等同于一个平均水平的区块所含交易费的10%作为报酬。
第一,大幅缩小参与验证和记账节点的数量,
第二,可以快速实现共识验证。
主要缺点就是仍然无法摆脱对代币的依赖。
在分布式计算上,不同的计算机透过讯息交换,尝试达成共识;但有时候,系统上协调计算或成员计算机可能因系统错误并交换错的讯息,导致影响最终的系统一致性。
拜占庭将军问题就根据错误计算机的数量,寻找可能的解决办法,这无法找到一个绝对的答案,但只可以用来验证一个机制的有效程度。
而拜占庭问题的可能解决方法为:
在 N ≥ 3F + 1 的情况下一致性是可能解决。其中,N为计算机总数,F为有问题计算机总数。信息在计算机间互相交换后,各计算机列出所有得到的信息,以大多数的结果作为解决办法。
第一,系统运转可以摆脱对代币的依赖,共识各节点由业务的参与方或者监管方组成,安全性与稳定性由业务相关方保证。
第二,共识的时延大约在2到5秒钟。
第三,共识效率高,可满足高频交易量的需求。
第一,当有1/3或以上记账人停止工作后,系统将无法提供服务;
第二,当有1/3或以上记账人联合作恶,可能系统会出现会留下密码学证据的分叉。
小蚁改良了实用拜占庭容错机制。该机制是由权益来选出记账人,然后记账人之间通过拜占庭容错算法来达成共识。
此算法在PBFT基础上进行了以下改进:
第一,将C/S架构的请求响应模式,改进为适合P2P网络的对等节点模式;
第二,将静态的共识参与节点改进为可动态进入、退出的动态共识参与节点;
第三,为共识参与节点的产生设计了一套基于持有权益比例的投票机制,通过投票决定共识参与节点(记账节点);
第四,在区块链中引入数字证书,解决了投票中对记账节点真实身份的认证问题。
第一,专业化的记账人;
第二,可以容忍任何类型的错误;
第三,记账由多人协同完成,每一个区块都有最终性,不会分产生区块链分叉;
第四,算法的可靠性有严格的数学证明来保证;
第一,当有1/3或以上记账人停止工作后,区块链系统将无法提供服务;
第二,当有1/3或以上记账人联合作恶,且其它所有的记账人被恰好分割为两个网络孤岛时,恶意记账人可以使区块链系统出现分叉,但是会留下密码学证据;
瑞波共识机制是全体节点选取出特殊节点组成特殊节点列表,由特殊节点列表内的节点达成共识。
初始特殊节点列表就像一个俱乐部,要接纳一个新成员,必须由51%的该俱乐部会员投票通过。共识遵循这核心成员的51%权力,外部人员则没有影响力。波共识机制将股东们与其投票权隔开,并因此比其他系统更中心化。
瑞波共识机制参与共识形成的只有特殊节点,大大的减少了共识形成的时间。在实践中,瑞波区块链系统达成共识需要3-6秒钟,远远快于比特币区块链系统的10分钟。同时瑞波区块链系统对并发交易的处理达到每秒数万笔,而比特币区块链系统只有每秒7笔。
瑞波共识机制处理节点意见分歧的方式也是不同的。瑞波的信任节点对于新区块的创造进行协商的时间是区块链更新前。先协商,达成共识后再对区块链进行更新。
由于瑞波共识机制的共识是由特殊节点达成的,普通节点并不需要维护一个完整的历史账本。各个节点可以根据自己的业务需要选择同步同步完整的历史账本或者任意最近几步的账本。这也意味着对存储空间和网络流量需求的减少。
瑞波共识机制取消了挖坑的发行货币机制,采用了原生货币(1000亿枚)的方式发币,从而大量的避免了挖矿的天量能耗。
区块链技术框架有哪些?
当前主流的区块链架构包含六个层级:网络层、数据层、共识层、激励层、合约层和应用层。图中将数据层和网络层的位置进行了对调区块链核心架构,主要用途将在下一节中详述。
网络层:区块链网络本质是一个P2P(Peer-to-peer点对点)的网络区块链核心架构,网络中的资源和服务分散在所有节点上,信息的传输和服务的实现都直接在节点之间进行,可以无需中间环节和服务器的介入。每一个节点既接收信息,也产生信息,节点之间通过维护一个共同的区块链来同步信息,当一个节点创造出新的区块后便以广播的形式通知其他节点,其他节点收到信息后对该区块进行验证,并在该区块的基础上去创建新的区块,从而达到全网共同维护一个底层账本的作用。所以网络层会涉及到P2P网络,传播机制,验证机制等的设计,显而易见,这些设计都能影响到区块信息的确认速度,网络层可以作为区块链技术可扩展方案中的一个研究方向;
数据层:区块链的底层数据是一个区块+链表的数据结构,它包括数据区块、链式结构、时间戳、哈希函数、Merkle树、非对称加密等设计。其中数据区块、链式结构都可作为区块链技术可扩展方案对数据层研究时的改进方向。
共识层:它是让高度分散的节点对区块数据的有效性达到快速共识的基础,主要的共识机制有POW(Proof Of Work工作量证明机制),POS(Proof of Stake权益证明机制),DPOS(Delegated Proof of Stake委托权益证明机制)和PBFT(Practical Byzantine Fault Tolerance实用拜占庭容错)等,它们一直是区块链技术可扩展方案中的重头戏。
激励层:它是大家常说的挖矿机制,用来设计一定的经济激励模型,鼓励节点来参与区块链的安全验证工作,包括发行机制,分配机制的设计等。这个层级的改进貌似与区块链可扩展并无直接联系。
合约层:主要是指各种脚本代码、算法机制以及智能合约等。第一代区块链严格讲这一层是缺失的,所以它们只能进行交易,而无法用于其他的领域或是进行其他的逻辑处理,合约层的出现,使得在其他领域使用区块链成为了现实,以太坊中这部分包括了EVM(以太坊虚拟机)和智能合约两部分。这个层级的改进貌似给区块链可扩展提供了潜在的新方向,但结构上来看貌似并无直接联系
应用层:它是区块链的展示层,包括各种应用场景和案例。如以太坊使用的是truffle和web3-js.区块链的应用层可以是移动端,web端,或是是融合进现有的服务器,把当前的业务服务器当成应用层。这个层级的改进貌似也给区块链可扩展提供了潜在的新方向,但结构上来看貌似并无直接联系。
链乔教育在线旗下学硕创新区块链技术工作站是中国教育部学校规划建设发展中心开展的“智慧学习工场2020-学硕创新工作站 ”唯一获准的“区块链技术专业”试点工作站。专业站立足为学生提供多样化成长路径,推进专业学位研究生产学研结合培养模式改革,构建应用型、复合型人才培养体系。
什么是区块链技术?区块链技术的核心构成是什么?
从技术的角度区块链核心架构,架构的角度,用通俗的语言来跟大家讲讲,区块链核心架构我对区块链的一些理解。
究竟啥是区块链?Block chain,一句话来说,区块链是一个存储系统,存储系统更细一点,区块链是一个没有管理员,每个节点都拥有全部数据的分布式存储系统。
那常见的存储系统,是什么样子的呢?
如上图所示,底部是数据,上面可以写入数据。一个空间存储数据,一个软件管理数据,提供接口写入数据,这就是存储系统。比如MySQL就是最常见的存储系统。
普通的存储系统,容易存在什么问题呢?至少有两个常见的问题
第一个是非高可用的问题,数据存在一个地方很危险。用技术的话说,就是数据不高可用。
第二个问题是,它存在写入的单点,写入点只有一个。用技术的话说,就是它是一个单点控制。
那普通的存储系统通常是如何解决这两个问题的呢?
首先看一下如何保证高可用?
普通的存储系统通常是用“冗余”的方式来解决高可用问题的。图上图所示如果能够把数据复制成几份,冗余到多个地方,就能够保证高可用。一个地方的数据挂了,另外的地方还存有数据,例如MySQL的主从集群就是这个原理,磁盘的RAID也是这个原理。
这个地方需要强调的两点是区块链核心架构:数据冗余,往往会引发一致性的问题
1、例如MySQL的主从集群中中其实读写会有延时的,它其实就是有一个短的时间内读写不一致。这个是数据冗余,带来的一个副作用。
2、第二个点是数据冗余往往会降低写入的效率,因为数据同步也是需要消耗资源的。区块链核心架构你看单点写入,如果加了两个从库之后,其实写入的效率会受影响。普通的存储系统,就是采用冗余的方式,保证数据的高可用的。
那么第二个问题,普通的存储系统,能否多点写入呢?
答案是可以的,比如说以这个图为例区块链核心架构:
其实MySQL的话可以做一个双主的主从同步,双主的主从同步,两个节点,同时可以写入。如果要做多机房多活的数据中心,其实多机房多活也是进行数据同步的。这里要强调的是多点写入,往往会引发写写冲突的一致性问题,以MySQl为例,假设有一个表的属性是自增ID,那么现在数据库中的数据是1234,那么其中一个节点写入,插入了一条数据,那它可能变成5了,然后这5条数据,向另外一个主节点进行数据同步,同步完成之前,如果另外一个写入节点,也插入了一条数据,也生成了一条这个自增id为5的数据。那么,生成之后,往另外一个节点同步,然后同步数据到达之后会与本地的这两条5冲突,就会同步失败,会引发写写的一致性冲突问题。这个多点写入的话都会出现这个问题。
多点写入,如何保证一致?
维新“天鹅大咖课”给你更多的技术干活
区块链核心架构的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于区块链核心架构有哪些、区块链核心架构的信息别忘了在本站进行查找喔。
标签: #区块链核心架构
评论列表