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