identity智能身份区块链
❶ 说说你所理解的元宇宙
首先我们要了解元宇宙的概念是什么。元宇宙(Metaverse)是虚拟时空间的集合,是利用科技手段进行链接与创造的,与现实世界映射交互的虚拟世界,具备新型社会体系的数字生活空间。那就让我来说说我所了解的元宇宙是什么。
一、元宇宙的概念来源。
元宇宙的八个关键特征:即Identity (身份)、Friends(朋友)、Immersive(沉浸感)、Low Friction(低延迟)、Variety(多样性)、Anywhere(随地)、Economy(经济)、Civility(文明)。
各个特征都有它能够实现的路径。有三大实现路径:①沉浸和叠加。沉浸式路径的代表是VR技术;②激进和渐进。通往元宇宙的路径,一直有激进和渐进两种方式;③开放和封闭。元宇宙的路径还存在开放和封闭两种关系。
总结:以上就是我关于元宇宙的全部理解。在现实世界,我们大部分人都在工作,被称为劳工。随着进入元宇宙时代,大部分人是不工作的,少量的人在做创新创造和指挥机器人的工作,所以大部分人会在元宇宙时代从劳工转变为玩工,在元宇宙里面进行娱乐游玩,从而进一步产生经济价值。这是元宇宙当中资本化的逻辑。所以元宇宙的发展是非常有必要的。
❷ 元宇宙和区块链有什么联系
区块链能解决Identity(身份)、Economy(经济)问题;VR能解决Immersive(沉浸感)问题,5G和云计算能解决Anywhere(随地)、LowFriction(低延迟)问题;开放的UCG内容生产以及游戏模式,为解决Variety(多样性)、Civility(文明)和Friends(朋友)提供了一种解题思路,由此共同组成一个完整的元宇宙解决方案。
区块链在元宇宙的价值具体体现:
1.支付和清算系统
基于区块链的基本特征包括包括不易篡改、公开透明、P2P支付等。在元宇宙中,经济系统将会成为其实现大规模持久运行的关键,而区块链技术由于其天然的“去中心化价值流转”特征将为元宇宙提供与网络虚拟空间无缝契合的支付和清算系统。
2.智能合约部署
由于区块链网络本身的公开透明特性,使得智能合约具有自动化、可编程、公开透明、可验证等卓越特性,从而无需在第三方验证平台的前提下即可进行链上可信交互。如果将元宇宙中的金融系统构建于区块链之上,那么可以利用智能合约的特性将契约以程序化、非托管、可验证、可追溯、可信任的方式进行去中心化运转,从而大幅降低金融系统中可能存在的寻租、腐败和暗箱操作等有害行为,可广泛应用于金融、社交、游戏等领域。
❸ 区块链技术赋能Web3.0
Web3.0将是一个价值互联网,它的开放性、信任的建立和身份管理等与Web2.0有很大区别。区块链的发展正好为Web3.0建立了基础技术基础,并将在Web3.0中起到关键作用。在Web3.0中,与区块链相关的技术包括:点对点网络技术,数据存储和交换系统,数字身份,基于区块链的金融网络,基于区块链的信任系统和智能合约等等。
Web 3.0最初被万维网(WWW)的发明者Tim Berners-Lee称为语义网,其目标是成为一个更加自治,智能和开放的互联网。Web 3.0的定义可以扩展如下:数据将以分散的方式互连,这将是对我们当前的Internet的巨大飞跃,在Web 2.0中,数据主要存储在集中式存储库中。此外,用户和机器将能够与数据进行交互。要做到这一点,程序需要在概念上和上下文上理解信息。考虑到这一点,Web 3.0的两个基石是语义Web和人工智能(AI)。
从使用者(用户)的角度理解,Web3.0 与 Web2.0 在呈现形式和体验上将得到多方面的提升,以下特点是产业界比较认可的一些方面:
同时,随着网络能力、人工智能的发展,随着数据的爆发式增长,Web3.0网络的建设将对Web2.0而言将是一个颠覆式的发展,这体现在Web3.0将必然是开放的,去信任的,无许可的网络,从而实现互联网的真正愿景。
Web3.0将是一个价值互联网,它的开放性、信任的建立和身份管理等与Web2.0有很大区别。区块链的发展正好为Web3.0建立了基础技术基础,并将在Web3.0中起到关键作用。在Web3.0中,与区块链相关的技术包括:点对点网络技术,数据存储和交换系统,数字身份,基于区块链的金融网络,基于区块链的信任系统和智能合约等等。
点对点网络系统:P2P Networking
Web1.0 和 2.0采用的网络架构围绕核心网,接入网和局域网的架构展开。这样的网络基本上是一个星型结构,数据的交换从端向上经接入网至核心网络,再向下逐级路由至其目标地址。互联网应用所依靠的计算和存储相对集中,网络一旦发生故障或者不堪重负,将立即出现服务故障。互联网巨头的服务故障屡见不鲜,影响巨大。
Web3.0 的网络将更加具有弹性,数据通信更多地建立在点对点网络之上,点对点网络依赖于Web2.0现有架构作为基础设施,而在其上构建虚拟的P2P网络层。每一个用户节点/终端同时连接多个终端节点,网络通信通过终端之间的直接连接或者通过第三方中继。这样的连接有诸多好处,比如:节点可以同时从多个路径获取信息,因此数据访问速度可以更加高效;当数据有多个副本的情况下,可以从最近的节点获取信息,网络资源利用率高;对网络故障的容忍度大大提高,部分网络的故障,并不会影响到通信的效果;网络链接丰富,数据传播速度非常快。
点对点网络也是保障 Web3.0 其他特性的基础,我们在下面几节中会有所描述。LibP2P 是目前较为成熟的点对点网络技术,包括IPFS,Filecoin,Ethereum2.0等为Web3.0 提供服务的平台的网络都建立在 LibP2P 之上。
使用点对点网络的终端需要持续保持并维护较大量的网络链接,并能够较智能地感知网络问题,抵抗恶意链接及攻击等。这给 P2P 网络发展带来挑战。同时,P2P 网络是建立在现有网络的基础之上,需要对现有网络协议的全面支持,受网络规模效应的影响,P2P 网络的发展将首先从与区块链相关的技术设施开始,逐步扩展到更广泛的领域。
数据存储和交换系统 - The Underlying File System
Web1.0 和 Web2.0 建立在 HTTP 协议之上。HTTP协议提供简单的通过路径(URL)的文件访问方式,用户可以通过URL 访问文件和网页内容。
HTTP是一种客户/服务端(Client-Server)通信协议,其构成了当前互联网几乎所有数据交换的基础。客户端-服务器一词意味着有一个请求方(客户端-通常是Web浏览器)从服务器(提供信息的计算机-通常是网页或网页的一部分)中请求信息。该协议借助域名服务器(DNS)服务器来定位文件路径。DNS服务器本身就是一个大型网络,其中包括十三台根服务器,以及向下链接的众多区域服务器。DNS服务网络本身就是一个中心化的网络,有些攻击就是直接针对DNS网络进行的。
使用Web 3.0时,该机制正在发生变化。最有可能取代当前DNS系统的技术称为行星际文件系统(InterPlanetary File System),简称IPFS。当HTTP逐步被IPFS取代之时,确实,我们可能倾向于将其称为Internet 3.0。
IPFS网络同样需要对文件(内容)进行寻址,但与HTTP协议完全不同的是,IPFS的寻址服务不再依赖于类似DNS网络这样的中心化服务,而是完全通过去中心化的分布式哈希表(DHT:Decentralized Hash Table)来进行。IPFS的网络层就是 LibP2P,所以他能够提供更大的弹性和容错性。同时,IPFS借鉴了点对点文件系统的诸多技术来形成一整套协议,这些技术包括:BitTorrent,Git,SFS等等。
IPFS的内容寻址方式实现原理非常简单,就是对内容进行散列(Hash)运算,生成内容相关的独一无二的内容标识(CID:Content Identity)。Hash算法的防碰撞特性保证了标识的唯一性,因此这种标识又称为内容指纹;Hash算法的确定性保证了同样的内容将生成同样的标识,因此,在同一个存储网络中,可以进行内容去重,从而实现更高的存储效率。
IPFS的目标是建立一个统一的分散的不依赖单个实体的存储平台,这与区块链的思想一脉相承。与 HTTP 相比,IPFS有很多优势:
IPFS的这些特性构成了Web3.0数据存储的基础,因此,IPFS的这些特性,也就成为Web3.0的特性。IPFS网络目前已经成功运行数年,作为一个公益的、开放的、开源的网络,它的运行非常成功,但是,对于商业运行而言,由于缺乏激励层和难以协调分散节点的服务保障体系,还存在诸多挑战,这些挑战,也是 Filecoin 等存储相关的项目希望解决的部分。
基于密码学的数字身份 - Digital Identities
数字身份是区块链发展带来的另一个重要技术。它可能成为Web 3.0的最重要功能之一。在当前的互联网络中,从身份盗用到点击欺诈充斥着互联网的每一个角落,发生这种情况的原因是两台计算机之间的连接未正确进行身份验证。在Web 2.0网落中,服务器永远无法确定访问它的客户端软件是假装的—在可识别的人的控制下浏览器。在等式的另一边,浏览器也不知道它正在访问的服务器和文件是否是它打算访问的文件。
但是,如果这种互动中涉及的所有事物都具有可验证的身份,那么进行欺诈和欺骗就更加困难了。使用数字身份证,每个人拥有一个可验证的身份,因为每个身份都必须链接到唯一的凭证。同样,组织也具有一个可验证的身份。至于客户端和服务器之间交互所涉及的所有其他内容(硬件和软件),这些东西可以直接绑定到属于个人或组织的唯一ID。而且,由于采用了零知识证明等技术,任何一方都有可能证明他们是真实的,甚至不用透露自己的身份。
数字ID启用Web 3.0的两个重要功能:
这其中非常重要的原因在于用户的身份认证和行为验证统一了起来,加密技术应用到每一条消息,使得安全性大大提高。当然,这些也提高了终端使用的成本,而且道高一尺、魔高一丈。随着计算技术的进步,加密的强度和算法也会演进,同时,安全性也依赖于用户对自己的私钥的保护。
基于区块链金融网路 - Decetralized Finance
到目前为止,我们提到了两个技术基础:分布式文件系统和数字身份,都与区块链技术相关。区块链对 Web3.0 的重要性不言而喻,但是其最重要的贡献还在于其创建通证、并通过精巧设计的经济模型来维护啊网络的能力,也包括使用此类通政进行小额支付的能力。
在一个区块链为基础的 Web3.0 网络中,金融的运作方式与传统金融有很大的区别,金融更加程序化,变化更灵敏快速。无需银行和机构为其背书,金融市场也是一个算法市场。这里,不仅仅具有价值储存的通证,可以进行高额的价值存储和转移,同样,也具有类似于闪电网络的快速交易的小额支付能力,不同的通证提供了不同的功能。更加令人兴奋的是,整个金融市场完全是一个算法市场,不受机构的控制,因此,可以进行基于算法的股权交易、借贷市场、不停歇的即时交易、保险、期货等等都可以构建,并不断创新。
关于信息价值,Web3.0与Web2.0完全不同,由于通证化,信息的价值可以直接在交易中体现出来,实现价值流和信息流的统一。而不同于Web2.0中的充满假象的免费服务,实际上服务商通过迂回的方式通过广告和挖掘用户的数据价值牟利。
网络构建信任 - Trustless
有人可能会争辩说,区块链最重要的贡献是自动信任。这超出了区块链可以通过建立信任网络通过数字ID提供的安全性。
一些区块链可以创建“智能合约”,这些程序附在区块链上,并在特定的区块链事件触发时执行。关于智能合约的重点是程序代码是合约。
这使得智能合约比法律合约更具确定性。法律合同是通过法律制度执行的,法律制度的可靠性在一个地方到另一个地方各不相同,但从来都不是完美的。对法律合同提出质疑的结果是不确定的。
但是,智能合约可以100%被信任。智能合约的一个简单示例是通过供应链中的商品移动给出的。发货时会带有RFID标签,该标签会在读取商品时报告其位置。当货物到达特定位置时,智能合约可以自动执行付款-运输,仓储或进口关税。因此,付款是可预测的,并且可以100%相信发生。
自然,智能合约可能比该示例复杂得多。它们可以涵盖法律合同当前涵盖的许多情况,从而减少了欺诈的可能性。
❹ 区块链和数字身份的关系
本文翻译自: https://www.gsma.com/identity/the-relationship-between-blockchain-and-digital-identity
“身份”这个词通常用来表示微妙的不同事物。《牛津英语词典》简洁地将其定义为“一个人或一件事是谁或什么这一事实”;ISO29115更倾向于更广义的定义:“与实体相关的属性集”。
因此,身份不是一种单一的特征,而是一组因关系而异的属性,而且这些关系的多样性可以通过确证提高被声明的身份的可信度。
在物理世界中,这是相当简单的。例如,政府机构可以证明公民的照片、姓名和地址;这些信息可以通过银行或电信供应商进行的身份检查得到证实,这些银行或电信供应商受到监管,以“了解客户”,从而增强与给定身份相关的属性的可信度,从而增强身份本身的可信度。
数字身份需要以类似的方式发挥作用,但数字世界的性质使其更加困难。
特别是,数字身份所面临的一些关键挑战包括:
这些需求也是区块链背后的基本构建块。
用户的数字身份在区块链中可以表示如下:
在这里,用户的身份作为一个自声明块开始进入区块链,其中包含用户的身份属性(散列)和用户的公钥,所有这些都是用用户的私钥签名的。在此阶段,对用户身份的信任程度处于基本水平。
其他实体(例如与用户有关系的银行或电力供应商)也在区块链中表示,它们具有自己的散列属性和公钥集。这些实体可以通过签署与该关系相关的用户的特定散列属性来与该用户建立关系。例如,如果用户断言的属性值与Passport Office记录的值相匹配,那么Passport Office可以对经过散列处理的地址、姓名和主题照片进行签名。
当在区块链中为用户建立越来越多的关系时,对属性的准确性的可信度(因此身份本身)就会自然地增长。此外,随着涉及用户的事务越来越多(其他用户或实体验证或信任用户的散列属性),身份的“信誉资本”也会增长。换句话说,对身份的准确性的信心会增加,对身份背后的人的可信度的信心也会增加,这是基于他们在网上做了什么——所有这些都是透明的,任何人都可以通过区块链看到。
如果用户和实体之间的任何关系发生了变化,可以在区块链中建立一个带有加密签名时间戳的单独块,从而使任何新的验证程序都可以在加密保护的序列中观察以前的关系和当前的关系。
用户交互的任何服务的一个关键方面是在便利性和安全性之间找到适当的平衡。正如Eve Maler曾经指出的,“一个0%安全性和100%功能性的应用程序仍然是一个应用程序,但是一个100%安全性和0%功能性的应用程序是没有用的”。
在区块链中表示数字身份的块使用与用户关联的公钥进行标识,而相应的私钥是用户需要保持受保护的凭据。因此,在某种意义上,公钥可以被认为等同于用户ID,而私钥则等同于“密码”或生物特征。
然而,公钥不是一个方便的“用户id”,而私钥也不是很容易记住的东西(比如密码)或用户固有的东西(比如生物特征)。安全地存储私钥以确保它不能被其他人使用,同时能够轻松地使用它来断言相关的标识,这是一个真正的挑战。
一种解决方案是引入钱包的概念,通过钱包用户可以自断言其属性并管理其公钥和私钥。然后,可以通过更方便的用户ID(例如用户的MSISDN)识别这个钱包,并使用传统的多因素身份验证机制解锁它。然后用户可以证明私钥的所有权,从而确认他们的身份。
Mobile Connect是支持此类钱包的理想框架,它为用户提供了一种简单的身份验证方法,既方便又安全。
移动连接管理钱包和区块链管理身份分散的方式是一个完美的解决方案,提供数字身份,并以一种“方便安全”的方式提供给用户。
❺ 什么是ZK-Rollup(零知识汇总)
ZK-Rollup(零知识汇总)基于zero-knowledge proof(零知识证明),在发往主链的交易包里包含了一个对应的零知识证明,主链上的rollup(汇总)智能合约只需验证这个零知识证明。
这个零知识证明不会透露任何交易细节,但能通过与智能合约不断交互,证明上链的所有数据的有效性和真实性。
优点:
l高度的去中心化
l隐私性好:零知识证明不会透露任何交易细节
l上链效率高:一次性提交多笔操作的结果,节约时间和gas fee
l验证效率高:无需等待期,快速完成资产取出动作
l安全性极高:zk技术保证了提交给主链的数据真实有效,同时主链可随时还原侧链发生的交易细节(即拥有主链的数据可用性),因此拥有以太坊级别的安全性
缺点:
l技术开发难度大
l难兼容不同智能合约
l需要大量运算
代表项目:
l路印:成熟的zk技术运用,获得4500万美元私募,当前市值超8亿美元
lZKSync:旨在为以太坊带来 Visa 级别、每秒数千笔交易的吞吐量
链乔教育在线旗下学硕创新区块链技术工作站是中国教育部学校规划建设发展中心开展的“智慧学习工场2020-学硕创新工作站 ”唯一获准的“区块链技术专业”试点工作站。专业站立足为学生提供多样化成长路径,推进专业学位研究生产学研结合培养模式改革,构建应用型、复合型人才培养体系。
❻ Identity Verification Using Blockchain (区块链身份认证)
Model based on Dave Birch's article: http://www.chyp.com/putting-identity-on-the-blockchain-part-2-create-an-identity-model/
User's verifiable attributes of the identity, such as name, age or address are hashed, then digitally signed by a trusted body. Hash with the signature then stored on the Blockchain or DLT and users store their verified ID information encrypted on their phone and carry it with them. During the verification process, user provides the relevant original information with the signed data (retrievable address on the Blockchain or DLT) to a 3rd party, and if the 3rd party can reproce the hash from the provided information, match it with the one stored on the Blockchain and trust the signature, then the identity of the user can be treated as verified.
Benefits of using this approach:
用户可验证的身份属性(如姓名,年龄或地址)经过哈希处理,然后由受信任的机构进行数字签名。将签名及哈希数据存储在区块链或DLT中,用户将其验证的身份信息存储在手机中加密并随身携带。在验证过程中,用户向第三方提供相关的原始信息和签名数据(例如区块链或DLT上的可检索地址),如果第三方可以从提供的身份信息经哈希处理后,能将其与存储在区块链上的信息匹配并信任签名机构,那么用户的身份可以视为已验证。
使用这种方法的好处:
❼ 去中心化DID身份认证的技术解析
去中心化数字身份(Decentralized Identity,DID)是基于区块链技术建立起来的一种数字身份系统。它可以保证身份数据真实可信,同时也能保护身份用户相关的隐私,确保跟个人身份相关的数据归属于个人所有。很吻合2021年11月开始实施的《中国个人信息保护法》,有没有?
V1.0 传统的身份认证 :用户在每个网站上都重复注册账号,使用账号+密码的方式登录,每个网站各自掌握着用户的身份信息,如图1(a)所示。
缺点 :重复注册账号,用户会时常不记得账号密码;而且多个网站都有用户的信息,也导致信息泄露。
V2.0 以单点登录代表的身份认证 :用户在一个网站上注册的账号,可以授权登录到其他网站,比如在支付宝、微信、facebook、google等网站注册号账号后,授权登录到其他网站,如图1(b)所示。
缺点 :用户的信息都掌握在几个大网站内,会有”店大欺客“的成分存在,也容易出现信息泄露的情况,如facebook的用户信息泄露问题。
V3.0 去中心化的身份认证 :用户保管自己的身份信息,在必要的时候,以最小化的方式出示给各个网站确认即可,如图1(c)所示。
算缺点么? 需要区块链作为底层技术支撑,将区块链作为一个可信任的第三方,来保证身份信息的完整性和正确性。
DID 文档是对DID的详细说明,是一对一的关系,可以看作由两部分组成:DID metadata,以及 DID public key,如图4(a),其中public key是关键,用于数字签名或加密操作等。
一般 DID 由用户自己保存,而将DID document 保存在区块链上(可以DID为 key 做索引),以保证DID document 的正确性。
当用户在区块链上注册 DID 时,可以根据智能合约生成DID 及相关的document,并由智能合约负责 DID在链上的读取和更新等。
DID的认证过程涉及四方的交互:证书颁发者,证书持有者(可以拥有一个app保存多张证书凭据VC),验证方,以及DID注册系统(比如区块链)。
证书颁发者是一个权威机构,比如某大学、公安机关等;持有者会保存权威机构发布的凭据VC(比如从大学拿到的毕业证,公安机关拿到的身份证等);验证者会对这些凭据的表示(VP),并结合区块链上的信息进行验证。
DID认证的前提是权威机构、VC持有者、验证者都已经在区块链上注册了各自的ID。
VC(Verifiable Credential) : 可验证的凭据,这相当于大学颁发的毕业证,或是公安机构颁发的身份证等。其格式如图4(b)所示,包括:
(1) VC metadata,比如发行人、发行日期、声明(claim)的类型等;
(2) claim: 是一个或者多个关于主体的说明,比如身份证凭据的声明包含:姓名、性别、出生日期、民族、住址等;
(3) proof证明:保存了颁发者的数字签名,用于验证该VC的正确性及来源等。
有些实现方案中使用app或是钱包存储VC,持有者自己保管,也可以将VC存在区块链中,作为私密数据保存。
VP(Verifiable Presentation) : 可验证的凭据表示,或者说是可验证的凭据的展示方式,有些场景下持有者不便于将VC直接给验证者看,或者一次验证中会涉及多个VC,所以就将一个或多个VC包装成VP,其格式如图4(c):
(1) VP元数据,包含了版本等信息;
(2) VC列表,要对外展示的VC的内容,如果是选择性披露或者隐私保护的情形,就需要对原始的VC做一些变动并加上对变动的证明。
(3) proof证明,主要就是持有者对本VP的签名信息。
VC中的claim五花八门,可能是大学毕业证书、身份证、驾驶证、结婚证等,为了能正确地解析,就需要提前在区块链中注册其解析方式。
这种事情一般由Authority来完成,按照业务场景分类,定义不同类型数据结构的Claim结构,并注册在区块链上,以保证全网通用。
以身份证为例,其完整的VC凭据包括姓名、性别、出生日期、民族、住址、照片等。在买火车票时,可能只需要姓名和身份证号码;上学报名时,可能仅需要姓名、出生日期等;确认少数民族身份时,必须要明确民族信息。所以很多场景下,不是全部选项都需要,可能只需要其中的一两项,可以仅仅披露必须项。
但如何确认披露的这几项是正确的,没有被修改过呢?这里用到了经典的Merkle Tree结构,如图5所示。比如在只需要披露生日的场景下,就可以借用”生日“的兄弟选项”民族“,以其到树根的路径<Hash1, Hash34> + MerkleRoot 来验证”生日“的正确性。
比如证书到期了,颁发者需要撤销之前发布的凭据VC,这里用到了密码学中的累加器。
在颁发者发布VC时,会给每个VC都设置一个大素数,并保存所有大素数的RSA累加结果;当需要撤销某个VC时,就先用该VC的大素数去除Accumulator,并更新Accumulator,之后验证时,用 VC 对应的大素数去除 Issuer 公开的 Accumulator,如果能整除,则表明是VC是有效的(未被撤销)。
基于Ethereum,比较知名的DID是uPort。我也曾关注过Hyperledger的DID项目 Hyperledger Indy,但其底层采用了自己的一套区块链架构,而非Hyperledger Fabric,这估计是基于Fabric 的DID实现的场景较少的原因。微众银行FISCO BCOS基于自己的BCOS架构,实现了自己的一套 WeIdentity .
该章节只简单讲述了DID是什么,并粗略介绍了其使用原理,还有很多细节未能一一道来,如需要更多细节请移步:
在本文中介绍了DID的单一实现方式,今天看到另外一篇博客 Demystifying Digital Identity (2/2) 或参考其翻译 揭开数字身份的神秘面纱2/2 ,建议通过一组链接文档来实现扩展的DID,以信息图谱的方式来组织文档,如主链、关联的多个账户、分类的基本信息profile、关联的外部服务或资源等,如下图。这样的DID,就可以对接任何应用程序、服务或用户,而且是一个全球可用的、分布式的、可审查的DID。
❽ 区块链之联盟链(三) 认识Fabric
Fabric 是超级账本联盟推出的核心区块链框架,它适合在复杂的企业内和企业间搭建联盟链。根据超级账本联盟的目标, Fabric 被建设为一个模块化的、支持可插拔组件的基础联盟链框架。;
与以太坊系的Quorum不同,Fabric从一开始就只考虑企业间的应用。其独有的channel概念,将企业根据业务目的不同以不同的子网连接起来, 每一个子网对应一个channel,而每个channel有自己独立的区块链。而Quorum很显然是只有一个公网(所有企业节点都加入进去),企业与企业间的私有业务是通过Private Manager 完成的。
理解channel的最简单方法就是,将它类比为一个消息服务提供的Topic,实际上Fabic最早就是基于Kafka 的分布式消息服务来实现。
在Fabric网络中,一个企业可以有一个或多个节点加入整个联盟链;一个企业可以加入1个或者多个Channel(子网); 一个节点可以加入1个或者多个channel。每个channel构成一个子网,所以Fabric 是 一种由子网组成的网络。
那么Fabric是怎么实现智能合约的执行和完成业务上链(将事务结果记录在区块链里)的呢?
与其它框架不同, Fabric 将整个过程分成了三个阶段:
业务背书阶段 : 客户的请求发送的背书节点,通过智能合约完成业务的计算(但不更新状态),并完成背书;将背书结果返回个客户端。
业务的排序阶段 : 客户端将背书结果通过Channel被发送到排序节点(orderer),在排序节点完成事务的排序,并打包到block里,最后下发给所有连接到channel的节点。
业务验证并写入账本阶段 : 通过Gossip 网络,所有Channel的节点都会接收到新的block,节点会验证block中的每一个事务,确定是否有效:有效地将会跟新world state,无效的将会标志为“无效”,不会更新World state,但整个block会被完整的加入到帐本中(包括无效的事务)。
根据以上的描述,Fabric 节点实际可以分为 ,普通节点和Order节点:
Peer, 普通节点, 完成背书(包括只能合约的执行)和验证.
orderer, 排序节点,完成排序。
加入orderer节点的Fabric网络可以被描述如下:
每一个Channel,都定义了所有属于channel的节点,但是并不需要所有节点都连接到Orderer 节点(节点间可以通过gossip 协议通讯来传播私有数据或事务).
在区块链中,共识是区块链的基础。与公有链不同,联盟链的共识要求所有加入账本的事务是确定的、最终的,也就是不可以有分叉,区块与区块间的顺序是一定的,只存在唯一条链。在Fabric 中,这个客观需求正是由排序实现的,所有的事务将被提交给orderer节点获得确定的顺序,并最终打包成block进入帐本。 Fabric 从1.4.1开始支持基于Raft实现排序服务, 可以认为基于Raft实现共识。
基于RAFT的排序服务相对于早期的Kafka 具有更好的分布性,配置更加简单,是联盟链里常用的一个常用的达成共识的算法,Quorum就 默认使用RAFT作为共识层。简单的说,RAFT是一个leader和follower的模式, 所有加入RAFT网络的节点,任意时候都有一个leader, 只有这个leader有权决定事务的顺序,并打包成Block,其它节点只能作为follower提交事务和同步block。
基于FAFT网络,每个企业可以有一个或多个节点参与到Orderer中去。在Frabric中企业间的网络连接可以变化成如下形式:
区块链的使用用户在以太网中被称作EOA(External of Account), EOA的载体是钱包。我们沿用这个概念,来看看Fabric是如何实现用户和发起事务的。Fabric中EOA是一个CA中心发布的certificate(x.509),一个Certificate代表一个Identity(这与以太坊还是有很大区别的, 以太坊中一个EOA其实是一个hash地址),EOA能够参与的channel以及被授权的操作是有channel的MSP( Membership Service Provider)决定的(如下图)。
注:certificate 是一种密码学上验证身份的通用做法; certificate包含了个人的信息,公钥以及发布这个certificate的CA的签名。验证方只需要拥有这个CA的证书(包含CA的公钥),就可以验证这个签名是否正确,certificate的内容是否有篡改。简单的说,通过CA和Certificate,我们可以获得一个可验证的的身份和信任链。
如上图,fabric中通要使用Wallet作为EOA的载体,一个Wallet中可以包含多个Identity(x.509 certificate)。 Identity 通过 CA提供的信任链来验证正确性。
验证了身份之后, Fabric 通过MSP在区块链网络中解决该身份是否代表组织的成员和在组织内具有什么角色。例如,channel首先会验证当前用户Identity是否是有效地身份,然后通过MSP查看其所处的企业和具有的角色,最终确定该用户是否有权执行操作。
可以说,Fabric的访问控制是通过MSP来完成的。在每一个需要访问控制的地方都需要定义一个MSP。 例如,每个channel都定义一个MSP,这个MSP规定了在channel范围内资源的访问权限。 MSP 是Fabric里一个晦涩难懂的概念,也是其赋予企业间安全访问的基础。
前文提到, Fabric 将业务处理和上网分成了三个部分, 背书,排序,验证后加入账本。
其中背书是Fabric执行智能合约的阶段。以太坊中,智能合约是在EVM中执行的,有多种语言支持。 在Fabric,智能合约被称为chaincode: 一个chaincode 可以理解为是智能合约的容器,可以包含一个或多个智能合约, 不用于EVM, chaincode是在 JVM 或NodeJS中执行。
客户应用程序通过智能合约来访问账本,每一个可访问的智能合约都被安装在客户端可以访问的节点上,并被定义在channel里。(有只能合约的节点被称为背书节点,没有只能合约的节点被称未提交节点,提交节点只维护账本)
客户应用提交一个交易请求, 请求到达背书节点, 背书节点首先会验证客户的签名,确保客户的身份有权执行本次交易,接着执行交易提及的智能合约(chaincode),并生成一个背书响应(或者叫做交易提案,tran-proposal)。这个背书响应中通常包含World state 的读集合,写集合, 以及节点对本次交易的签名。这里与以太坊系联盟链最主要的不同是: 背书阶段只模拟交易,并不真正更新交易结果。 而真正更新交易在第三阶段完成。背书节点最后将生成的背书响应fanhui给客户端, 智能合约部分的执行就结束了。
通常一个交易的执行需要多方的签名,所以客户端需要将一个交易发送给多个背书节点,这些背书节点的选择需要满足背书策略的要求。
下图是一个包含有客户、背书节点,提交节点的网络示意图。
根据Fabric官方的参考文档,客户交易的正果过程可使用下图描述。
如上图,从1到3,为背书阶段,4为排序阶段,4.1,4,2, 5为验证提交阶段。 参考 Frabic的节点 概念,可以了解更多在交易细节的概念。
总的来看, Fabric 更专注于企业间,通过上文,可以让大家对Fabric的基本构成与概念有一个总的了解。 Fabric本身并不神秘,都是使用的现有的企业间的技术。要更好的了解,建议参考阅读分布式消息系统和企业的安全基础设施(CA相关)的支持。与以太坊系联盟链实现比较, Fabric 的子网更概念对于复杂企业间应用适应更强,但是其复杂的安全考量,使得运营成本很高,另外,Fabric 使用Certificate做为用户身份,有很大的局限性,在新的2.0里,Fabric对于此处将有所改变。
下一篇,我们将来看看Sawtooth , 由Inter 提供的区块链框架。
区块链之联盟链(一) 认识以太坊
区块链之联盟链(二) 认识Quotum
区块链之联盟链(三) 认识Fabric
区块链之联盟链(四) 认识Sawtooth
❾ 区块链技术未来的发展前景怎么样
区块链行业增长潜力大 五大方面推动技术健康发展
区块链基本概况分析
区块链(Blockchain)技术作为以去中心化方式集体维护一个可靠数据库的技术方案,具有去中心化、防篡改、高度可扩展等特点,正成为继大数据、云计算、人工智能、虚拟现实等技术后又一项将对未来产生重大影响的新兴技术,有望推动人类从信息互联网时代步入价值互联网时代。
美国、日本和欧盟一些国家和地区纷纷将区块链发展上升为国家重要发展战略,大力推动区块链技术研发和应用推广。我国亦高度重视区块链技术创新与产业发展,在IT等企业的共同参与下,涌现出了一大批新企业、新产品、新模式、新应用,区块链在金融、政务、能源、医疗等行业领域的应用逐步展开,正成为驱动各行业技术产品创新和产业变革的重要力量。
区块链发展分为三个阶段,分别是以比特币为代表的加密数字货币以及相关金融基础设施应用的区块链1.0,以智能合约为代表的区块链2.0,目前正在逐步走向基于区块链技术且更为复杂的智能合约深入应用的区块链3.0阶段。
上半年区块链投融资统计分析
2016年以来,我国区块链领域投融资频次和金额急剧增加。据前瞻产业研究院发布的《区块链行业商业模式创新与投资机会深度分析报告》统计数据显示,2018年上半年,区块链领域融资额约107亿,较2017年同期同比增长率达1426%;区块链领域的投融资事件数量达到205件,预计今年区块链领域的投资又将迎来一个高峰。
从中国区块链领域投融资轮次分布来看,初创期投资轮次(B轮以前)占比超过95%,有多行业先行者共同参投,大多数企业还在跑马圈地。
2014-2018年上半年区块链区块链投融资统计及增长情况
数据来源:前瞻产业研究院整理
我国高度重视区块链技术的发展应用。在政策、技术、市场等多重力量推动下,区块链创新步伐不断加快,与云计算、大数据、物联网等技术深度融合,探索应用的范畴也由数字资产向供应链管理、智能制造、工业互联网、社会公益、版权保护等更多领域延伸拓展。
五大方面努力推动区块链技术健康发展,促进数字经济高质量发展
1、深入研究把握区块链技术和产业发展趋势。密切关注国际发展前沿动态,共同推进区块链相关技术和产业研究,推动规范区块链发展行业行为,营造良好的发展环境。
2、加强区块链核心技术能力建设。
建立健全骨干企业、高等院校、研究机构之间的协同推进机制,引导IT企业加强技术储备,加快突破关键核心技术,提升区块链性能、效率、安全性。
3、支持开展区块链领域的创业创新
鼓励区块链企业与用户单位开展跨界融合,指导行业组织建立公共服务平台,支持第三方机构开展区块链服务评估检测,推动丰富区块链的行业应用,服务实体经济转型升级。
4、积极构建完善区块链标准体系
加快推动重点标准研制和应用推广,逐步构建完善的标准体系。积极对接ITU、ISO等国际标准组织,实质性参与更多国际标准化工作,积极贡献更多“中国力量”。
5、加快完善区块链发展政策环境
支持有条件的企业进行应用创新和模式创新,引导和鼓励企业、高校和科研院所联合培养区块链发展所需专业人才。支持符合条件的区块链企业享受国家支持软件产业和中小企业发展的税收优惠政策。
产业规模较小但增长潜力巨大
区块链经济当前处于爆发期前夜。金融行业应用相对广泛,其他行业的应用也进入了探索研发阶段。预计2017年至2022年间,区块链直接市场价值将由4.1亿美元增长到76.8亿美元,复合年均增长率为79.6%,预计2020年各类基于区块链的延伸业务将达到1000亿美元。
行业应用领域不断拓展
金融行业率先应用区块链技术,并已有较多的金融应用落地;医疗行业是区块链应用重要领域,能够更好保护隐私,提高服务质量和管理效率;社会鉴证对于区块链的需求迅速攀升,用以解决因信息不对称导致的证明问题;区块链技术在通信、供应链等其他领域的应用迅速拓展。