『壹』 一文解惑超级账本HyperLedger
了解超级账本(Hyperledger)及其在区块链世界的独特地位,我们需要跳出公有链与联盟链的二元思维,认识到每种技术都有其适用场景与价值。联盟链(私有链)被设计为现有中心化商业团体之间进行B2B业务活动的手段和渠道,其性能与商业机密保护能力使其难以直接迁移到公有链上。尽管公有链如比特币或以太坊拥有广泛的影响力,但联盟链(私有链)的存在,表明了区块链技术在不同场景下能发挥的多样化作用。
Hyperledger Fabric作为IBM发起的一个联盟链项目,于2015年底移交给Linux基金会,成为开源项目。Hyperledger基金会汇集了IBM、Intel、思科等众多大牌成员,孕育了众多区块链项目,Fabric是其中最为知名的一个。本文将深入探讨Fabric的架构设计、多链多通道功能、账本设计、链码编写与部署流程,以及在实际应用中遇到的挑战与不足。
Fabric架构经历了从0.6版本到1.0版本的迭代,0.6版本主要适用于商业验证场景,无法应用于真实业务环境。其关键问题是所有功能集中于peer节点,缺乏扩展性、安全性和隔离性。在1.0版本中,Peer节点的功能被拆分,共识服务从Peer节点独立出来,由Orderer节点提供可插拔的共识服务。更显著的变化是引入了多通道(multi-channel)功能,实现了多业务的隔离,使得Fabric在0.6版本基础上实现了质的飞跃。
Fabric的核心架构包括两个关键组件:Peer和Orderer。它们分别是一个二进制程序。在Fabric网络中,参与者可以选择部署一个或多个Peer、Orderer,或者同时部署两者。所有Peer和Orderer节点通过通信与连接,形成了Fabric的网络。每个Peer节点存放全量数据(账本),构成完整的区块链链。为了防止舞弊,查询数据时必须确保来自自己的Peer。网络中存在大量的Peer节点,每个节点存放全量数据,如何确保数据正确性?Fabric通过Orderer节点之间的协商来实现数据的正确传播。
Fabric架构中的System Chain与Orderer的存在,使得“控制信息的传播范围”成为可能。通过Orderer节点,数据传播范围得到了控制,这为实现私有和机密交易奠定了基础。Fabric的私有和机密交易功能正是基于System Chain与Orderer的结合实现的。
参与者可以在Fabric网络中创建属于小团体的私链(Channel),每个Channel成员名单记录在system chain中,Orderer节点可以将数据只分发给对应Channel中的Anchor Peer。在最新版本1.2中,引入了SideDB中的私有数据存储,进一步强化了数据隔离与安全性。
Hyperledger Fabric v1.2版本的重点是引入了私有数据存储机制,强化了在permissioned networks上进行private confidential transactions的能力。对比比特币网络的全公开网络特性,Fabric的定位更偏向于商业应用,强调的是企业与企业之间的联盟链。在Fabric中,所有参与者都是经过批准和实名认证的,这与提倡“匿名”的公链形成了鲜明对比。
为了确保账本的有效性和安全,每个参与者保存的正确数据(账本)还需智能合约的加持。合约规定了数据修改的规则、约束条件,以及触发修改的条件。智能合约是分布在每个Peer上的容器,确保了数据修改的可控性和安全性。Fabric中的合约升级和改动需要满足特定的约束,如所有签署合约的参与者一致同意。合约的执行流程涉及交易发起、智能合约调用、结果校验、签名验证、区块打包和广播等多个步骤,确保了交易的完整性和一致性。
Fabric网络中的访问控制通过MSP(Membership Service Provider)实现,MSP包含了账号的私钥和证书,管理了组织、组件和用户的身份认证。每个组织和角色拥有特定的MSP目录,用于存储证书和私钥。MSP的分级管理确保了网络层面和角色层面的准入控制,同时,Fabric还支持TLS证书用于加密通信过程,保障了数据传输的安全性。
区块链账本由Peer节点维护,订单服务集群负责交易排序,只保留处理过程中的部分信息。在Hyperledger Fabric系统中,节点的物理设备与逻辑概念分离,设计上允许Endorsing Peer校验客户端签名,执行智能合约代码,模拟交易后返回结果给客户端。客户端将结果发送给Ordering Service,然后Ordering Service将交易打包成区块,广播至Committing Peer和背书者进行验证写入区块链。完整的交易流程确保了数据的最终一致性。
Hyperledger Fabric的概念包括智能合约(chaincode)、交易(transaction)、世界状态(world state)、背书(endorse)、背书策略(endorsement policy)、Peer节点、Channel、PKI、MSP、组织(org)等。理解这些概念对于深入掌握Fabric架构至关重要。
Hyperledger Fabric针对企业级应用提供了一系列优势,包括确保企业合法性质、提供可伸缩、可扩展的架构、增强灵活性、实现智能化的数据分区、支持不可变分布式账本的自助查询、采用模块化架构支持插件组件、以及保护数字密钥和敏感数据的能力。这些特性使得Fabric成为企业级区块链解决方案的首选之一,尤其适用于金融、医疗等行业,以及需要遵守数据保护法规的场景。
『贰』 区块链中超级账本是什么
超级账本(hyperledger)是Linux基金会于2015年发起的推进区块链数字技术和交易验证的开源项目,30家初始企业成员(包括IBM、Accenture、Intel、J.P.Morgan、R3、DAH、DTCC、FUJITSU、HITACHI、SWIFT、Cisco等)。目标是让成员共同合作,共建开放平台,满足来自多个不同行业各种用户案例,并简化业务流程。
hyperledger
当下是区块链快速发展的时代,各行各业包括医疗、文化、物联网等等,都在寻求利用区块链技术解决各自的行业痛点。要支持各种行业的应用,就意味着区块链应该具有企业级属性,保密性和吞吐量都是要考虑的问题。
超级账本在区块链中的位置:
- 比特币- 代表数字货币、区块链思想的诞生,提供了区块链技术应用的原型
- 以太坊- 挣脱数字货币的枷锁,智能合约的诞生,延伸了区块链技术的功能
- 超级账本- 进一步引入权限控制和安全保障,首次将区块链技术引入到分布式联盟账本的应用场景。
链乔教育在线旗下学硕创新区块链技术工作站是中国教育部学校规划建设发展中心开展的“智慧学习工场2020-学硕创新工作站 ”唯一获准的“区块链技术专业”试点工作站。专业站立足为学生提供多样化成长路径,推进专业学位研究生产学研结合培养模式改革,构建应用型、复合型人才培养体系。
『叁』 区块链已有哪些应用,区块链应用的两大用途
区块链能应用在哪些方面?1、金融领域
区块链在国际汇兑、信用证、股权登记和证券交易所等金融领域有着潜在的巨大应用价值。将区块链技术应用在金融行业中,能够省去第三方中介环节,实现点对点的直接对接,从而在大大降低成本的同时,快速完成交易支付。
比如Visa推出基于区块链技术的VisaB2BConnect,它能为机构提供一种费用更低、更快速和安全的跨境支付方式来处理全球范围的企业对企业的交易。要知道传统的跨境支付需要等3-5天,并为此支付1-3%的交易费用。
Visa还联合Coinbase推出了首张比特币借记卡,花旗银行则在区块链上测试运行加密货币“花旗币”。
2、物联网和物流领域
区块链在物联网和物流领域也可以天然结合。通过区块链可以降低物流成本,追溯物品的生产和运送过程,并且提高供应链管理的效率。该领域被认为是区块链一个很有前景的应用方向?[22]??。
区块链通过结点连接的散状网络分层结构,能够在整个网络中实现信息的全面传递,并能够检验信息的准确程度。
这种特性一定程度上提高了物联网交易的便利性和智能化。区块链+大数据的解决方案就利用了大数据的自动筛选过滤模式,在区块链中建立信用资源,可双重提高交易的安全性,并提高物联网交易便利程度。为智能物流模式应用节约时间成本。
区块链结点具有十分自由的进出能力,可独立的参与或离开区块链体系,不对整个区块链体系有任何干扰。区块链+大数据解决方案就利用了大数据的整合能力,促使物联网基础用户拓展更具有方向性,便于在智能物流的分散用户之间实现用户拓展。
3、公共服务领域
区块链在公共管理、能源、交通等领域都与民众的生产生活息息相关,但是这些领域的中心化特质也带来了一些问题,可以用区块链来改造。
区块链提供的去中心化的完全分布式DNS服务通过网络中各个节点之间的点对点数据传输服务就能实现域名的查询和解析,可用于确保某个重要的基础设施的操作系统和固件没有被篡改,可以监控软件的状态和完整性,发现不良的篡改,并确保使用了物联网技术的系统所传输的数据没用经过篡改。
4、数字版权领域
通过区块链技术,可以对作品进行鉴权,证明文字、视频、音频等作品的存在,保证权属的真实、唯一性。作品在区块链上被确权后,后续交易都会进行实时记录,实现数字版权全生命周期管理,也可作为司法取证中的技术性保障。
例如,美国纽约一家创业公司MineLabs开发了一个基于区块链的元数据协议,这个名为Mediachain的系统利用IPFS文件系统,实现数字作品版权保护,主要是面向数字图片的版权保护应用。
5、保险领域
在保险理赔方面,保险机构负责资金归集、投资、理赔,往往管理和运营成本较高。通过智能合约的应用,既无需投保人申请,也无需保险公司批准,只要触发理赔条件,实现保单自动理赔。
一个典型的应用案例就是LenderBot,是2016年由区块链企业Stratumn、德勤与支付服务商Lemonway合作推出,它允许人们通过FacebookMessenger的聊天功能;
注册定制化的微保险产品,为个人之间交换的高价值物品进行投保,而区块链在贷款合同中代替了第三方角色。
6、公益领域
区块链上存储的数据,高可靠且不可篡改,天然适合用在社会公益场景。公益流程中的相关信息,如捐赠项目、募集明细、资金流向、受助人反馈等,均可以存放于区块链上,并且有条件地进行透明公开公示,方便社会监督。
结构
区块链是一种分散的、分布式的、通常是公共的数字分类账,由称为块的记录组成,用于记录多台计算机上的交易,因此任何涉及的块都无法追溯更改,而不会更改所有后续块。这允许参与者独立且相对便宜地验证和审计交易。
使用对等网络和分布式时间戳服务器自主管理区块链数据库。他们通过以集体利益为动力的大规模协作得到验证。这样的设计促进了稳健的?工作流程,其中参与者对数据安全的不确定性很小。区块链的使用消除了数字资产无限可重复性的特征。
它确认每个价值单位只转移一次,解决了长期存在的双重支出问题。区块链被描述为一种价值交换协议。区块链可以维护所有权,因为当正确设置以详细说明交换协议时,它提供了强制要约和接受的记录。
1、块
区块保存成批的有效交易,这些交易被散列并编码到Merkle树中。每个区块都包含区块链中前一个区块的加密哈希,将两者联系起来。链接的块形成一个链。这个迭代过程确认了前一个块的完整性,一直回到初始块,这被称为创世块。
有时可以同时生成单独的块,从而创建一个临时分叉。除了安全的基于散列的历史记录之外,任何区块链都有一个指定的算法来对不同版本的历史进行评分,以便可以选择得分较高的一个。未被选择包含在链中的块称为孤块。
支持数据库的对等点不时有不同版本的历史记录。他们只保留他们已知的数据库的最高分版本。每当对等方收到得分较高的版本(通常是添加了一个新块的旧版本)时,他们就会扩展或覆盖自己的数据库,并将改进结果重新传输给对等方。从来没有绝对保证任何特定条目将永远保留在历史的最佳版本中。
区块链通常被构建为将新区块的分数添加到旧区块上,并给予奖励以扩展新区块而不是覆盖旧区块。因此,一个条目被取代的概率随着更多的块被构建在它之上而呈指数下降,最终变得非常低。
2、权力下放
通过在其对等网络中存储数据,区块链消除了集中保存数据所带来的许多风险。去中心化的区块链可以使用adhoc?消息传递和分布式网络。缺乏去中心化的一个风险是所谓的“51%攻击”,在这种情况下,中央实体可以控制超过一半的网络,并可以随意操纵特定的区块链记录,从而允许双重支出。
点对点区块链网络缺乏计算机破解者可以利用的集中漏洞;同样,它没有中心故障点。区块链安全方法包括使用公钥密码学。甲公共密钥(一个长的,随机的前瞻性数字串)是在blockchain的地址。通过网络发送的价值代币被记录为属于该地址。
一个私钥就像是给它的所有者访问他们的数字资产或手段以其他方式和各种功能相互作用是blockchains现在支持一个密码。存储在区块链上的数据通常被认为是不可破坏的。
去中心化系统中的每个节点都有区块链的副本。数据质量由海量数据库复制和计算信任来维护。不存在集中的“官方”副本,也没有用户比其他用户更“受信任”。
交易使用软件广播到网络。消息是在尽力而为的基础上传递的。挖矿节点验证交易,将它们添加到他们正在构建的区块中,然后将完成的区块广播给其他节点。
区块链使用各种时间戳方案,例如工作量证明,序列化更改。替代的共识方法包括股权证明。一种分散blockchain的增长伴随着的风险集中,因为该计算机资源需要处理更大量的数据变得更昂贵。
3、开放性
开放区块链比一些传统的所有权记录更加用户友好,虽然对公众开放,但仍然需要物理访问才能查看。由于所有早期的区块链都是未经许可的,因此对区块链的定义产生了争议。这场正在进行的辩论中的一个问题是,一个由中央机构负责和授权(许可)验证者的私有系统是否应该被视为区块链。
许可链或私有链的支持者认为,术语“区块链”可以应用于任何将数据分批处理到时间戳块的数据结构。这些区块链作为多版本并发控制的分布式版本(MVCC)在数据库中。正如MVCC防止两个交易同时修改数据库中的单个对象一样,区块链防止两个交易在区块链中花费相同的单个输出。
反对者表示,许可系统类似于传统的企业数据库,不支持去中心化数据验证,并且此类系统没有针对操作员篡改和修改进行加固。
Computerworld的NikolaiHampton表示,“许多内部区块链解决方案只不过是繁琐的数据库”,“如果没有明确的安全模型,专有区块链应该受到怀疑。”
以上内容参考?网络-区块链
区块链在实际生活中的应用有哪些?(1)趣链
趣链区块链底层平台是趣链科技研发的国产自主可控区块链底层平台,以高性能、高可用、可扩展、易运维、强隐私保护、混合型存储等特性,配合数据共享与安全计算平台BitXMesh、区块链开放服务平台飞洛FiLoop、供应链金融平台飞洛供应链FiloLink、存证服务平台飞洛印FiloInk、智能合约安全研发平台MeshSec,能更好的支撑企业、政府、产业联盟等行业应用,促进多机构间价值高效流通。
(2)京东链
智臻链(JDChain)是京东自主研发的企业级区块链底层框架,其诞生标志着京东全面开启基于区块链BaaS平台和“JDChain”底层链的“智臻生态”建设。京东智臻链服务平台依托多项优化实现的“一键部署”能力,做到了领先的秒级区块链节点部署。此外,它还具备开放兼容多种底层、企业级动态组网等成熟应用的核心优势。京东智臻链的适时推出,将有效提升各行业企业级区块链应用的大规模落地,推动中国及全球信任经济的建设。
(3)迅雷链
迅雷链(ThunderChain)是迅雷旗下网心科技自主研发的区块链应用项目,具备百万tps高并发、秒级确认能力。迅雷在研发高性能区块链产品的基础上,搭建了迅雷链开放平台,助力企业或个人开发者部署智能合约,轻松实现产品和服务上链,使得区块链应用开发更为便捷。
(4)井通链
井通区块链是井通科技具有自主知识产权的区块链核心底层技术,它是基于区块链技术所构建的有效去中心化互享生态的互联网交易网络,采用分层设计(5层)的底层平台,以及多语言的智能合约体系,并已实现跨链功能。其具备私链、云链、联盟链等多层次、全方位、一站式服务能力,行业和区域生态的布局已初步成型。
除上述区块链产品外,还有社区主导的LTC、Cosmos、IOTA、Nervos、NULS、MOAC等,企业主导的Ripple、Stellar、微众BCOS、网络XuperChain、华为、平安、万向、蚂蚁金服、众安、布比、矩阵元、秘猿、众享比特、复杂美、上海链景等众多区块链产品。
(3)区块链超级账本实例扩展阅读:
区块链,远不止是一项技术,其背后牵涉到的是“多方协作”的精神。在现代社会中,很多事情必须依靠大家通力合作才能达到1+12的效应,但在合作中需要尽力避免出现“信息不对称”之类的问题。
因此联盟成员之间共同记账、共享数据,将一切公开化以消除“信息不对称”,以保护每个人的利益,让营商环境良性发展。诚实做事将获得应有的收益,如果作弊自然就会路人皆知,千夫所指。技术就是帮助实现这种模式的基础。这就是更重要的“区块链思维”。
『肆』 浅析 Fabric Peer 节点
Hyperledger Fabric,也称之为超级账本,是由 IBM 发起,后成为 Linux 基金会 Hyperledger 中的区块链项目之一。
Fabric 是一个提供分布式账本解决方案的平台,底层的账本数据存储使用了区块链。区块链平台通常可以分为公有链、联盟链和私有链。公有链典型的代表是比特币这些公开的区块链网络,谁都可以加入到这个网络中。联盟链则有准入机制,无法随意加入到网络中,联盟链的典型例子就是 Fabric。
Fabric 不需要发币来激励参与方,也不需要挖矿来防止有人作恶,所以 Fabric 有着更好的性能。在Fabric 网络中,也有着诸多不同类型的节点来组成网络。其中 Peer 节点承载着账本和智能合约,是整个区块链网络的基础。在这篇文章中,会详细分析 Peer 的结构及其运行方式。
在本文中,假设读者已经了解区块链、智能合约等概念。
本文基于 Fabric1.4 LTS。
区块链网络是一个分布式的网络,Fabric 也是如此,由于 Fabric 是联盟链,需要准入机制,所以在网络结构上会复杂很多,下面是一个简化的 Fabric 网络:
各个元素的含义如下:
对于 Fabric 网络,外部的用户需要通过客户端应用,也就是图中的 A1、A2 或者 A3 来访问网络,客户端应用需要通过 CA 证书表明自己的身份,这样才能访问到 Fabric 网络中有权限访问的部分。
在上面的网络中,共有四个组织,R1、R2、R3 和 R4。其中 R4 是整个 Fabric 网络的创建者,网络是根据 NC4 配置的。
在 Fabric 网络中,不同的组织可以组成联盟,不同的联盟之间数据通过 Channel 来隔离。Channel 中的数据只有该联盟中的组织才能访问,每一个新的 Channel 都可以认为是一条新的链。与其他的区块链网络中通常只有一条链不一样,Fabric 可以通过 Channel 在网络中快速的搭建出一个新的区块链。
上面 R1 和 R2 组成了一个联盟,在 C1 上交易。R2 同时又和 R3 组成了另外一个联盟,在 C2 上交易。R1 和 R2 在 C1 上交易时,对 R3 是不可见的,R2 和 R3 在 C2 上交易时,对 R1 是不可见的。Channel 机制提供了很好的隐私保护能力。
Orderer 节点是整个 Fabric 网络共有的,用来为所有的交易排序、打包。比如上面网络中 O4 节点。本文不会对 Orderer 节点进行详细说明,可以把这个功能理解为比特币网络中的挖矿过程。
Peer 节点表示网络中的节点,通常一个 Peer 就表示一个组织,Peer 是整个区块链网络的基础,是智能合约和账本的载体,Peer 也是本文讨论的重点。
一个 Peer 节点可以承载多套账本和智能合约,比如 P2 节点,既维护了 C1 的账本和智能合约,也维护了 C2 的账本和智能合约。
为了可以更深入了解 Peer 节点的作用,先了解一下 Fabric 整体的交易流程。整体的交易流程图如下:
Peer 节点按照功能来分可以分为 背书节点 和 记账节点 。
客户端会提交交易请求到背书节点,背书节点开始模拟执行交易,在模拟执行之后,背书节点并不会去更新账本数据,而是把这个交易进行加密和签名,然后返回给客户端。
客户端收到这个响应之后就会把响应提交到 Orderer 节点,Orderer 节点会对这些交易进行排序,并打包成区块,然后分发到记账节点,记账节点就会对交易进行验证,验证结束之后,就会把交易记录到账本里面。
一笔交易是否能成功是根据背书策略来指定的,每一个智能合约都会指定一个背书策略。
Peer 节点代表着联盟链中的各个组织,区块链网络也是由 Peer 节点来组成的,而且也是账本和智能合约的载体。
通过对上面交易过程的了解可以知道,Peer 节点是主要的参与方。如果用户想要访问账本资源,都必须要和 peer 节点进行交互。在一个 Peer 节点中,可以同时维护多个账本,这些账本属于不同的 Channel 。每个 Peer 节点都会维护一套冗余账本,这样就避免了单点故障。
Peer 节点根据在交易中的不同角色,可以分成背书节点(Endorser)和记账节点(Committer),背书节点会对交易进行模拟执行,记账节点才会真正将数据存储到账本中。
账本可以分成两个部分,一部分是区块链,另一部分是 Current State,也被称之为 World State。
区块链上只能追加,不能对过去的数据进行修改,链上也包含两部分信息,一部分是通道的配置信息,另一部分是不可修改,序列化的记录。每一个区块记录前一个区块的信息,然后连成链,如下图所示:
第一个区块被称之为 genesis block,其中不存储交易信息。每个区块可以被分为 区块头 、 区块数据 和 区块元数据 。区块头中存储着当前区块的区块号、当前区块的 hash 值和上一个区块的 hash 值,这样才能把所有的区块连接起来。区块数据中包含了交易数据。区块元数据中则包括了区块写入的时间、写入人及签名。
其中每一笔交易的结构如下,在 Header 中,包含了 ChainCode 的名称、版本信息。Signature 就是交易发起用户的签名。Proposal 中主要是一些参数。Response 中是智能合约执行的结果。Endorsements 中是背书结果返回的结果。
WorldState中维护了账本的当前状态,数据以 Key-Value 的形式存储,可以快速查询和修改,每一次对 WorldState 的修改都会被记录到区块链中。WorldState 中的数据需要依赖外部的存储,通常使用 LevelDB 或者 CouchDB。
区块链和 WorldState 组成了一个完整的账本,World State 保证的业务数据的灵活变化,而区块链则保证了所有的修改是可追溯和不可篡改的。
在交易完成之后,数据已经写入账本,就需要将这些数据同步到其他的 Peer,Fabric 中使用的是 Gossip 协议。Gossip 也是 Channel 隔离的,只会在 Channel 中的 Peer 中广播和同步账本数据。
智能合约需要安装到 Peer 节点上,智能合约是访问账本的唯一方式。智能合约可以通过 Go、Java 等变成语言进行编写。
智能合约编写完成之后,需要打包到 ChainCode 中,每个 ChainCode 中可以包含多个智能合约。ChainCode 需要安装,ChainCode 需要安装到 Peer 节点上。安装好了之后,ChainCode 需要在 Channel 上实例化,实例化的时候需要指定背书策略。
智能合约在实例化之后就可以用来与账本进行交互了,流程图如下:
用户编写并部署实例化智能合约之后,就可以通过客户端应用程序来向智能合约提交请求,智能合约会对 WorldState 中数据进行 get、put 或者 delete。其中 get 操作直接从 WorldState 中读取交易对象当前的状态信息,不会去区块链上写入信息,但 put 和 delete 操作除了修改 WorldState,还会去区块链中写入一条交易信息,且交易信息不能修改。
区块链上的信息可以通过智能合约访问,也可以在客户端应用通过 API 直接访问。
Event 是客户端应用和 Fabric 网络交互的一种方式,客户端应用可以订阅 Event,当 Event 发生时,客户端应用就会接受到消息。
事件源可以两类,一类是智能合约发出的 Event,另一类是账本变更触发的 Event。用户可以从 Event 中获取到交易的信息,比如区块高度等信息。
在这篇文章中,首先介绍了 Fabric 整体的网络架构,通过对 Fabric 交易流程的分析,讨论了 peer 节点在交易中的作用,然后详细分析了 peer 节点所维护的账本和智能合约,并分析了 peer 节点维护账本以及 peer 节点执行智能合约的流程。
文 / Rayjun
[1] https://hyperledger-fabric.readthedocs.io/zh_CN/release-1.4/whatis.html
[2] https://developer.ibm.com/zh/technologies/blockchain/series/os-academy-hyperledger-fabric/
[3] https://en.wikipedia.org/wiki/Gossip_protocol
『伍』 什么是区块链超级账本
(译)超级账本官方文档基本概念(三)-节点(Peer)超级账本是Linux基金会发起的项目,意在提供一套企业级区块链应用框架,便于大家开发基于区块链技术的应用。
Fabric的基本概念
最开始,应用程序会选出一组peer来生成账本更新提议。哪些peer会被选出来是依据的背书策略,这个背书策略决定了哪些组织需要在广播账本更新提议前对更新提议进行背书。这会影响到共识方式,任何一个关心更新提议是否背书的组织都会在广播给peer更新提议并被peer接受前确认提议是否有背书。
peer对一个提议响应进行背书,就是把自己的数字签名加入到响应中,并用自己的私钥对整个响应签名。背书内容随后可以被用于证明这个响应是某个组织的peer生成的。在我们的例子中,如果peerP1属于组织1(Org1),那么背书E1就相当于可以证明L1上的交易T1和响应R1是由Org1的peerP1提供的。
当应用程序得到了足够多的签名的提议响应时,第一阶段就结束了。
我们注意到peer可能返回不同的信息,因此同一笔交易可能有不一致的返回信息。这可能由于响应是在不同时间,不同peer,在不同账本状态下生成的,大多数情况下应用程序可以多次请求更新的提议响应。另外更严重,但概率很小的原因是因为链码的不确定性导致的响应不一致。不确定性是链码和账本的大敌,如果这种情况发生了,对提议交易来说是很严重的,不一致的提议响应肯定不能提交到账本中。一个独立的节点是不可能知道交易结果是非确定性的交易,在检测到非确定性交易前,必须将交易汇总比较(严格地说,即使这还不够,但我们将此讨论推迟到交易部分,其中详细讨论了非确定性)。
在第一阶段结束时,如果应用程序希望如此的话,可以放心丢弃不一致的响应以提前结束交易流程。后面我们会看到如果应用程序使用不一致的响应提交到账本时,会被拒绝。
过程2打包
第二个交易流程是打包。Orderer节点这个过程关键的点,它接收来自很多应用传来的背书过的提议交易响应。Orderer对交易进行排序,并将大量的交易打包进区块,并准备将区块分发到所有连接到Orderer的peer,包括背书peer。
orderer的第一个角色就是打包账本更新提议。在上图的例子中,应用A1发送给OrdererO1一个被E1和E2背书的交易T1。同时,应用A2发送给OrdererO1一个被E1背书的交易T2。O1将A1传来的交易和A2传来的交易以及其它交易共同打包进区块B2。我们可以看到区块B2里的交易排序是T1,T2,T3,T4,T6,T5,并不一定是按照到达orderer节点的顺序(这个例子展示了一个非常简单的orderer配置)。
Orderer节点会同时收到网络Channel中不同应用程序发送的账本更新提议。Orderer节点的任务就是按照事先定义好的顺序整理这些更新提议,并把它们打包进区块,为下一步的分发做准备。这些区块将构成区块链。一旦Orderer节点生成了期望大小的区块,或者超过最大等待时间,Orderer会向连接到它特定Channel的Peer发送区块。第三个过程会详述这个流程。
区块中的交易排列顺序和交易到达Orderer节点的顺序没有直接关系。交易在区块中可以是任意的排列顺序,这个次序就是交易执行的顺序。重点是有一个严格的交易排序,但具体是怎样的排序并不重要。
区块中的严格交易顺序排列使得Fabric与公链中一笔交易可以被打包进多个不同区块的情况不同。在Fabric中,这不可能发生,由多个Orderer生成的区块就是最终的区块,因为交易被写入区块后,交易的位置顺序就确定了。这意味着Fabric不会存在分叉。一旦交易被写入区块,以后就不能再重写了。
我们可以看到,peer是存储账本和链码的,orderer完全不会存储这些。每一笔交易到达orderer时,orderer只是机械的将交易打包进区块,而不会理会交易的价值,额度等。这是Fabric的一个重要特性,所有交易都会按照一个严格的顺序进行整理,没有交易会被抛弃掉。
到第二阶段结束时,我们可以了解到orderer的责任就是进行必要的,简单的收集交易更新提议,将他们排序,打包进区块,准备分发出去。
过程3认证
最后一个交易工作流程是分发和验证从orderer到peer的区块,如果验证成功,将会被提交到账本中。
特别的,在每个peer中,在区块中的每一笔交易在更新到账本之前都是验证过的,以保证所有交易都是由相关的组织背书过的。失败的交易会保留,作为日后审查用,并不会更新到账本中。
Orderer除了在过程2中的打包角色外,在过程3中还负责分发区块到peer节点。在这个例子中,O1分发区块到P1和P2。P1处理区块2,然后将区块2添加到P1的账本L1中。同时,P2处理区块2,然后将区块2添加到P2的账本L1中。一旦操作完成,账本L1在P1和P2中都被更新了,每个Peer都可以向连接到他们的应用程序发送处理结果。
Orderer向连接到他的Peer分发区块是过程3的开始。连接到orderer节点的某个渠道的peer,会收到orderer生成的新区块的一份拷贝。每个peer节点都会独立的处理收到的区块,但所有peer处理区块的方式都是相同的。采用这种方式,不同peer中的账本可以达成共识。并不是所有的peer都必须连接到orderer节点,peer和peer之间可以通过gossip协议来传递区块,这样peer也可以独立的处理相同区块。
收到一个区块后,peer会按照交易在区块中出现的顺序依次处理。对于每一笔交易,peer会按照生成这笔交易的链码背书策略检查交易是否被与之相关组织的背书。例如,某些交易可能只需要一个组织背书,而另一些交易需要多个组织同时背书才有效。这个验证过程验证了所有相关组织产生的结果或者输出是否一致。同时请注意,第三阶段的验证和第一阶段不同,阶段一只是应用程序收到背书节点的响应,判断是否需要发送交易提议。如果应用程序发送错误的交易,违反了背书策略,在第三阶段的验证过程中peer还是可以拒绝本次交易。
如果交易背书正确,peer将尝试把交易提交到账本中。为了能写账本,peer必须进行账本一致性检查,保证当前账本的状态与账本更新后的状态一致。这个状态并不总会是一致的,即使交易拥有完整的背书。举个栗子,另外一笔交易可能已经更新了账本中的同一个资产,以至于我们正要更新的交易将永远不会被写入账本。这样的话,每个节点中的账本必须通过网络保持共识,每个节点的验证方式是一样的。
在peer验证完每笔独立交易后,将更新账本。失败的交易会保存下来作为审查资料。这意味着peer中的区块和从orderer中收到的区块一致,除了区块中指示交易成功或失败的标志。
我们也要注意到,第三阶段并没有执行链码,这一步只会在第一阶段完成,这很重要。这意味着链码只在背书节点可用,而不是整个网络中都可用,这保证了链码在背书组织中的安全及私密。这和收到链码的执行结果不同,执行结果会分享到所有在Channel里的peer,不论他是否能背书交易。背书节点的这种设计方式是为了方便扩展。
最后,每次区块被提交到peer的账本中时,这个peer会生成对应的事件。区块事件包含区块的所有内容,而区块交易事件只包含简要信息,比如每笔区块中的交易是否有效。由链码的执行而产生的链码事件也可以在这个时候发布。应用程序可以注册这些事件,当这些事件发生时,可以收到通知。这些通知在交易工作流程的第三阶段和最后阶段完成。
总的来说,我们可以知道第三阶段由orderer产生的区块被不断地同步到账本中。区块中交易的严格排序能让每个peer在区块链网络中始终如一地验证交易并提交到账本中。
Orderer和共识
整个交易工作流程被称为共识,因为所有peer都认同交易的排序和内容,在执行过程中由orderer节点来协调。共识是多步骤的过程,应用程序只会在共识过程结束时收到通知,但通知的时间在不同的peer上可能不同。
我们将会在后面更多的探讨orderer,现在,把orderer仅仅当做从应用程序收集、分发账本更新提议到peer,由peer进行验证及更新账本的过程。
超级账本什么时候出的
2017年3月。超级账本是一个旨在推动区块链跨行业应用的开源项目,由Linux基金会在2015年12月主导发起,于2017年3月底正式推出。基金会,是指利用自然人、法人或者其他组织捐赠的财产,以从事公益事业为目的,按照本条例的规定成立的非营利性法人。
什么是超级账本?超级账本(hyperledger)是Linux基金会于2015年发起的推进区块链数字技术和交易验证的开源项目。通过创建通用的分布式账本技术,协助组织扩展、建立行业专属应用程序、平台和硬件系统来支持成员各自的交易业务。
什么叫区块链经济区块链经济最重要的是账本1、在区块链经济中不得不提到的就是账本,在每一个链上都有一个区块,账本也是无处不在的,同时这些账本并不是只记录交易,而是由一些规律的数据组合而成的。
2、从根本上来看,账本描绘了经济和社会关系。人们对事实及其变化达成一致(即对账本内容达成共识,以及对账本的精确性充分信任)是市场资本主义的基石。制度加密经济学给了我们一种工具用来理解区块链革命正在发生什么,以及我们无法预测的事情。
3、区块链经济也是区块链技术带来的一种现象,目前很多企业都采用了区块链技术,所以利用区块链技术产生的价值利益就可被称为是区块链经济,大环境下的经济体系也在发生变化,这些系统中离不开的都是账本,所以区块链经济有必然存在的价值。
『陆』 什么是账本区块链,区块链中的账本
区块链技术通俗讲解本质是分布式账本什么是区块链技术?简单解释一下区块链是什么。2019年伊始,一种新的货币开始进入数字货币的行列,并逐渐吸引了众多数字货币玩家的目光,那就是区块链科技。但是有人发现网上关于它的消息真的少得可怜,这不仅引起了很多人的疑惑,这是什么,为什么这么神秘?区块链是比特币最早的基础技术,目前全世界都在研究,可以广泛应用于金融等各个领域。
基本原理编辑
区块链的基本原理不难理解。基本概念包括:
交易:导致账簿状态发生变化的操作,如增加一条记录;
区块:记录一段时间内发生的交易和状态结果,是对当前账簿状态的共识;
链式:由块按照发生顺序串联而成,是整个状态变化的日志记录。
如果把区块链看成一个状态机,每一次事务都是一次改变状态的尝试,而每次协商一致产生的块就是参与者。
阐述编辑
用通俗的话来阐述:如果我们假设数据库是一本账本,那么读写数据库就可以看作是一种记账的行为。区块链技术的原理是在一段时间内找出最快最好的记账人,这个人来记账,然后把账本上的这一页信息发给整个系统的其他所有人。这相当于将数据库中的所有记录都进行了更改,并发送到整个网络中的每一个其他节点,因此区块链技术也称为分布式账本。
什么是“区块链”?
区块链有两个含义:
1、区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法。
2、区块链是比特币的底层技术,像一个数据库账本,记载所有的交易记录。这项技术也因其安全、便捷的特性逐渐得到了银行与金融业的关注。
狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。
广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。
区块链中的超级账本是什么?账本(Ledger)是具有一定格式与若干账页组成,以会计凭证为依据,对所有经济业务进行序时分类记录的本籍,也就是通常我们所说的账册。区块链表示一种特有的数据记录格式,区块链就是“区块+链”,所谓的区块就是数据块的意思,每一个区块之间通过某个标志连接起来,从而形成一条链。
Hyperledger(中文名为超级账本,统称为Hyperledger)是Linux基金会于2015发起的推进区块链数字技术和交易验证的开源项目。Hyperledger的目标是让成员共同合作、共建开放平台以满足来自多个不同行业各种用户的需求,同时能大大简化业务流程。Hyperledge啲创始成员有IBM、Intel、思科等大公司。截至本书完稿时已经加入Hyperledge啲机构和公司已经超过183个,并高速增长中。
Hyperledger项目成初Linux基金会已经收到了多个不同的代码库,包括IBM代码库(一定程度上受以太坊启发),还有DAH(BitsofProof比特币代码库)和Sockstream代码库(是比特币代码库的扩展)。除此之外还有DigitalAsset和Ripple等贡献的代码。随着行业的发展,单一的项目已经无法满足业务的需求,因此Hyperledger逐步由一个单一的项目发展成了一个项目组。目前Hyperiedger已经不是某个具体的技术,而是代表一组区块链技术框架的集合。截至目前,Hyperledger项目组中一共包含9个正式项目和50多个这些正式项目的相关模块。
链乔教育在线旗下学硕创新区块链技术工作站是中国教育部学校规划建设发展中心开展的“智慧学习工场2020-学硕创新工作站”唯一获准的“区块链技术专业”试点工作站。专业站立足为学生提供多样化成长路径,推进专业学位研究生产学研结合培养模式改革,构建应用型、复合型人才培养体系。
金窝窝所说的区块链分布式记账是什么意思?金窝窝所说的区块链分布式记账是什么意思?,该怎样去理解金窝窝区块链技术的分布式记账?
区块链技术也称为分布式账本,通俗的来讲,如果我们把数据库假设成一本账本,读写数据库就可以看做一种记账的行为,区块链技术的原理就是在一段时间内找出记账最快最好的人,由这个人来记账,然后将账本的这一页信息发给整个系统里的其他所有人。这也就相当于改变数据库所有的记录,发给全网的其他每个节点,不仅可保证数据安全,还可以保证数据的真实性,从而提升社会信用度。
金窝窝的区块链技术所说的分布式记账有什么特点?,如何简单理解金窝窝网络科技的区块链技术的分布式记账功能?
区块链技术采用了分布式记账的模式,不论是在登记结算场景的实时对账能力,还是在数据存证场景上的不可篡改能力,都可以为溯源、防伪、供应链场景提供有力的保障。而金窝窝是以区块链技术源头来保证产品数据安全。
我们该如何理解金窝窝区块链技术的分布式记账?
分布式存储是一种数据存储技术,通过网络使用每台机器上的磁盘空间,并将这些分散的存储资源构成一个虚拟的存储设备,数据分散的存储在网络中的各个角落。
金窝窝区块链技术中的分布式储存是什么?
重庆金窝窝分析研究区块链技术中的分布式储存如下:
一是区块链每个节点都按照块链式结构存储完整的数据,传统分布式存储一般是将数据按照一定的规则分成多份进行存储。
二是区块链每个节点存储都是独立的、地位等同的,依靠共识机制保证存储的一致性,而传统分布式存储一般是通过中心节点往其他备份节点同步数据。
金窝窝是如何解释区块链即分布式账本模式的?
区块链技术也称为分布式账本,通俗的来讲,如果我们把数据库假设成一本账本,读写数据库就可以看做一种记账的行为,区块链技术的原理就是在一段时间内找出记账最快最好的人,由这个人来记账,然后将账本的这一页信息发给整个系统里的其他所有人。这也就相当于改变数据库所有的记录,发给全网的其他每个节点,不仅可保证数据安全,还可以保证数据的真实性,从而提升社会信用度。
区块链的信任来自于底层技术,即用历史信息换得现行的信任。这是一种低成本的信用机制,从诞生到慢慢地茁壮成长,即区块链,必然会得到关注和推广。
区块链的分布式记账是什么意思?
这个问题问的好,我举个例子吧,比如我在银行存了100元,这个存钱的数据只记录在银行的数据库,别人无法获取,即“中心式记账”。而区块链是是分布式记账,是一种新的信息记录技术,而且是“加密的”“分布式的”,数据不存在一个中心了,而是在全网的计算机上都存一次。比如我向你转了100元,我会向全网所有的计算机都喊一嗓子,大家一起记一下账,即“分布式记账”。
金窝窝区块链技术中的分布式的储存是什么?
重庆金窝窝分析:大数据,指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。
大数据需要应对海量化和快增长的存储,这要求底层硬件架构和文件系统在性价比上要大大高于传统技术,能够弹性扩张存储容量。
金窝窝网络:区块链中的分布式储存是怎样的?
金窝窝网络分析:在区块链中,数据被存储在不同计算机上,不仅实现了去中心化,还拥有高度的加密性和安全性,同时也降低了成本。
而且如果你的电脑有多余的存储空间,你甚至还可以把多余的存储容量租出去,一举多得。