给你的区块链应用配置一台“超级POS机”

2019-07-13 围观 :286 次

本文是《去中心化之辩与“三个世界”之争,区块链应用落地的模式选择》的姊妹篇,也是同一场演讲中的下半部分。在上一篇文章中,我们主要提出了一个思路:“区块链+中心化系统”的模式,也就是“第二世界”的混合应用模式,是区块链技术落地一个合理的途径。这种模式的具体实现方式是什么,本文就在这方面继续深入展开分析。

“混合应用”的三个模型

根据笔者的分析,区块链在现实世界中的应用模式分为三种:“云式模型”、“链式模型”、“POS机模型”。基于上一篇文章的结论,这三种模型都是区块链跟传统信息系统对接的模型,也就是“第二世界”的模型。不过后面具体分析过程中我们会看到一个很有意思的事情,这三种模型正好有不同的侧重点,在出发点层面,恰好分别对应着第一世界、第二世界和第三世界思维方式。



混合应用的三种姿势


第一种模式是“云式模型”,主要特点是区块链属于应用系统中的一部分或者一个组件,例如:做食品溯源,就做个“基于区块链的食品溯源系统”;要做供应链管理,就是“基于区块链的供应链管理系统”。这种应用模式下,应用开发与管理者可以调用区块链的功能,非开发者不能调用,因此这种应用模型主要是联盟链。整个链只是为某个业务而服务的,新建一个应用系统就部署一个新的链就可以了,不会有两种相互无关的业务共用一个链,就像是使用云主机或者云数据库。当然,参与这项业务的多个合作伙伴会共享这个链,这件跟传统的云服务略有区别,也是区块链的应有之义。

这个模式的基本逻辑简单而明确:区块链是去中心化数据库,如果有业务场景中需要记录的数据必须要在相互独立的多个参与者那里同时记录并且保持一致,那么区块链按理说应该比传统的中心化数据库更有效,这种场景就是我们常说的多方参与的业务流程,比如供应链、跨境转账等等。

这个模式的问题也同样明显,与它的价值是一个硬币的两面:如何判断这种基于区块链的多方参与模式,比多方系统间互联的其他方式(例如:通过消息中间件),或者共享一个云服务(例如:一套强有力的流程管理系统)的优势呢?如果说是解决多方之间信任关系的话,客观说在系统层面,准入机制本身已经解决了80%的互信问题,而在业务层面,分布式账本恐怕也未必比一个流程管理系统的控制力度强。

此外,区块链系统的部署、管理,尤其是升级,仍然要涉及多个参与方,这个层面是否能达成“共识”,肯定比计算节点共识机制复杂得多,比起系统间互联的成本高还是低,也是个未知数。

在笔者看来,这种模型本质上还是以“第一世界”的眼光去看待区块链,只是把区块链作为底层数据库的一种替代物。既然采用“第一世界”的角度去看问题,也就必须服从“第一世界”的商业逻辑:“云模式”的区块链系统,唯一的用武之地就是相对于传统的中心化系统大幅度降低系统建设和运行成本,最典型的就是跨国汇款这类的应用,除此之外尚未看到特别有说服力的成功案例。

第二种模式是“链式模型”,大家听说过的公有链领域的应用,主要是这种模型:在游戏领域,可能叫“XX游戏链”,在广告领域叫“YY广告链”等等。简单说就是设计一个自己做的链(主要是公有链),在技术上适应某个领域的应用场景。这种模型有一个好处,因为链是自己做的,可以把链的功能和数据结构设计到很适合这个领域的业务模型,这样就能在应用场景中去发挥一些区块链的优势,从而吸引领域中的各方参与到一个生态环境中来。实际上,前一阶段国内国外的各种ICO项目,大体上是这个思路。

这个模式的核心逻辑也比较明确:某些领域的应用模型天然存在着去中心化的特性,因此其系统建设当然适合于采用去中心化数据库。笔者看来,这种模型比较接近于DAPP的理念,也就是从“第三世界”的角度出发,希望创造出新的应用模式,来改进甚至颠覆现有的应用。因此,其设计必然是采用“应用服从链”的模式,以链为核心的数据结构,在上面构建领域系统。

根据我们前面的分析,只要某个领域存在着商品/服务的提供,就必然需要中心化的应用模式来满足固有的管理需求,链上的设计只能满足去中心化的那部分信息/资金流转,所以最终还是需要两方面对接的模型。就像刚才举的例子:我写一篇文章发给一万个人,区块链怎么做这个事情呢,总不能我发给第一个人可以,发给第二人就是双花了?因此发文章的管理一定是个传统的中心化系统。

