区块链技术概述
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
IBM开放区块链参考架构概览(模块与服务)
27
© 2016 IBM Corporation
成员管理(Membership)
成员管理提供会员注册、身份保护、内容保密、交易审计功能 OBC所有成员
– – – – – 首先,通过Registration Authority(RA)注册获得许可 然后,通过Enrollment Certificate Authority(ECA)获得注册安全证书(ECert), 第三步(可选),通过Transaction Certificate Authority(TCA)获得交易安全证书(TCert) 使用二者之一签名发起交易请求 与公有链不同(所有参与方不需要身份认证,可直接进行交易)
© 2016 IBM Corporation
区块链运营对比
18
© 2016 IBM Corporation
IBM开放区块链与Linux社区——开放持续投入
IBM区块链
应用部分
区块链行业应用
增值部分 (模块、工具、 封装)
SDK(API) 共识算法库(插入模块) 成员管理策略 区块链网关 开发工具 管理控制台
保证共享账本适当的可 见性;保证交易是真实 和可验证的
隐私保护
共识
所有参与者一致同意才 意味着交易在网络中通 过验证
更广泛的参与,更低的成本,更高的效率
7 © 2016 IBM Corporation
比特币帐本
什么是区块链?
8
© 2016 IBM Corporation
OBC帐本
什么是区块链?
9
验证节点(Validating Peer) – 进行共识(Consensus) – 运行交易(Transaction) – 维护账本(Ledger) – 发出事件(Event) 非验证节点(Non-Validating Peer) – 维护节点间的安全上下文(Secure Context) – 代表客户向成员服务或验证节点请求服务 – 向应用交付事件(Event) – 处理API请求 应用(Application) – 认证客户 – 把客户映射到安全上下文(Secure Context) – 调用REST API
用户(Client) – 登录与交易
23 © 2016 IBM Corporation
网络拓扑结构
整个OBC网络中含有两种节点,验证节点(Validating Peer)和非验证节点(NonValidation Peer)。前者是全功能节点,构成全连通拓扑结构,后者是代理节点,通常挂接 在相邻验证节点上 应用程序可以连接在验证节点,也可以连接在非验证节点
共识
什么是区块链?
共识是交易验证与确认的过程 当参与方是匿名时 – 交易确认代价高昂 – 的挖矿过程为匿名者提供验证,但需巨 大计算成本(工作证明) 当参与者都是已知且可信时 – 交易确认的成本降低 多种替代方案 – 权益证明, 欺诈性交易产生时需要验证 (如债券交 易) – 多个签名(如5个参与者中3人的同意)
28
© 2016 IBM Corporation
成员管理模型
29
© 2016 IBM Corporation
业务网络动态组建示例:第一个节点
OBC节点相关配置位于github.com/openblockchain/obcpeer/openchain.yaml 在配置文件的peer小节中, – validator_enabled为true表示节点是验证节点,否则是非验证节点 – discovery_rootnode在启动时使用,当这个参数被设置时节点会使用 discovery protocal查找其他节点。这个参数是网络上另外一个节点的 IP,这个节点作为网络上所有节点进行discover的起始点。 – rest_enabled表明节点是否接受REST请求,对于生产环境一般把验证节 点设置为false,只让非验证节点接受来自应用的REST请求
© 2016 IBM Corporation
共享账本
什么是区块链?
记录商业网络中的所有交易 在参与者之间共享 参与者通过同步获取自己的备份 授权许可的,参与者只能看到适当 的交易记录信息 共享的记录系统
10
© 2016 IBM Corporation
智能合约
合约中的商业规则内嵌在区块链系统中,在 交易时被执行 可验证的、被签署的 编码在编程语言中 案例:
企业级区块链需要“可插拔的”共识
13
© 2016 IBM Corporation
行业采用区块链的好处
为什么与业务相关?
减少成本及复杂度
可信的记录百度文库存
提高可发现性
共享的可信流程
14
© 2016 IBM Corporation
区块链——并非万能
为什么与业务相关?
不适用场景 1. 高性能(毫秒级)交易 2. 小型组织 (无商业网络) 3. 寻找数据库的替代方案 4. 寻找消息传递的解决方案 5. 寻找交易处理的替代方案
什么是区块链?
– 在公司债权发生转移时执行定义的合同条 款
11
© 2016 IBM Corporation
隐私保护
什么是区块链?
账本是共享的,但是参与者要求其具有隐私保护 参与者需要: – 交易信息需要保密 – 身份不和交易绑定 交易必须是真实的
密码学是这些步骤的核心
12
© 2016 IBM Corporation
若OBC网络中只有一个VP节点(极端简化),则应用程序可以直接与该节点连接,执行其上 的Chaincode代码,这时VP节点只需要记账,不需要共识
若OBC网络中有多个VP节点,则应用程序可以通过NVP节点(NVP与应用程序可以一对多) 间接访问VP(NVP与VP之间多对一),这时VP节点需要验证交易、运行代码、记录账薄、达 成共识
15
© 2016 IBM Corporation
区块链技术平台对比
16
© 2016 IBM Corporation
为何要用区块链—强信任机制解决中心化系统中信用不连续问题
第一,跨组织协作。在区块链信任机制中,所有成员参与
对信任价值的监督、控制和审计,对地址、链、公钥、私钥、 摘要等几乎所有数据记录的要素,进行全生命周期的协作密码 保护,而且是全球、随机的。一个联盟链,相当于一台全球超 级密码、交换机、密钥签名服务器和密码本的总和, 信用连续。
第二,永不宕机。因为成员的动态运算机制,所有成员节点,
进行实时同步,无法实现局部控制,全球节点的随机分布和相 应在运算时钟和动态时间戳的控制下,永远不停机, 信用连续。
第三,成员监管。区块链强信任的技术特点,来自其节点成
员无中心的安全职责,成员局部的协作综合实现了体系安全的 监管全部,融监管与过程之中,实现了系统学中安全的正反馈 机制,在目前的计算条件下,尚无法通过跨越动态时间戳的可 靠超越, 信用连续。
项目核心范围内
基础部分 共享账簿 (Shared Ledger)
19
代码运行环境 账簿数据结构 模块化(可插式)共识框架 模块化(可插式)身份服务 P2P网络技术升级包
© 2016 IBM Corporation
IBM 开放区块链: 贡献给Linux社区的架构及代码
Community + Code
Application
Chaincode
Validating Peer
Member Services
Application
Non-Validating Peer
Validating Peer
25
© 2016 IBM Corporation
商业票据的Blockchain应用-星形架构
26
© 2016 IBM Corporation
区块链技术概述 2017年五月
1 区块链技术介绍 2 OBC组网与智能合约 3 智能合约的开发与示例
© 2016 IBM Corporation
序
”继互联网后的又一大变革时代到来”、“互联网金融的终极形式”、 “价值互联网的开端”、“Record of Things 记录一切”……
区块链在短短时间内获得了巨大的涟漪效应,IBM在2016年2月开放 了OpenBlockChain技术并贡献给了Linux社区,引起了业界巨大轰 动。那么区块链到底是怎样的一项颠覆性技术?其特点是什么?IBM 区块链平台的特点是什么?未来会如何演变?区块链应用与已有应用 的关系是什么?本片将对这些问题逐一解链并进行探讨。
联盟链
私有链
5
© 2016 IBM Corporation
区块链是支撑比特币的底层关键技术
什么是区块链?
1.
是不受监管的,抗审查的影子货币
• 唯一的, • 不可篡改 • 确定的
2. 区块链确保“类现金”的货币流通
3.
• 区块链 不是
是区块链首个应用
6
© 2016 IBM Corporation
更进一步——什么是(企业级)区块链
Auditability – 审计。如果把审计方加入OBC交易,则它可以看到交易,从而审计是否合规
21 © 2016 IBM Corporation
帐本结构示意
22
© 2016 IBM Corporation
OBC角色划分与工作内容
成员服务(Member Services) – 注册(Registration) – 身份管理(Identity Management) – 可审计(Auditibility)
MEMBERSHIP
包括OBC参与方的 身份识别,隐私, 可审计性。 BLOCKCHAIN | TRANSACTIONS 经过共识过程进行 分布式交易账本处 理。 CHAIN-CODE “智能合约”, 提供 在区块链上运行业 务逻辑的能力。 APIs, SDKs, CLI 为开发人员提供以 可编程方式控制区 块链网络的能力。
成员服务 Member Services
用户Client
用户Client
在OBC网络中需要有一个密钥管理结节,考虑到PBFT算法的3f+1共识机制,典型的容错(允许 一个节点故障)环境需要有 4个Validation Peer节点 24 © 2016 IBM Corporation
单节点和多节点网络
3
© 2016 IBM Corporation
区块链介绍
什么是区块链?
区块链是一种共享账本技术 ,商业网络中的任何参与方 都可以查看交易系统记录(账本)
4
© 2016 IBM Corporation
区块链是支撑比特币的底层关键技术
Pow/Pos/DPos
公有链
区块链技术的分类?
OBC/Etherenum pbft共识
20
© 2016 IBM Corporation
IBM开放区块链名词解释
Transaction – 交易。账页中的一笔记录,用于确认一个事实,执行一段代码(chaincode) Ledger – 账薄(账册)。由首尾相连的一组区块(block,有时也称为一个账页)构成,记录交易和区块世界的状 态 World State – 区块世界的状态。由一组变量组成,指明交易的执行结果 Chaincode – 交易中记录的一段代码,其执行结果会改变区块世界的状态(World state) Validating Peer – 验证节点。OBC区域链网络中的全功能节点,负责验证交易、记录账薄、达成共识 Non-validating Peer – 非验证节点。 OBC区域链网络中的半功能节点,负责验证交易,但不执行交易,也不记录账薄,通常用 于代理 Validating Peer,提供REST service转发功能 Permissioned – 许可。只接受成员接入,不接受匿名接入 Privacy – 隐私。OBC中任何成员都能发起交易,但只有相关方才能知道,其它无关节点无法从交易回溯到交易方 Confidentiality – 保密。OBC中只有交易相关方可以看到交易内容,其它无关节点只能验证交易的真实性
核心API
IBM在Blockchain 上持续投入,致力于 行业应用 – 是Linux开源社区 Hyperledger的主 要贡献方,致力于协同其他公司共同 研发,公布Open Ledger标准(规 格说明书),创建基于Linux的开源 共享账簿(比Bitcoin更适合行业应 用) – 推动区块链技术在行业中的应用(行 业区块链) – Blockchain已经作为一种实验性 (网络)服务在Bluemix上推出 – 基于LinuxOne的开放计算平台对 Blockchain的支持 – …… Hyperledger项目 IBM 社区贡献
什么是区块链?
区块链是一种分布式多节点“共识”实现技术,通过区块链可以完整、“不可篡改”地记 录价值转移(交易)的全过程。区块链的形成按照时间先后顺序进行连接,每一个参与共 识形成的节点都有一份区块链信息的完整副本。
跨商业网络共享的,不 可更改的,分布式交易 记录系统
共享账本
智能合约
交易条款和交易状态内 嵌在区块链系统中,驱动 交易执行