精华内容
下载资源
问答
  • 区块链系统架构与运行2.数据层、网络层与共识层3.激励层、合约层与应用层二、区块的概念和识别1.区块与区块头2.区块的识别三、创世区块与区块的连接1.创世区块2.区块的连接四、区块链的数据结构1.区块链的结构基础...

    一、区块链的系统框架

    1.区块链的系统架构与运行

      区块链的系统架构,主要是由数据层、网络层与共识层构成的底层网络,由数字货币、智能合约与其他“去中心化”组织等构成的应用层。下图为区块链的系统架构图。
    在这里插入图片描述
      区块链是一个去中心的、分散式的网络账本,所以其系统架构也符合网络的基本特点。该网络账本构成一个系统,该系统最底层、最基础的是数据结构。这个结构就是将信息和数据采用一定的方式、格式组织起来,输入到区块链系统中并由其处理。当统一方式的数据输入后,网络层便开始连链接,在全网的节点之中进行广播、验证,然后在共识层中由全网达成共识而构建起区块。所有区块进行“组装”,最终构建起各种系统产品的运行平台,如公有链、私有链与联盟链等。而数字货币、智能合约、去中心化组织等都是区块链平台上运行的产品。

      在区块链的系统架构中,各个层次以交易为中心构建起一个完整的相互关联的循环体系,这一循环模式是这样的:
      首先,应用层的数字货币、智能合约等产品对于底层网络来说,传输的全是数据,即应用层相当于数据层的数据输入源。这些数据必须进入数据层,按照区块链的格式进行封装。
      其次,在数据封装完成后,就进入分布式(P2P)网络进行广播,由全网节点通过一定机制进行确认。
      最后,当全网达成共识之后,区块构建完成并连接到主链之上,完成一次完整交易的流程,并开始下一次交易的循环。

      这一循环过程,从技术角度讲,区块链中的区块是一种记录交易的数据结构,反映了一笔交易的资金流向。系统中已经达成交易的区块连接在一起形成了一条主链,所有参与计算的节点都记录了主链的信息,区块所承载的任务数据具体包括:交易双方私钥、交易数量、电子货币数字签名等。前一个区块形成的散列用来将区块连接起来,实现过往交易的顺序排列。随机数是交易达成的核心,所有“矿工”节点竞争计算随机数,最快得到答案的节点生成一个新的区块,并广播到所有节点进行更新,如此完成一笔交易,然后开始新的循环。

    2.数据层、网络层与共识层

      数据层封装了底层数据区块的链式结构以及相关的非对称公私钥数据加密、时间戳等技术,这是整个区块链技术中最底层的数据结构。

      网络层包括分布式组网机制、数据传播机制和数据验证机制等,由于采用了完全的P2P组网技术,意味着区块链具有自动组网功能。

      共识层主要包括封装网络节点的各类共识机制算法。共识机制算法是区块领导核心技术,决定了到底有谁来记账,而且记账者选择的方式将会影响整个系统的安全性和可靠性。知名的有**工作量证明机制(PoW)、权益证明机制(PoS)、委托权益证明机制(DPoS)**等。

    3.激励层、合约层与应用层

      激励层将经济因素集成到区块链技术体系中,主要包括经济激励的发行机制和分配机制,该层主要出现在公有链、私有链中。激励机制往往也是一种博弈机制,让更多节点愿意遵守规则。

      合约层主要封装各类脚本、算法和智能合约,是区块链可编程特性的基础。

      应用层封装了区块链的各种应用场景和案例。 在该模型中,基于时间戳的链式区块结构、分布式节点共识机制、基于共识机制的经济激励和灵活可编程的智能合约是区块链技术最具代表性的和创新点。

    二、区块的概念和识别

    1.区块与区块头

      区块是区块链的基本组成单元,它由一个包含元数据的区块头和紧跟其后的构成区块主体的一系列交易组成。 区块的基本数据结构如下表所示。
    在这里插入图片描述
      区块头由三组区块元数据组成。 第一组元数据引用父区块哈希值的数据,这组元数据用于将该区块与区块链中前一区块相连接。第二组元数据,即难度、时间戳和随机数(Nonce),其与挖矿竞争相关。第三组元数据是梅克尔树根,一种用来有效地总结区块中所有交易的数据结构。区块头的数据结构如下表所示。
    在这里插入图片描述

    2.区块的识别

      区块可以通过两种方式被识别:区块哈希值区块高度
      区块主标识符是它的加密哈希值,通过安全散列算法-256(SHA-256)对区块头进行二次哈希计算而得到的数字指纹,所产生的“32字节”哈希值被称为区块哈希值。区块哈希值可以唯一、明确地标识一个区块,并且任何节点通过简单地对区块头进行哈希计算都可以独立地获取该区块哈希值。
      区块哈希值可能会作为区块元数据的一部分被存储在一个独立的数据库表中,以便于索引以及更快地在在磁盘中检索区块。

      区块在区块链中的位置即区块高度,区块高度可以识别区块。
      区块高度和区块哈希值不同之处在于,一个单一的区块有一个固定、明确的区块高度,但是两个或两个以上的区块也可能有相同的区块高度,并在区块链里争夺同一位置。一个区块的区块哈希值能唯一地识别一个特定的区块,但一个区块高度却不一定能识别出唯一的区块。

    三、创世区块与区块的连接

    1.创世区块

      创世区块是区块链里面所有区块的共同祖先,意味着从任一区块循链向后回溯,最终都将到达创世区块。 每一个节点都“知道”创世区块的哈希值、结构、被创建的时间和里面的交易。
      因此,每个节点都把该区块作为区块链的首区块,从而构建了一条安全的、可信的区块链根,每一个节点都包含创世区块,永远不会被改变。

    2.区块的连接

      当某个节点接收到传入区块时,它会验证这些区块,然后链接到现有的区块链上。为了建立这个链接,该节点将检查传入的区块头并寻找该区块的“父区块哈希值”。
      每个参与节点都可以保存整个区块链的副本,只要有参与节点存在,区块链数据就不会丢失。区块链上的每个区块都可以用来记录货币、股权、债券、数字签名、数字合约以及其他任何数字化内容。

    四、区块链的数据结构

    1.区块链的结构基础

      首先,区块链的数据结构是在SHA-256支持下实现的;其次,在区块对交易封装过程中,采用高效的梅克尔树算法,一步一步地将繁杂的信息进行归纳和简化;再次,为了保证区块的顺序链接,需要采用时间戳机制在区块中写入时间参数;最后,为了达成共识机制,并使全网参与的“挖矿”工作顺利进行,系统在PoW共识机制下采用了难度目标和随机数两种设计,保证系统在一个可靠的区间内运转。

    在这里插入图片描述

    2.哈希值、梅克尔根等数据及作用

      哈希算法将任意长度的二进制值映射为固定长度的较小二进制值,这个较小的二进制值称为哈希值。一段明文哪怕只更改一个字母,都将产生不同的哈希值。
      哈希函数的单向、输出数据长度固定等特征使它可以生成消息或者数据,而且哈希算法和哈希值一般用于快速查找和加密算法。
      哈希算法应用在区块中,既减小了区块存储的数据量,也不影响对数据的链接访问。

      每个数据区块包含区块头和区块体,区块头封装了当前版本号、前一区块哈希值、当前区块PoW要求的随机数(Nonce)、时间戳以及梅克尔根信息。区块体包括当前去看经过验证的、区块创建过程中生成的所有交易记录;这些记录就是通过梅克尔树的哈希过程生成唯一的梅克尔根后,并记入了区块头中。
      梅克尔根,是指梅克尔树的根,因为梅克尔树在计算的过程中主要用到哈希算法,或称为梅克尔哈希树。

    3.难度确认、运行及其作用

      工作量证明机制是一个可以让每个参与者参与交易验证的方式,为形成一个多方共同维护并共享同一份记录交易的账本,一个基于零信任基础、去中心化的P2P网络系统。
      工作量证明是让任一参与节点花费时间和运算资源来计算一组数学公式的结果,一旦这个结果被计算出来,其他参与节点也可用相关的数学公式去验证这个值是否有效。进行PoW计算的过程也被形象地称为“挖矿”,参与节点被成称为“矿工”,计算过程如下:
      每个区块的区块头包含许多固定值,只有随机数值为随机值,因此每个节点进行PoW计算时,通过不断替换这个随机值来让这个区块的区块头哈希值小于一个被设定好的难度目标值。当最接近难度目标值的哈希值产生后,该“矿工”可以向全网广播,如果同意时间获得超过51%节点的认可,意味着该“矿工”完成了一个新区块,可以将其链接到区块链上,其他“矿工”再以这一个区块为父区块进行下一个区块的运算。

      区块链中的难度值,是指节点要运算出低于难度目标值的哈希值,平均花费的时间,即平均要完成一次PoW计算所用的时间。
      比特币的难度值是可以动态调整的,目前每产生2016个区块会调整一次难度值,以每10分钟产生一个区块估算,大约每两周会调整一次难度值。难度值的调整是由每个完整结点肚子自动发生的,每达到2016个区块后,所有结点都会按统一的公式自动调整难度值。

    • 新难度值公式:新难度值 = 旧难度值 x (20160分钟 / 过去2016个区块花费时长)
    • 目标值(Target)的计算公式:目标值 = 最大目标值 / 难度值

      目标值的大小与难度值成反比。 比特币工作量证明的完成,是以“矿工”计算出来的区块哈希值小于目标值且最接近于目标值为判断标准。

    4.时间戳、随机数及其作用

      时间戳,能表示一份数据在某个特定时间之前已经存在的、完整的、可验证的数据,其通常是一个字符序列,能够唯一地标识某一刻时间。 在区块链中采用了“unix”时间计数方式,由时间戳服务器为每一个区块加上的时间序列,记录了该区块的产生时间。
      比特币挖矿的目标就是找到一个随机数,使在这个值下的区块头的SHA-256哈希值输出必须小于设定的难度值,“矿工”通过不停地变更区块头中的随机数,并对每次变更后的区块头做双重SHA-256运算,将结果只与当前网络的目标值作对比,如果小于目标值,则工作量证明完成,区块创建成功。

    五、区块链的工作流程与机制

    1.步骤与防止分叉

      区块链的工作步骤:

    1. 发送节点将新的数据记录向全网进行广播。
    2. 接受节点对收到的数据记录信息尽心验证,如记录信息是否合法,通过检验后,数据记录将被纳入一个区块中。
    3. 全网所有接受结点对区块执行共识算法,包括工作量证明、权益证明等。
    4. 区块通过共识算法过程后被正式纳入区块链中存储,全网节点均表示接受该区块,新区块将以该区块链为基础进行延长。

    在这里插入图片描述
      全网广播,实际上不需要让全网所有节点收到,只要大部分节点收到即可。对于那些没有收到的、丢失的区块,区块链系统是具有容错能力的,如果某节点没有收到特定区块,当节点发现自己缺失区块时,可以提出自己下载区块的请求。
      节点始终都将最长的区块链视为正确的链,并持续以此为基础进行验证和延长。 当其中一条被证实为较长,那么在另一条分支链条上工作的节点将转换阵营,开始在较长的链条上工作,由此防止了区块链的分叉。

    2.安全、透明与不可篡改的系统机制

      时间戳把数据区块的内容与数据区块本身联系起来,其重要意义在于其使数据区块形成了新的结构。这个新的结构使各个区块通过时间线有序地连接起来,形成了区块的链条,因此才成为区块链。
      通过给数据记录印上时间标签,使每一条数据记录都具有唯一性,从而使数据记录本身在区块和区块上的位置进行精确定位且可回溯,也给其他的校验机制发挥协同作用提供了极大的便利性和确定性,使整个区块链网络能够确定性地验证某条数据记录是否真实。

      区块链网络是一个公开的、难以攻破的、不可篡改数据记录和制造虚假数据的诚实可信的系统。
      关键技术包括两个方面:一是数据加密机制;二是共识算法
      在数据加密机制中,一方面要有一个私钥,另一方面要使用哈希算法等。
      共识算法,是区块链中节点保持区块数据一致、准确的基础,主流共识算法包括工作量证明(PoW)、权益证明(PoS)、委托权益证明(DPoS)等。

    六、从区块链1.0到区块链3.0的演化

    1.区块链的进化

      划分方式1:
      区块链1.0是以比特币为代表的数字货币应用,其场景包括之父、流通等;区块链2.0结合数字货币与智能合约,对金融领域的更广泛场景和流程进行优化的应用;区块链3.0则超出金融领域,旨在为各种行业提供去中心化解决方案。
      划分方式2:
      区块链1.0是可编程的数字货币;区块链2.0是可编程的智能合约;区块链3.0是可编程的社会治理。
    在这里插入图片描述

    2.区块链1.0

      区块链1.0主要是支撑虚拟货币的应用,包括转账、汇款、数字化支付以及加密货币,比特币就是区块链1.0的代表,也是最成功的数字货币。
      区块链1.0的实质就是可编程的数字货币。 主要应用领域为“加密数字货币”,包括货币的发行机制、分配机制、币值调节机制等。
      比特币可视为区块链首个在金融支付领域的应用,也是应用最广泛的公有区块链。

    3.区块链2.0

      区块链2.0是可编程的智能合约。 主要应用领域为智能合约,智能合约能够令各方自动执行操作,结果由软件验证,而非人类扮演中介。
      区块链2.0的典型应用包括:(1)股权、债券合约;(2)证券与金融合约;(3)糊住保险合约;(4)权利登记、转让;(5)博彩;(6)防伪;(7)物联网等。

    4.区块链3.0

      区块链3.0可看作可编程的社会治理。
      总体有两大类应用:

    • 超越货币、经济、市场的公正性应用。
    • 超越货币、经济、市场的效率和协作。

      区块链3.0是价值互联网的内核。区块链能够对每一个互联网中代表价值的信息和字节进行产权确认、计量和存储,从而实现资产在区块链上可被追踪、控制和交易的目的。
      价值互联网的核心是由区块链构造一个全球性的分布式记账系统,它不仅能够记录金融业的交易,而且几乎可以记录任何有价值的能以嗲吗形式进行表达的实物。实现信息的兹证明,不再依靠某个或第三人或机构获得信任或建立信用;实现信息的共享,通过解决信任的问题来提高整个系统的运作效率。

      区块链3.0的主要应用在社会治理领域,例如:

    • 供应链自动化管理
    • 自动化采购
    • 智能化物联网应用
    • 产权登记
    • 虚拟资产兑换、转移
    展开全文
  • 参考《区块链技术 架构与发展》、《区块链以及区块链技术总结》、《区块链技术原理、应用领域及挑战》,对当下区块链系统架构进行细致梳理与补充,区块链技术入门友好。

    在这里插入图片描述

    区块链系统架构梳理 & Fabric应用开发流程

    一. 从数据库角度看

    传统的多方数据库在解决信任问题时存在繁琐的人工对账和争议,区块链(去中心化 不可篡改 多方共同维护的分布式数据库),在无第三方的情况下实现可信数据共享和p2p价值传输。

    1. 关系数据库管理系统、NoSQL数据库管理系统
      1. 单一机构管理和维护
      2. 全部数据的控制权由单一机构掌握
      3. 中心化无法解决信任问题,导致参与方需单独维护自己业务数据的数据库
      4. 各自维护数据库导致:信息孤岛,清结算需耗费大量人工对账成本
    2. 传统分布式数据库
      1. 节点之间需要是相互信任的(不作恶)
      2. ※共识层:使用CFT共识算法进行数据一致化。(决定了两者上层应用的差别)
    3. 区块链系统
      1. 将传统的信息孤岛数据库进行整合后,分布式的存储在多方共同维护的多个节点,参与方只能按照共识和规则进行更新,从而实现可信的多方信息共享。

    CFT类(Crash Fault Tolerance):是非拜占庭问题(指分布式的系统中存在故障,但不存在恶意节点的场景(即可能消息丢失或重复,但无错误消息)下的共识达成问题,是分布式共识领域最为常见的问题。)的容错技术。----解决算法:Paxos算法和Raft算法

    拜占庭将军问题:是对现实世界的模型化,由于硬件错误、网络拥塞或中断以及遭到恶意攻击等原因,计算机和网络可能出现不可预料的行为。

    二. 区块链系统的体系架构

    集成技术: P2P 协议、非对称加密、共识机制、块链结 构等多种技术
    在这里插入图片描述

    网络层:

    • ~平台通常选择完全分布式且可容忍单点故障的 P2P 协议作为网络传输协议

      早期P2P网络没有预定的全局模式不能适应网络变化而查询到完整的结果集

    • ~网络节点具有平等、自治、分布等特性,所有节点以扁平拓扑结构相互连通,不存在任何中心化的权威节点和层级结构,每个节点均拥有路由发现、广播交易、广播区块、发现新节点等功能

    • 通过P2P协议传输交易和区块数据,接收到广播的数据后验证:交易中的数字签名(和区块中的工作量证明)等

    共识层:

    共识算法的核心是在正常的节点间形成对网络状态的共识。

    • 公有链中,为解决节点自由进出带来的女巫攻击问题,BTC和ETH使用PoW共识机制,为了解决对能源的消耗,peercoin应用PoS、比特股(bitshares)应用股份授权证明机制(Delegated Proof of Stake,DPoS)

      女巫攻击(sybil attack):攻击者通过创建多个身份,从而在网络中获得与自身实体不对称的影响力或网络控制权。一种解决方法----采用一个信任的代理来认证实体,即可信第三方。

      • PoW机制的共识流程:新交易全网广播——“埋矿”——“挖矿”——全网广播新区块——验证交易与随机数的正确性。
        • 埋矿:收集前一区块生成后就收到的全部交易并计算出对应的Merkle根,将M根放入区块头并从0开始凑随机数,直至区块头的两次hash值≤难度目标设定值。
        • 挖矿:全网节点同时参与“计算”(凑数),先找到正确随机数的节点获得新区块的记账权及奖励(coinbase创世币与记账手续费)
    • 联盟链中,节点加入需要授权的HYF使用基于投票机制的共识PBFT算法

      • PBFT算法的共识流程:全网选举一个主节点(负责新区块的生成)——新交易全网广播——主节点收集新交易排序后存入列表——全网广播有序交易列表——每个节点依据排序模拟执行交易,完成后基于交易结果计算新区块的hash摘要(?块哈希?)——全网广播新区块哈希摘要——若一节点收到2f(f为可容忍恶意节点数)条摘要与自己相同则——全网广播一条commit消息——若有节点收到2f+1条commit消息——提交新区块及其交易到本地区块链和状态数据库

        • 去除不必要的能源和算力消耗更适合联盟链,算法可容忍恶意节点不超过全网节点的1/3。

        • 存在网络开销大的问题:N节点网络中,存在两个阶段需要传输的网络信息为O(N²),并造成很大的网络开销。

        • fabric1.0不能很好支持共识节点的动态加入与退出——基于插件化开发的BFT-SMART、SBFT和HoneyBadgerBFT等共识模块

          名称特性
          BFT-SMART——强实用性、可靠性与模块化的BFT软件库多核感知、节点动态进出可配置
          SBFT——主节点可靠前提下,构建类似Raft的消息模式减少网络中的广播通信
          HoneyBadgerBFT——首个异步BFT协议不依赖任何时间假设就可保证网络有效性,在广域网中也可容错

          SBFT取消了相互全网广播的信息确认方式,而是通过选举leader进行信息收集后统一分发验证。同时通过使用门限签名(threshold signatures)可以将消息长度从线性降低到常数。

    数据层(数据结构、数据模型、数据存储)

    1. 数据结构

      时间戳服务器:对新建文档、当前时间及指向之前文档签名的哈希指针进行签名,如此形成一个基于时间戳等数据。

      • Merkle根:基于块内交易数据哈希生产的Merkle根实现了块内交易数据的不可篡改性与简单支付验证。
        • ETH和HYF的块头含有:交易Merkle根和状态Merkle根,以太坊还有针对交易执行日志的收据Merkle根。BTC使用二叉Merkle树
        • ETH使用Merkle Patricia 树计算Merkle根(构建新区块时,仅需计算在新区块中变化的账户状态,未变分支直接引用)
        • HYF使用Merkle Bucket 树,Merkle Bucket 树是多叉树,每个叶子结点是一个桶,桶中存放的是Key-Value 类型的状态数据集。为新区块计算状态根时,没有变化的桶可以被跳过,因而可快速计算状态根。Merkle Bucket 树可通过调整桶数和分支数来控制树的深度和宽度,从而可在不同的性能和资源需求间权衡。
      • 链块结构:基于前一区块生成的前块哈希将孤立的区块链接在一起形成区块链。
        • 块哈希——对区块头中的前块哈希、随机数和Merkle根等数据进行两次哈希运算,基于块哈希可验证各块是否被修改过
        • 所有区块按照生成顺序以前块哈希为哈希指针链接在一起形成一条区块链表
    2. 数据模型

      • BTC——基于交易,每笔交易由表明交易来源的输入和表明交易取向的输出组成,所有交易通过输入与输出链接在一起,从而实现每笔交易都可以追溯。
      • ETH和HYF——基于账户,可基于账户快速查询到当前余额或状态。
    3. 数据存储

      • 既可以文件形式存储(便于日志形式的追加操作),也可以数据库形式存储(易实现查询与修改)。
      • 由于区块链系统中村在大量哈希计算,交易、区块都依靠哈希值进行标识,故底层数据库选择Key-Value数据库(如LevelDB)。
      • BTC、HYF区块链以文件形式存储,索引数据存储在LevelDB数据库,ETH则全部存储在LevelDB数据库。另ETH、HYF基于LevelDB构建了状态数据库用于存储账户余额或业务状态数据。
      • 在基于账户模型的区块链平台中,交易数据被打包进区块且经共识算法确认后,先追加如区块链,而后在写入区块链状态数据库。
      • 另外LevelDB数据库的架构方案无法满足企业级业务的高并发访问、Non-Key查询等业务需求,HYF提供了CouchDB插口。

    “智能”合约(Smart Contract)层

    • 智能合约是由算法和程序编写的,部署在区块链上且可按照规则自动执行的数字化协议,在预定条件满足时,能够自动强制执行合同条款。

    • 区块链的去中心化使得智能合约在没有中心管理者参与时,同时在全部节点上运行,无法被强行停止。

    • 智能合约作机制
      在这里插入图片描述

      • 外部应用通过调用智能合约来实现各种交易,若调用涉及修改操作,则需要先在全网达成共识,之后修改操作会被记录在区块链上,修改结果被存在状态数据库。
      • 调用仅是查询操作时,无需共识与记录上链。
      • 智能合约的支持合约内部事件的注册与通知机制,从而可主动向外部应用通知合约内部发生的关键事件
    • SC无法主动监听并相应链外数据,对于链外事件无法监听并响应。

    • SC定义了交易逻辑及访问状态数据的业务规则,外部应用需要调用合约,并依照合约执行交易和访问状态数据。——外部应用&智能合约≈数据库应用&存储过程:

      • 存储过程运行于数据库管理系统中,访问数据库数据
      • 合约运行于区块链系统中,访问区块和状态数据
    • SC需要运行在隔离的沙箱环境中,避免合约中存在漏洞或恶意代码威胁区块链节点的安全。——合约|宿主|合约|…之间被沙箱执行环境有效隔离、互补隔离

      平台沙盒策略
      ETH自定义以太坊虚拟机(EVM),使用Solidity等语言编译生成
      HYF轻量级Docker容器,基于Docker自身的隔离性与安全性
    • 各平台智能合约使用情况:

      • BTC——比特币脚本,一组嵌在比特币交易上的指令

      • ETH——提供图灵完备的脚本语言Solidity、Serpent和沙盒环境 Ethereum Virtual Machine (EVM),以供用户编写和运行智能合约

        部署后的智能合约存放在区块链上,每次被调用时才被以太坊虚拟机(EVM)加载运行。

      • HYF——通过Go等语言编写Chaincode(智能合约),Docker容器作为沙盒环境,容器中带有一组经过签名的基础磁盘映像以及Go和Java语言运行时使用的SDK

        部署后合约被打包成Dovker镜像,每个节点基于镜像启动一个新的Docker容器并执行合约中的初始化方法,然后等待被调用。

    应用层

    • BTC——比特币交易
    • ETH——数字货币交易和Dapp由Javascript构建的Web前端应用,通过JSON-RPC与运行在以太坊节点上的智能合约进行通信。
    • HYF——通过Go、Java等语言的SDK构建应用,并通过gPRC或REST与运行在HYF节点上的智能合约进行通信。

    三. 其他特性

    可扩展性

    1. 横向扩展性:可使分布式数据库的整体性能随着集群节点数的增加而线性提升。

    2. 现有三大平台均采用全网节点共享一条链的单链方案,就该方案来说网络上每个节点都需要处理、存储全网的所有交易和数据,因此整个区块链系统的处理能力受限于单个计算节点的处理能力。并且考虑到共识机制,节点数的增加会进一步降低系统处理能力。

    3. 实现动态的可扩展性:

      系统实现单链扩展为多链,在多链上可同时并发的处理多笔交易,突破全网处理能力受限于单个节点,从而提升系统性能。

      • ETH——分片(sharding)——>>系统吞吐量和存储容量问题

        • 从ETH2.0开始以太坊依据账户地址将全网划分为多个相对独立的分片,每个分片内维护一条独立子链。
        • 用户可自行选择执行自己的交易的分片;
        • 节点可根据自身计算和存储能力选择加入(≥1)分片并处理和存储这些分片上的交易。
        • 全网节点分工配合以覆盖全部分片,节点通过轻客户端技术从其他分片节点读取本节点为存储的交易数据。
        • 由于采用分片技术导致的全网算力分散,单片内攻击者可轻易突破51%算力,所以PoW共识机制不再适用,改用基于权益证明机制的Casper共识算法。
      • HYF——多通道(multichannel)——>>系统扩展性与交易隐私性问题

        • 将区块链网络划分为多个逻辑上的通道,节点根据自身需要参加的交易加入相应的通道

        • 每个节点可以在多个链上同时接受和处理区块,多个链上的交易可以独立、并发地执行。相比单链,全网吞吐量显著提升。

        • Ordering服务节点提供插件化的共识服务,可基于Kafka消息系统或SBFT共识对所有链上的每个交易进行统一排序。

          当其由可信方或监管机构组成时,不涉及交易隐私问题;

          但希望对Ordering服务节点保密时,可利用加密来隐藏交易数据。

        • HYF采用的PBFT算法要求所有节点数目已知且静态不变,为此HYF1.0将节点分为共识节点(orderer)与记账节点(committer),解耦了共识服务和记账服务,从而实现记账节点的动态加入或退出。

    安全性

    1. 传统数据库——完善的用户管理和存取控制,用户管理需要在中心化节点上实现,而存取控制则使的数据非公开透明。
    2. 区块链——基于数字签名与验证以确保数字货币的所有权以及交易的可信与不可伪造,并通过在交易中使用不同的数字证书与账户地址以保证交易隐私性。
      1. 公有链:
        • 公钥作为用户的唯一标识
        • 签名与验证——使用椭圆曲线数字签名算法(ECDSA)
          • 接收者将比特币地址(pubKeyHash)提供给发送者——
          • 在ETH中,交易数据只包含发送者的ECDSA签名,接收者基于ECDSA签名、交易数据和椭圆曲线参数可以恢复出发送者的公钥,通过SHA3(公钥)可计算出发送者的账户地址。
      2. 联盟链
        • 所有节点与用户的加入需经过认证和授权
        • HYF提供成员管理服务——主要是基于CA中心提供ECert)、TCert和 TLSCert三种类型的数字证书
          • ECert (Enrollment Cert):身份认证,登录时确认节点或用户的身份
          • TCert(Transaction Cert):交易签名与验证,为避免第三方回溯交易发送者,每次交易可使用不同TCert证书
          • TLSCert(Transport Layer Security Cert):用于系统组件间的SSL/TLS通讯

    隐私性

    1. 公有链:
      • 一般通过将公钥地址与用户真实身份隔断,实现一定程度的匿名性
      • 每次使用新的地址,地址之间无关联,实现多个交易间的不可关联性
      • 缺陷
        • 钱包或交易所的认证
        • 同比交易中的多个输入间的关联关系
        • 网络报文中IP地址与比特币地址的对应关系
      • 现有隐私保护(掩盖交易细节、验证交易的正确性)方案
        • 混币(CoinJoin):多笔交易合一
        • 环签名(ring signature):用发送者私钥和多名无关者公钥加密交易数据,再用所有人的公钥解密,以隐藏发送者
        • 零知识证明(Zero-Knowledge Proof):在无需执行且无需知道输入的前提下,验证计算的正确性。(ETH)
        • (?)同态加密(homomorphic encryption)基于同态映射保证了先运算后加密与先加密后运算的结果相同,使得可基于加密数据实现交易验证。
        • HYF:通过节点之间可根据隐私需求建立专用通道(单链),通过将不同的交易分配到相互隔离的多条区块链上,实现私密交易,保障交易数据的隐私性。

    四. 区块链的优势、劣势及发展趋势

    优势

    1. 去中心化——全网数据由多方参与者共同管理维护,完全分布式的多方信息共享
    2. 不可篡改——哈希指针与Merkle树,少数节点非法篡改不影响全网共识结果
    3. 可追溯——区块链上存储自系统运行以来的全部交易数据(不可篡改的日志类型数据),便于还原与追溯历史操作,便于监管机构的审计与监督
    4. (?)高可信——交易可信任,参与者在区块链系统中无需可信第三方就可以完成交易,交易通过数字签名、全网共识的方式实现可信(无篡改、不可否认)。
    5. 高可用——相比传统分布式数据库的主备模式,~系统中无主备节点之分,所有节点都是一个异地多活节点,少部分节点故障不影响系统运行。

    劣势:

    1. 吞吐量:BTC-7TPS \ ETH-25TPS \ HYF-2000TPS,牺牲性能换系统安全。每笔交易的签名验证、每个区块的哈希运算以及共识过程等都涉及大量的系统开销。
    2. 事务处理:依赖底层数据库提供事务处理,而KV数据库无事务处理能力。
      • LevelDB不支持严格的事务,单个节点上的智能合约执行失败会导致数据库数据不一致,需从其他节点同步数据实现数据一致。
    3. 并发处理?
    4. 查询统计:KV数据库在Non-Key查询和历史数据查询上不方便,更难以实现复合查询与统计。
      • 实现插件化的数据访问机制,以支持包括关系数据库在内的多种数据库。(HYF支持CouchDB可以根据不同应用场景实现复杂查询)
    5. (?)访问控制:公有链公开透明地将全量数据存储在每个节点,仅依靠交易的签名与验证去确定资产的所有权和保证交易的不可伪造。
    6. 可扩展性:与传统数据库相反,当前区块链系统的性能(吞吐量、并发访问量和存储容量)会随着节点增加而下降。

    五. 发展趋势

    1. 共识机制:提高系统吞吐率的共识机制

    2. 隐私保护:能够隐藏交易内容的零知识证明(应用领域受限)与同态加密(计算效率底)方案。

    3. 部分存储:部分存储取代全量存储模式,提升系统性能与隐私性。(HYF、ETH、Corda)

    4. 链外交易:雷电网络(ETH)、闪电网络(BTC)将小额高频的交易放在链外,提高交易速度,主链只处理最终的交易及作为争议仲裁的最后手段。

    5. 多链与侧链:多链使互不相关的交易实现分片存储和并发执行,提高系统扩展性,链间隔离提升隐私性。侧链通过与主链互相锚定,实现对主链的功能扩展。(元素链)

    6. 跨链:实现不同区块链平台之间的链条之间的互联互通互信。(Polkadot——通用的跨链通信、Cosmos——跨链的数字资产交易)

      • Polkadot以ETH为主实现与各平行链的互连,实现以太坊直接与任何链进行通讯。
      • Cosmos通过在主干网络Cosmos Hub上运行的IBC(Inter-Blockchain Communication)协议实现不同区块链子网之间的互联
    7. 区块树与区块图:采用树(ETH)和图来组织区块,以节点权重计算最长链作为主链。

    8. SQL on Blockchain:现有的数据分析工具基本基于SQL构建,区块链数据分析需要基于SQL的查询引擎,便于现有数据分析工具可接入

    9. BlockchainDB:从底层到上层都直接支持现有区块链特性的数据库。其设想的架构参照图在这里插入图片描述

      • 网络层基于P2P协议,便于实现各种节点的动态加入与退出,从网络底层支持去中心化的架构

      • 共识层上支持具有拜占庭容错的共识算法,以支持公有链、联盟链的不同应用场景,其应该既提供证明机制,又支持投票机制。

      • 数据层为了便于存储和检索,BlockchainDB在数据层上可直接借鉴现有数据库的存储与索引技术处理区块链中的状态数据与索引数据。

        区块数据和传统数据库的预写式日志非常类似,它们都维护了所有的历史操作记录,都是在表数据之前写入,都是追加形式的写且支持数据重放,只不过预写日志不具备不可篡改性且不支持查询,但预写日志在高速写入方面的研究可用于区块数据。另外,区块中的交易 数据具有可追溯的特性,但不论在基于交易还是基于账户的模型中,目前的追溯查询并不高效,因此可借鉴数据仓库和科学数据管理领域的数据溯源(data provenance)来解决,数据溯源的查询表达具有严格的代数学基础,且可在关系数据库上实现。

      • 智能合约层:借鉴存储过程和触发器的设计经验,实现类似 PL/SQL 或 TSQL 编写的智 能合约。

      • 应用层原生支持SQL,提供支持访问区块数据、交易数据、状态数据的SQL语句,使应用程序获得与访问传统数据库相同的接口。

    六. Fabric应用开发流程

    开发范围

    1. chaincode:搭建Fabric网络,在此之上开发chaincode
    2. application:基于SDK进行业务应用开发,与Fabric网络进行业务连接,应用通过Fabric-CA签发证书
    3. chaincode接口:core/chaincode/shim/interfaces.go

    开发步骤

    1. 确定应用场景:

      • 节点
      • 功能(节点间交互)
      • 网络连接方式
    2. 数据的生命周期

      ​ 以票据为例:发行票据-票据状态1.0-购买交易-票据状态2.0-兑现交易-票据状态3.0…

    3. 数据结构——根据业务需求设计对应的value结构,根据查询需求实际key值的前缀。

    在这里插入图片描述

    1. Chaincode

    2. Application——确定应用如何通过SDK与Chaincode交互

    3. 其他:Chaincode namespace、Endorsement policies、Connection Profile、Identities等

    展开全文
  • BlockChain:《Blockchain Gate》听课笔记——区块链的1.0架构 VS 区块链3.0架构+个人理解 相关文章BlockChain:《Blockchain Gate》听课笔记——比特币白皮书的前世今生+个人理解 目录 区块链的1.0架构认知 ...

    BlockChain:《Blockchain Gate》听课笔记——区块链的1.0架构 VS  区块链3.0架构+个人理解

    相关文章
    BlockChain:《Blockchain Gate》听课笔记——比特币白皮书的前世今生+个人理解

     

     

    目录

    区块链的1.0架构认知

    区块链的3.0架构认知


    ​​​​​​​

     

     

     

    区块链的1.0架构认知

           这个阶段区块链系统主要是用来实现数字货币的,我们看一下示意图。如图所示,在整个架构中,分为核心节点和前端工具,这里提一下核心节点中“矿工”功能。矿工在1.0架构的系统中,主要是承担两个任务:

    第一个是通过竞争获得区块数据的打包权后将内存池(发送在网络中但是还没有确认进区块的交易数据,属于待确认交易数据)中的交易数据打包进区块,并且广播给其他节点
    第二个是接受系统对打包行为的数字货币奖励,从而系统通过这种奖励方式完成新增货币的发行。

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

     

    区块链的3.0架构认知

            在3.0的架构中,超越了对数字货币或者金融的应用范畴,而将区块链技术作为一种泛解决方案,可以在其他领域应用,比如行政管理、文化艺术、企业供应链、医疗健康、物联网、产权登记等,可以认为是面向行业应用
            行业应用一般是需要具备企业级的属性的,比如身份认证许可授权加密传输等,并且对数据的处理性能也会有要求,因此企业级场景下的应用,往往都是联盟链或者私有链。我们来看一下示意图:

           如图所示,首先在3.0架构中,数字货币不再是一个必选组件了,当然如果需要,我们也是可以通过智能合约的方式来实现数字货币的。与之前的架构相比,最大的特点就是增加了一个网关控制,实际上就是增加了对安全保密的需求支持,并且通过数据审计加强对数据的可靠性管理。
            在3.0架构中,实际上可以看成是一套框架,通过对框架的配置和二次开发可以适应各行各业的需求,比如图中的“可插拔共识”,意思就是共识机制不是固定的,而是可以通过用户自己去选用配置。

     

     

     

     

     

     

     

     

     

     

    展开全文
  • 分布式帐本,所需技术:微服务架构,高性能RPC通讯。 区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,每一个数据链表可以看作账本。它由多个区块构成了一个有时序的链表,而每个...

    区块链几大核心:

    分布式帐本,所需技术:微服务架构,高性能RPC通讯。

    区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,每一个数据链表可以看作账本。它由多个区块构成了一个有时序的链表,而每个区块里含有多条交易trasaction(缩写为tx)构成的链表。
     

    智能合约机制,所需技术:共识算法

    1. 智能合约:智能合约就是一段代码,一个具体的场景下的应用程序。管方认可的是GO语言;它是运行在区块链上的模块化、可重用的自动执行脚本,有了它我们就可以完成复杂的业务逻辑,例如同一个区块链上有多份合约,而每份合约可以约定不同的参与者(企业或者相关方)。也可以指定每份合约里每个子命令做一批特定的事,大家可以把它想象成关系数据库里的事务。

    我觉得我们可以把智能合约理解成区块链系统中的业务逻辑单元,多个合约构成区块链系统的业务层。

    合约代码的逻辑定义了合约的内容。合约的账户保存了合约当前的运行状态,主要包含了4部分内容。

    • balance:当前余额
    • nonce: 交易次数
    • code: 合约代码
    • storge: 存储,是一棵MPT

    我们可以拟定一个合约的需求(具体场景),从而开始编写这个应用程序:一个商品拍卖的智能合约。所有参与拍卖的人员对商品进行竞价,每次竞价时都会将相应的价格发送到智能合约中,合约会自动记录竞价人的报价,拍卖结束时,出价最高者获得拍卖品,同时出价最高者的钱会发送给受益人。其他人可以使用withDraw函数拿回自己的钱。

    pragma solididity ^0.4.21               // 声明使用的solidity版本
    
            contract SimpleAuction{                 // 声明一个SimplaAuction的合约类
                address public beneficiary;         // 拍卖受益人
                uint public auctionEnd;             // 拍卖截止日期
                address public highestBidder;       // 当前的最高出价人
                mapping(address => uint) bids;      // 所有竞拍者的出价,map结构
                address[] bidders;                  // 所有竞拍者数组
    
                // 需要记录的事件,event主要用来记录日志
                event HighestBidIncreased(address bidder, uint amount); // 出价最高的人发生变动
                event Pay2Beneficiary(address winner, uint amount);     // 竞拍成功者的钱发送给受益人
    
                /// constructor是构造函数
                /// _biddingTime 表示拍卖时长
                /// _beneficiary 表示拍卖受益人
                constructor(uint _biddingTime, address _beneficiary) public
                {
                    beneficiary = _beneficiary;
                    auctionEnd = now + _biddingTime;
                }
    
                /// 对拍卖进行竞价,如果之前出过价,就会把之前的价格与当前价格求和作为竞价
                function bid() public payable{...}
                
                /// 参与投标的人在拍卖结束后取回自己的钱
                function withdraw() public returns(bool){}
    
                /// 结束拍卖,将最高出价的钱发送给受益人
                function pay2Beneficiary() public returns(bools){}
                }  

     

    参见智能合约的详细代码及发布流程

     

    2. 共识算法:区块链是一个去中心化的分布式系统,那么自然只能通过投票来决定一致性了:少数服从多数。当然,多少算多数呢?不同的共识算法下,结果并不相同。比如paxos算法就是超过一半,而PBFT则需要三分之二以上。

    概念:paxos算法是假定通讯安全,没有traitor,然后通过proposer acceptor learner来进行一系列的交互,记录和统计,最终做出裁决。当然这个假设是可能出现叛徒(攻击者),由此引入拜占庭将军问题。拜占庭将军是指存在叛徒,它们可以篡改消息。所以引入容错拜占庭算法,对此情况加以改进。参见:Paxos算法的原理及过程

    拜占庭将军问题需要注意—就是投票的拜占庭将军(服务器)们有2种不可靠的形式。第一是迟钝(数据包延迟)、失忆(数据包丢失以及数据包重发)、失踪(服务器宕机)等不含背叛的行为,第二则是有将军是间谍(服务器被攻破)。如paxos这样的算法属于第一种,Fault-tolerance,它不能容忍服务器上有恶意代码;而如PBFT(Practical Byzantine Fault Tolerance)这样的算法是第二类,Byzantine-Fault-tolerance,它能够容忍一定数量的拜占庭将军节点存在,如PBFT、SBFT、RBFT算法等。

    区块链安全与底层,所需技术:P2P网络传输,安全高效的加密算法(数字证书,CA,非对称加密)

    数字证书 Digital Certificate:X.509规范的数字证书里,其Subject属性里就含有她的信息,包括国家C=US、所属的州或者省份ST=Michigan、所在城市L=Detroit、所属单位O=Mitchesll Cars、其他信息OU=Manufacturing、公用信息CN=Mary Morris/UID=123456等
    CA颁发了两个证书:公钥与私钥,其中,私钥仅服务提供者保存,而公钥则可被所有人(服务使用者)保存。

    所谓非对称加密,就是公钥加密的消息仅私钥可以解密;同理,私钥加密的消息,仅公钥可以解密。对应于前者,可以实现客户端访问服务器时加密消息,例如访问安全级别高的页面时提交的表单信息都需要用公钥加密,确保只有服务器才能解密网络报文。对应于后者,则可实现签名功能(Mary Morris用私钥对一段信息的内容加密后,生成签名附加在消息中。接收者可从CA机构获取到公钥,用公钥解密签名后,再与内容比对,以确定消息是否来自MaryMorris及内容是否被篡改),如下面图所示:

    CA是PKI系统中通信双方信任的实体,被称为可信第三方(Trusted Third Party, TTP)。作为可信第三方的行为具有非否认性。

    在HyperLedger Fabric体系中,CA被广泛运用于每一个具体的对象,如orderer、peer以及最小单位的user等。后端开发的工程师应该比较了解,在HyperLedger Fabric中CA被用于各种对象的登记、登出、注册、撤销等操作。

    证书信任链条:RCA(Root CA)根证书以及ICA(Intermediate CA)中间证书。这些证书由RCA开始构成一个证书信任链,有许多CA证书权威机构,各自有其RCA。如果RCA得不到信任,那么其下的ICA也无法认证通过。当然,自己的服务器也可以生成RCA。

    Peer-to-Peer,对等网络,即对等计算机网络,是一种在对等者(Peer)之间分配任务和工作负载的分布式应用架构。

    团队构成:fabric联盟链的开发人员主要分为三类:底层是系统运维,负责系统的部署与维护;其次是组织管理人员,负责证书、MSP权限管理、共识机制等;最后是业务开发人员,他们负责编写chaincode、创建维护channel、执行transaction交易等。

    fabric技术团队人员的构成:

    学习路线深入掌握一个区块链框架,如果你熟悉Java,那么Fabric是个不错的选择。

    根据以上的几个要点,通过实践:一步一步搭建区块链系统

    重要的参考文章:

    区块链开源框架 HyperLedger Fabric 学习思路分享
    区块链开源实现hyperledger fabric架构详解

     

    区块链2.0的分类与特点

    区块链系统架构图:

    区块链2.0的典型代表是以太坊(Ethereum)和超级账本(Hyperledger),分别代表了区块链的两个重要的发展方向:应用于公众的公有链和应用于企业的联盟链。

    公有链、联盟链和私有链

    公有链是指对所有人开放,任何人都可以参与的区块链;联盟链是被多个组织构成的联盟控制,进入和退出需要授权的区块链;私有链是完全被单独的个人或某个组织控制的区块链。公有链不适合大部分企业应用场景,未来企业应用的重点是联盟链,但现阶段关注的重点是公有链,公有链是区块链技术的试验田,会遇到各种复杂的情况和问题,是对新技术和新业务的测试,这对企业应用提供很好的借鉴。

    对于区块链的去中心化、安全、高效这三个特性,符合蒙代尔不可能三角关系,即不可能同时满足三个条件。公有链实现了完全的去中心化和安全,因此在性能上就很低,联盟链为了企业应用,提高了性能和安全,就不得不在去中心化上进行妥协,通过一个中心化的授权方式来管理节点,实现了半中心化。

    区块链2.0的优势

    区块链1.0被称之为“全球账簿”。相应的,区块链2.0可以被看作一台“全球计算机”:实现了区块链系统的图灵完备,可以在区块链上传和执行应用程序,并且程序的有效执行能得到保证,在此基础上实现了智能合约的功能。相对于区块链1.0,区块链2.0有如下优势:

    1. 支持智能合约

    2. 适应大部分应用场景的交易速度

    3. 支持信息加密

    4. 无资源消耗

    技术架构

    区块链2.0采用五层架构,从下到上分别是数据层、网络层、共识层、激励层、智能合约层

    1. PoS:Proof of Stake,权益证明

    2. DPoS:Delegate Proof of Stake,股份授权证明

    3. Casper:投注共识

    4.PBFT:Practical Byzantine Fault Tolerance,拜占庭容错算法

    5. PoET:Proof of Elapsed Time,消逝时间量证明

    展开全文
  • 现在市场上很多行业都存在一些乱现象,但是自从区块链技术...接下来,小编为大家分享的是互融云区块链应用系统所采用的技术。 1、智能合约 支持以信思化方式传播,验证,执行智能合约。以提高交易透明度及交易效率...
  • 本次课,主要通过对基于DPOS共识的区块链3.0技术在架构层面的梳理以及如何构建基于区块链应用系统,来帮助观众能够一览全貌,从而快速把握区块链技术研发和应用重点。
  • 区块链的层级架构

    2021-05-01 00:08:02
    对于区块链的模型结构问题,现有的资料中基本已经有了一种定义:区块链的基础架构,可分为六个层面:从底层向上依次为:数据层、网络层、共识层、激励层、合约层、应用层。每层分别完成一项核心功能,并运用了一些...
  • 分析了区块链的经典应用...随后,从公链的区块链底层架构系统性开发,到主节点系统、多侧链、跨链、混合共识机制等技术实现,探讨公链架构设计思路以及实践中难点攻破,并结合Ulord公链搭建开发的实践案例进行分享。
  • #资源达人分享计划#
  • 针对现有微认证系统架构依靠中心化的管理模式, 不能够保证微认证安全性的弊端, 本研究利用了区块链的分布式结构, 透明性与不可篡改性的特点, 探讨了如何将区块链技术引入微认证系统的架构设计中. 本文首先阐明了当前...
  • #资源达人分享计划#
  • 区块链的基础架构,可分为六个层面:从底层向上依次为:数据层、网络层、共识层、激励层、合约层、应用层。每层分别完成一项核心功能,并运用了一些技术来保证整个区块链系统的正常运作,各层之间互
  • 区块链的模型架构

    千次阅读 2019-11-23 16:42:14
    区块链基础架构有6层,包括数据层、网络层、共识层、激励层、合约层、应用层。每层分别完成一项核心功能,各层之间相互配合,实现一个去中心化的信任机制。 1. 数据层 数据层主要描述区块链技术的物理形式,区块链...
  • 区块链的功能架构

    2018-09-14 12:59:24
    区块链的功能架构一个了解区块链技术范围的方法是,学习其具备的核心功能。这一部分描述了一个通过对市场上存在的各种方法进行分析归纳后得出的通用的模块构造方式。在2016年,看上去市场上这样的方式有很多,但是这...
  • 区块链应用是网络时代的阶段性产物,本质是一种新型的网络技术。区块链是通过分布式节点的存储资源,然后以共识机制为准则对全节点进行存储同步,并通过相应的共识技术保证内部节点对存储内容更改的有效性,维护一个...
  • 区块链的底层架构

    千次阅读 2018-08-13 23:45:40
    区块链基础架构分为6层,包括数据层、网络层、共识层、激励层、合约层、应用层。每层分别完成一项核心功能,各层之间互相配合,实现一个去中心化的信任机制。 一、数据层 数据层主要描述区块链技术的物理形式。...
  • 区块链技术:架构及进展

    千次阅读 2018-11-13 09:35:48
    title: 区块链技术:架构及进展 总结归纳 1 引言 传统数据库 传统的关系型数据库管理系统、NoSQL数据库管理系统 单一机构进行管理和维护 单一机构对所有数据拥有绝对的控制权 其他机构无法完整了解数据更新过程 ...
  • 2021全球区块链创新应用示范案例集(含系统架构介绍,207页).pdf
  • 区块链三大关键技术 区块链主要有三大关键技术:区块链加密技术,数据存储结构,共识机制。 一、区块链加密技术 从计算机科学角度看,区块链是一种分布式数据库,不同的节点拥有相同的数据记录,包含经节点确认的...
  • 谈谈区块链的常用架构

    千次阅读 2018-02-24 09:40:52
    本文作者尝试对区块链常见架构进行分析,并根据其技术特点提出了一些在保险业可能的应用场景。区块链2.0的分类与特点区块链2.0的典型代表是以太坊(Ethereum)和超级账本(Hyperledger),分别代表了区块链的两个...
  • 菊厂区块链服务BCS是面向企业及开发者的高性能、高可用和高安全的区块链技术平台服务,可以帮助企业和开发人员在华为云上快速、低成本的创建、部署和管理区块链应用。   BCS基于Hyperledger1.0、kubernetes搭建,...
  • 7.第七课:区块链的整体架构

    千次阅读 2020-06-09 10:04:41
    我们的课程也是按照区块链的技术架构,从底层数据层慢慢讲起,讲到上层的应用。 二、架构图 从架构设计上来说,区块链可以简单的分为三个层次,协议层、扩展层和应用层。其中,协议层又可以分为存储层和网络层,它们...
  • 2018区块链整体架构应用.ppt
  • 从可编程(以太坊为代表的区块链2.0)到可计算(区块链3.0),《区块链:新经济蓝图及导读》的作者 MelanieSwan 把超越货币和金融的区块链应用归为3.0,特别是在政府、医疗、工业、文化和艺术领域的应用。...
  • 结合国内国际标准化成果,总结了区块链系统架构的发展演进特征。根据技术发展的最新进展和发展趋势,研究了跨链和分片技术进展,并总结了安全与隐私保护等其他区块链核心关键技术的发展现状。此外还分析了国内主要...
  • 区块链基础架构分为6层,分别是数据层、网络层、共识层、激励层、合约层、应用层。每层分别完成一项核心功能,各层之间互相配合,实现一个去中心化的信任机制。 (一)数据层 数据层封装了底层数据区块的链式结构,...
  • 区块链多链架构设计原理

    万次阅读 2019-03-18 15:09:16
    Validator– 主链/子链共识系统的参与者。通过存50000BU到主链中就能成为一名验证者。 Active validator set- 那些当前正在参与的验证者以及寻求产生以及证明区块,跨链路和其他共识对象的验证者。 Committee-从...
  • 【编者Peter Ye按】可以打开如下链接,详细阅读前几篇:白话区块链 之1: 为什么账本要这么记?白话区块链 之2: 区块链技术理念白话区块链 之3: 区块链技术栈下面...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 25,643
精华内容 10,257
关键字:

区块链应用系统架构