正在尝试使用区块链技术实现一个供应链系统,使用的开源的HyperLedger Fabric。
到底要如何使用区块链?这里记录一下我们的一些摸索。
经过一段时间的迷茫困惑之后,HyperLedger
这个名字本身给了我们启发。区块链于我们而言
最直接用途就是实现一个共享账本,那么核心问题就是这个共享的账本要如何设计?
事实上,这个看似简单的问题,非常重要。它就像一层面纱,捅开后,就恍然大悟、感叹原来如此。 如果不捅开,就一直朦朦胧胧,行事混乱,毫无章法。
账本,区块链聚焦的是如何记账。后续的所有设计都要围绕着账本进行。
我们详细地了解了合约的概念与编写方法,在fabric中对账本的写入和查询,都是通过合约进行的。
但是让我们相当疑惑的是,在我们面对的场景中,总共有六类参与方。共享账本对于他们而言,意义何在? 他们之间的账又要如何记录?
我们不想是为了概念而概念,为了新潮而新潮,我们关注的是,新技术能给我们带来哪些实实在在的好处。
最紧要的问题,就是回答: 为什么要共享账本?意义何在?
如果不能很好的回答这个问题,后续的工作就纯粹是为了做而做,可有可无。
最开始我们想法是,只是简单地将供应链中达成的意向、发生的事,记录到区块链中,供各参与方查询。 但是这个回答,无法打动我们自己。
我们看到了将区块链用于银行间清算的说法,据说是账本共享后,银行间清算的效率大大提高。。
区块链在银行间的应用包括存证、清算和结算三个环节,目前主要集中在前两部分。
以微粒贷为例,目前微众银行已联合放贷的10余家银行中,有3家在联合贷款方面采
用区块链进行实时清算,其余合作银行仍采用传统的当日集中清算方式。
以及跨境清算:
“以往金融系统、数据无论放在境内还是境外,彼此都会顾虑安全性问题。在区块链
分布式账本体系下,境内外的节点机通过区块链互联,机构有自己的节点,各自的
节点部署在各自的境内,相关方都比较容易接受这种模式。”
以及在京东发布的《京东区块链技术实践白皮书》中:
当需要为开展跨主体的业务建设 IT 系统时,传统的解决方案通常是两种思路。要么
建立 和运营一个中心化的系统来处理各个参与方的业务需求,业务数据由中心化的组
织维护;要么采用 SOA 架构,由各个参与方发布服务接口,并相互调用,数据仍然维护
在各个参与方。 如果采用中心化的方案,若是业务的参与方之间是相对独立平等的,
要开发建设一个中心化 系统是很困难的,包括协调、立项、成本分摊等问题。如果采
用 SOA 的方案,则技术实践上 比较复杂,技术方案缺少通用性,难以支持复杂的业务。
此外,从数据的角度来看,无论是 中心化的方案还是 SOA,都难以实现数据防篡改。
这里提到的SOA
给我们启发很大。经过思索,六类参与方之间的工作协调,还是应当采用类似SOA的方式。
每个参与方开发、维护、公布各自的接口,与以往不同的是,现在,他们以合约的方式公布这些接口,数据存放在
共同维护的区块链网络中。
Fabric成为一个平台,提供数据存储和合约(API)发布的功能。 所有的数据都存放在区块链中,将大大减少往复核实以及存档的工作,每个参与方只需要通过自己的节点调用 对方的合约后,得到同样的结果,就可以认为对方已经履行了职责(合约也都是公开的、不可篡改)。另外, 以合约的方式发布API,这种新的发布方式,更加高效灵活,其效果将不亚于云计算带来运维便利。
另外一个很重要的就是隐私问题,凡是写入链中的数据,都是参与方达成一致,同意相互公开的。因为如何实现合约 ,各参与方如何配合,这都是人订的。用私链的方式,确保数据只会在参与方之间流转。