(连载一)
概述
本文描述了利用行业用例来驱动后端的区块链架构的原则,并概述了基本的要求以及基于这些用例的上层架构。这里介绍的设计描述了一个还处在演变中的区块链架构,以及处理企业对企业和企业对客户之间交易的协议,它被称为Open
Blockchain(OBC)。OBC允许那些遵守规定,同时提出不同需求的相互矛盾的业务在同一个网络中一同工作。下面要提及的核心要素包括:智能合约(又名chaincode),数字资产,记录仓库,一个基于网络的分布式共识机制,安全加密。除了这些主要部分之外,还增加了一些行业对区块链的要求,包括:性能,验证身份,私有的和保密的交易,一个可插拔的共识模型。
关于OBC所使用的一些专有名词的解释,可以参考 [词汇表](https://blog.esse.io/markdowns/obc-docs/glossary_zh_CN.md)。
背景
区块链是一个新兴的技术模型,可以从根本上改善银行业,供应链,和其他交易网络,为创新和成长创造了新的机遇,同时降低了成本和相关经营活动的风险。随着比特币在交易领域的迅速崛起,自2009年以来,许多企业都投入大量资源去研究其底层技术,该技术支撑了即受欢迎,但又有争议的加密货币。
区块链是点对点的分布式账本技术,首先获得落地的是金融行业,由于其发行容量,买卖,管理,资产服务的效率及安全性问题。分布式账本使其能够很容易的创建一个不需要中心控制节点的成本合理的商业网络,与SoR(System
of
Records)形成鲜明的对比是,在这个生态系统中的每一个成员都需要维护自己的账本系统和协调交易的更新,另一个则是低效的,昂贵的,而且往往需要非标准化的跨组织操作流程。
当共享账本的概念获得了商业世界追捧的同时,区块链的智能合约也得到了很多企业的关注【Eth】。一个智能合约是一组业务逻辑的集合,这些规则被部署到区块链中,被共享,并被一组利益相关者共同验证。一个智能合约可以是一组非常有用的自动化业务处理流程,并以一种授信认的方式,来允许所有利益相关者去处理和验证合约中的规定。在OBC中,智能合约是用chaincode来实现的。
比特币和其他加密货币设计的初衷就是抵制任何的审查--任何人不需要建立身份就可以参与--只需要贡献自己的计算力。在比特币模式之下的区块链,是不需要中心化的认证节点来控制接入的,这些网络被称为无需许可的网络。他们的特性就是要通过无数次的计算来进行工作量证明,但这个花费是非常大的【N09】。
Open
Blockchain是在传统区块链模型的基础上,增加了准入机制,来管理那些想加入核心网络的参与者制,我们称之为**许可网络**。换句话说,OBC是有权限管理的共享账本。OBC节省计算周期,具有良好的扩展性,并提供了大量行业用例中所要求的安全性,健壮的身份认证模型,可审计性和隐私。
进入2016年后,我们可以看到对于企业级的,可扩展的区块链解决方案的需求已经是非常强烈的了。
(连载二)
我们收集了一些必须被考虑的对于区块链的需求来支持下列的抽象用例。
商业合同
商业合同可以通过编程的方式允许两个或两个以上当事人以一种可信的方式自动的履行合约。虽然在区块链上的信息本身是公开的,但企业之间的合同往往需要隐私控制来保证敏感的商业信息不被其他对账本有访问权限的人看到。
然而由于保密协议通常在商业合同中也是非常重要的一部分,因此在很多情况下,合同能够也必须能被所有的当事人很容易的在账本中找到,例如用来保存投标时的出价(询价)的账本。这类合同应该需要被标准化以便投标人很容易的找到。
资产仓库
像金融证券之类的资产必须能够被电子化的保存在区块链网络中,以便这些资产的利益相关者可以方便的访问,同时允许他们直接发起交易,并获得资产信息,而不必通过中介。交易应该能够接近实时的完成,所有的参与者也应该能够接近实时的访问这些资产。利益相关者应该能够为任何给定的资产类型添加业务规则,从而通过实施自动化逻辑进一步降低运维成本。资产的创建者必须能够使资产和任何与该资产相关的交易规则私有化和保密,或者经过授权的公开出来。
供应链
区块链架构必须提供一种手段,允许供应链上的每一个参与者能够输入和跟踪原材料,记录零部件的生产制造过程,跟踪商品的出处及运输,同时维护与该商品相关的所有不可更改的记录,记录包括:生产和储存的各个方面以及整个销售环节。并且能够同时利用到上面提到的商业合同和资产仓库。这个用例主要强调的是能够提供深度搜索和在多个交易中快速回溯的能力,这个需求的核心是要确定被制造的商品以及制造该商品的零部件的出处。
要想获得这些用例及需求的详细信息,并通过图示来进一步了解它们是如何应用到基于区块链的系统中去的。
(连载三)
Open Blockchain 的总体系统架构
下图从三个分类展示了Open Blockchain的参考系统架构:会员管理、区块链和Chaincode。这些类别是按照逻辑结构划分的,而不是按照物理描绘把组件分成独立的进程,地址空间或(虚拟)的机器。
这些组建中的一部分将从头开始兴建,一些会使用现有的开源代码,而另外一些会对接现有的服务来实现所需的功能。
图: Open Blockchain 参考系统架构
会员管理服务用于管理区块链网络上的标识、隐私和机密内容。参与者通过注册来获得标识,而后由管理机构颁发进行交易的安全密匙。如果交易参与者已经授予每个审核者合适的访问权力,信誉管理员可以授权审核者来检查与参与者有关的交易。
区块链服务通过基于HTTP/2的P2P协议来管理分布式的总账,而数据结构也为在过个参与者上保持全面状态同步与复制做了有效的优化。不同的共识算法保证的很强的一致性(允许与BFT非一致的行为,允许破坏性的延迟和过期,或者允许POW检查制度)均可以通过部署植入和配置。
Chaincode服务是以一个安全的和轻量级的沙箱方式在确认节点上运行chaincode。Chaincode的运行环境是一个在一个包括安全的OS和chaincode语音环境的签名的基础镜像集合上的『加了锁的』和安全的容器,运行环境和开发包镜像包括:Go(可用),Java(计划中)和Node.js(计划中)。如果需要的话,其它编程语言也可以被支持。
(连载四)
会员管理(MEMBERSHIP)
Open Blockchain使用的是一个私有交易确认者网络协议,因此所有单元都要求向会员管理服务注册,从而获得一个在区块链网络上具有访问和交易权力的标识。
确认者在区块链网络建立时可以决定交易所需的权限级别。而且在网络建立时可以定义区块链网络为开放的,以降低访问难度和支持快速和高效推广,或者为高可控环境定义更多限制。
注册(Registration)服务:为Open Blockchain的参与者提供控制和认证管理功能。
标识管理(Identity Management)服务:提供对Open Blockchain的参与者标识与角色相结合的保险和授权的管理。
可审核(Auditability)服务:给被授权的个体提供以下的服务:
|