这种情况下,容易出现我们常说的“理想很丰满,现实很骨感”——最终你会发现,你在链上做的很多设计,都不足以满足一个领域的绝大部分管理需要,仍然需要跟传统系统对接,在链的层面上做再多的功能,只是“锦上添花”,而非“雪中送炭”。这类应用到现在为止也没有哪个真正流行起来或者实质性解决了领域的痛点,主要就是这方面原因,未来的发展,一定还是要回归中庸之道,实现领域应用和区块链特性的平衡。

第三种模式,我称之为“收银台模型”或者“POS机模型”,这名字听起来有点突兀——怎么一下子出来这么具体的一个概念,跟前面的“云式模型”、“链式模型”这两个高层次的概念似乎不匹配。也许未来大家可以帮这个模式想一个更好的名字,我这里只说一下这个概念的根源:前面提到过,商场对接支付宝/微信,是一种“中心化+中介化”的模式,但是商场其实一直有另一种支付方式——现金。

现金是什么?是一张纸或者一枚硬币,商场的后台管理系统是什么?是进销存、财务之类的中心化管理系统;而负责接收纸币支付并且把信息登记到系统中的环节,就是收银台/POS机。

这个系统能够实现这样的流程:我给你一张纸币,你要给我记账,还要找零,还要打印收条,最后把商品给我——这些事情都能计算得很清楚。也就是说,一个系统能把现实世界中的一张纸和我的计算机系统对接起来,并且保证不出错,这种模式很了不起:大家如果了解一些金融或者零售行业的基本知识都知道,在POS机这个东西出现之前,收银员对纸币的管理那简直是一塌糊涂啊,各种算错账的、贪污作案的、丢钱的比比皆是,有了这个东西之后,大幅度改善了这些问题。

在上一篇文章中讨论过,混合应用的核心就是“中心化+去中介化”,也就是把中心化的业务流程与去中介化的资金/信息流对接起来。为此,我们要把区块链——尤其是上面的价值载体——跟传统的中心化管理系统对接起来,也就是把两个并不能直接互通、计算模型迥异的系统连接起来,还要保证流程顺畅、数据不出错。这很像我们上面所说到的能够接收纸币的收银台、POS机所做的事情,因此它们的处理流程以及内部的实现方式是什么,我们应该去借鉴。

讨论完了三种模型,最后回来讨论BAAS的概念:BAAS是什么?Blockchain As A Service。那么谁需要这个Service呢?我们回到图3,看看这三个世界就清楚了:中心化应用没有Blockchain,当然不需要这个Service;DAPP全在Blockchain上实现,只需要钱包软件或者更复杂一点的WEB页面直接调用Blockchain的服务接口就行了,不需要再做进一步的Service。因此,BAAS只能服务于混合型应用形态,而我们刚刚讨论了混合应用的形态中,POS机模式是最合理的一种形态。这两部分的论述结合起来,就是我们得出的结论:收银台模式在很大程度上是BAAS的唯一正确姿势,为此,我把我们正在建设的BAAS系统就叫TokenPos。


“混合应用”/BAAS系统的关注点

下面我就说一些具体的东西,收银台模式的BAAS 系统的主要关注点在哪里?

收银台模式的BAAS 系统的主要关注点


首先,它主要做的一件事就是把两种差异非常大的计算机模型对接起来,所以数据一致性是最核心的,因为没法用一个分布式事物去解决它们俩的数据的一致性,甚至跟复杂些的基于补偿的事务机制都无法实现——因为区块链数据不能改。那要怎么办呢?俗话说太阳下没有新鲜事,POS机放在那儿,一张纸你都能解决它的一致性了,好歹我们区块链也是一个计算机系统吧!所以我们借鉴这类系统的经验,设计一个合理的数据结构,尤其是一套账户的体系,用多层次,全方位的数据核对、差错处理等手段,来保证数据一致性。

第二,安全问题,这个非常重要但又有些复杂:安全问题主要来自于中心化管理系统与区块链系统在安全模型上的本质差异,因为我们不是只针对联盟链、私有链(他们的安全问题,靠传统安全模式基本都解决了),而是要支持公有链。为了简化讨论,我们先举交易所的例子:大家都知道,数字货币交易所最大的安全风险就是币被盗。币为什么会被盗呢?简单说简单说就是系统中存在着存储和使用区块链用户/账户密码的地方,而这往往是业务处理流程必须的,比如用户充币/提币,就涉及数字货币在多个账户之间的转移,而这个转移过程如果是自动的,则必然涉及系统自动使用密码的问题。如果每一个动作都是由人来输入密码,被盗的可能性会大大降低,但是任何一个要支撑实际应用场景的系统都无法这样设计。否则的话,你的区块链就算真的实现每秒钟15万笔交易,又有什么用呢,一切瓶颈都在手工操作上面了。由此可见,出于流程的需要而必须在业务过程中使用账户/用户密码,这是传统系统所不会存在的情况,但却是区块链与中心化系统结合时客观存在的,由此带来的安全风险是要考虑的很核心的问题。

