资产代表任何有价值,可以共享或交易的东西:从汽车、房屋、钻石等有形资产,到有价证券、知识产权,甚至参考数据等无形资产,均可代表。现金本身也是一种资产。
参与者则是指需要在业务网络内共享事务信息的人员。参与者通常是指企业,但也可以包括普通人、监管人员,或其他利益相关者。
事务可用于描述在业务网络内传递的过程中,可针对资产执行的具体操作。
通过将这些组件结合在一起,即可打造一种分布式处理系统,也叫做设施(Fabric),借此对区块链应用的运行进行管控。智能合约(用于实现事务的业务规则汇编后的产物)实际上是一种存储的过程调用,可在网络中多个节点上运行,运行后输出的结果通过合意过程被所有网络成员认可。
目前最大的挑战在于,如何将区块链解决方案中的资产、参与者以及事务与此类区块链处理系统的现实技术进行映射。区块链应用的实现需要极高成本,因为需要通过大量工作实现用于定义业务目标的逻辑,同时需要让智能合约能够顺利使用区块链所提供的服务。
Hyperledger ComposerLinux基金会托管的Hyperledger项目所提供的Hyperledger Composer致力于解决这样的问题,借此区块链开发者可以轻松地对业务资产、参与者以及事务建模,将这些模型变成可行的区块链应用。Hyperledger项目始于2015年12月,包含了一系列适用于企业,先进的跨行业开源区块链技术。这是Linux基金会有史以来发展速度最快的项目,而Hyperledger“联盟”目前已包含多种技术,如Hyperledger Fabric和Hyperledger Sawtooth等区块链框架,以及提供监视、身份、开发和部署等服务的工具。Hyperledger Composer正是其中的一种工具。
与所有Hyperledger产品类似,Hyperledger Composer完全开源,并使用了一种开放的治理模式,任何人都可以为其做贡献或决定未来的发展方向。
Hyperledger Composer为资产、参与者,以及事务的建模提供了一种面向特定领域,非常简单的建模语言,开发者可以通过JavaScript编写实现事务逻辑的方法。开发者可以在自己惯用的任何开发环境中编写这些文件(针对大部分编辑器提供了必要的插件),并可在一种基于Web的“试验场(Playground)”帮助下开发、打包、部署并测试这些项目,同时还为脚本环境提供了所需的命令行工具。应用程序可部署至Hyperledger Fabric实例,或在Web浏览器中进行本地模拟。
Hyperledger Composer还可针对不同资产生成骨架(Skeleton)命令行或Angular2应用,对Loopback的支持使得我们可以通过RESTful与应用交互,这样区块链即可连接至现有记录系统,例如可使用集成中间件,如Node.RED或IBM Integration Bus进行连接。
设计基于区块链的汽车拍卖解决方案为了展示Hyperledger Composer的运用,我们将使用该技术创建一个基于区块链的汽车拍卖解决方案。这是一种很棒的区块链应用,因为已经具备妥善定义的业务网络,适用于高价值资产,因此对信任的要求更高,必须明确知道(a)不同时间里车的所有者是谁,以及(b)不同参与者的现金收支情况。从中也可以清楚地知道这样的应用如何能轻松扩展并运用在其他高价值资产领域。
首先考虑组成这个业务网络的资产、参与者,以及事务:
资产:需要考虑两类资产:机动车,对实体车辆的数字化呈现,可对其所有权进行追踪;以及机动车清单,描述了某辆车正在(或已经)销售,以及这一过程中的不同出价。
参与者:包括代表机动车所有者或购买者,并且有足够货币结余的人或组织成员。此外可能会有一个可以关闭任何商品竞拍的拍卖商。整个网络还可进一步扩展,将保险公司或监管机构包含在内。
事务:两种最重要的事务类型:为机动车出价的事务,以及关闭竞拍的事务。
(点击放大图像)
图1 – 汽车拍卖应用中的资产、参与者和事务