第三个就是业务流程的变化,客观说需要有一些探索,这个探索一方面取决于区块链的特性,例如:真的有一个支持每秒15万笔交易的区块链,那确实很多地方就不用改进了。如果没有那么快速度那怎么办呢,需要设计一些比较复杂的业务流程,借鉴一下POS机收纸币那样的处理。另外一个就是可以使用智能合约,让它参与到其中,可以起到增信的作用。如果我们一点都不用智能合约,那这个收银台系统还是个单纯的中心化系统,虽然能起到对接两种系统的作用,但是如何说服别人采用?包括账怎么记的、有没有记错,这些东西都是黑箱,很难有说服力。如果使用用智能合约,有很多地方,比如:资金的流向,安全控制,利润分成机制等,可以起到增信的作用,因为不可以篡改,而且是半公开的。

总体上说,要让区块链服务于现实世界当中的活动,尤其是是经济活动,我们目前考虑最主要的就是前面这三点。

说到这三个要点,我们不妨做一个类比:大家应该都听说过“侧链”这种模型,限于篇幅,我们不会讲侧链技术本身的细节。我们要说的是,“POS机模型”实际上在形态上与侧链技术非常接近,并且侧链技术实际上主要关注点也是上面三个问题:数据一致性、安全性和流程优化,大家可以自行考证。

因此,本文的提出的“收银台/POS机模型”,从技术角度讲也可以理解为一个“中心化的侧链”,通过这种方式,实现区块链上资产在现实业务场景中的应用,这一方面在技术上是可行并且有价值的,另一方面高度体现了“第二世界”的思维方式——大家可以想象,如果采用纯粹侧链的技术,只是把一个链上的数据转移到另一个链上,仍然是完全以链的计算模式为中心,仍然解决不了我们提出的业务场景中的对接问题。而采用“POS机模型”,则一方面在技术形态上实现了侧链所带来的降低主链消耗的作用,另一方面又实现了中心化系统的对接,一举两得,一定会成为区块链应用落地的最佳方式。



一个BAAS系统实例


这是我们目前设计的一个BAAS系统的实例,上面左侧这张图就是一个中心化系统加一个去中心化系统,右侧这张图是内部总体流程。这些内部流程看着很复杂,包括底下每一个子流程,为什么会这么复杂呢?其实就是要解决我刚才说的那三个问题:数据一致性问题、安全问题和内部流程优化问题,每一个点都需要有很详细的设计去解决。大家可以去参考一下侧链的技术,也会看到类似的体系结构和处理流程,因此我们相信这是一条正确的路,也是BAAS的正确姿势。

因为系统还在开发过程中,没有发布,所以细节暂时不介绍了,后面有机会专门来讲这个系统及其应用。

总结
今天其实我讲的内容比较聚焦,主要围绕一个核心问题在讨论,最后来总结一下:基本上就是区块链应用落地的几个层次,逐步推导出合理的结论,总结下来就是四个方面,参见图。


第一,今天所讲的理念,根源是现实世界当中的经济活动有他中心化的一面,这个中心化不是我们去中心化的目标,这个一定要搞清楚,否则就是鸡同鸭讲,既不能说服“第一世界”的人,也不能说服“第三世界”的人。

第二,中心化业务场景和去中介化的信息/资金流的结合,可以使区块链服务于现实世界,而且我相信这种混合应用应该是一个重要的途径,在未来的的时代里与中心化应用和DAPP应该是三分天下有其一。

第三,混合应用的链模式、云模式、收银台模式三种模式中,我认为收银台/POS机模式是最合理的一个模型。其实我以前是很排斥BAAS的,但是后来我自己做,做完了我发现,我设计的收银台模式应用其实就是个BAAS,反过来也促使我相信,BAAS应该只有这一种合理的方式。

第四,BAAS的收银台模式有它自身的非常重要的一些特性,最主要的是数据一致性、安全性和流程合理性。面向纸币的收银台/POS机的原理,大家可以去学习一下,看看那套机制是怎么运行的。当然,区块链系统不可能把收纸币的流程照搬过来,这些流程正是它的独特性和重要的价值所在。

作者简介: 王玮  
“中关村20周年突出贡献奖”获得者
北京志顶科技创始人
零识区块链专栏作者

在金融IT领域从业近20年,主持过世界上最大的基于开放平台和分布式技术的银行账务系统的设计与开发。目前从事区块链技术在金融等领域应用的研究、开发和推广工作。同时还是中国人民大学信息学院工程硕士企业导师、华夏基石e洞察管理杂志专栏作家。



󰄯 分享

相关文章

网站分类