区块链的概念已经在国内传播两年多了,越来越多的人开始了解区块链的原理、架构和开发技术。同时,区块链相关的项目也是层出不穷。但是,除了比特币,还没有消费级的产品出现。
现在,区块链领域在快速发展,国内的技术研发跟进的很快,但是最缺乏的是“设计”能力。目前,我在国内首次提出“区块链业务分析”(BBA:Blockchain Business Analysis)的概念,未来的“区块链业务分析师”或“区块链需求分析师”将会非常吃香,这篇文章就是为这些人或者希望成为这样的人准备的。
区块链的核心是“交易”,人们很自然会把区块链和金融系统联想起来。比特币的成功也使人们更加坚定了这一信念。虽然区块链在其他行业,比如供应链、物联网、协调事务等方面也在快速发展,但是截至目前,世界上相对“成功”的区块链项目还是集中在数字货币、数字资产、交易所、在线支付等泛金融领域。下面我主要谈金融行业中的区块链项目选择。
然而针对传统金融的业务需求,区块链在技术上有两个致命的问题,也是一对矛盾问题:
去中心化。技术语言描述就是,区块链允许系统中多个参与者,在并不信任对方的基础上,直接地、安全地共享一个数据信息,而不需要第三方中介的担保。这和传统的金融机构定位和金融监管体制是不相符合的。
丧失保密性。区块链系统中所有参与者,都可以查看到所有的交易记录,即使采取加密算法,区块链也会比传统数据库系统,泄漏更多的交易信息。而保密性是传统金融机构对客户的最基本的承诺,也是金融IT系统最核心的要求。
总结来说:区块链技术代表了一种新的交易方式,它通过放弃部分的保密权利,来换取去中心化的权利。
现在回到我们的问题上,区块链在哪些领域更容易成功?我从技术角度归纳为:轻量级的多对手直接交易金融系统。解释一下:
轻量级:是指在金融系统中,利益相关人比较少或者交易参与者多数量比较少。在这种情况下,对保密性的要求不是特别突出。
多对手直接交易:是指交易的决策是多个对手直接作出的,可以使用或者不使用中介,中介对交易的本质不产生作用,只是在效率上有影响。
在具体的项目选择上,考虑以下几种场景:
众筹:多个人凑钱投资一个项目,项目获得收益后,再根据众筹的份额,给投资人分红。
招投标:多个投标人缴纳保证金参与投标,中标人获得合同,其他人退还保证金。
拍卖:与上面类似。多个拍卖人缴纳保证金,分别提出自己的报价,最高者拍中,补缴余额完成交易。其他人退还保证金。
博彩:以彩票为例。多个自然人分别押赌注,在特定时间点开奖,最终只有一个或少数几个人获胜,获胜者从押注中分得收益。
商业积分:(下一节具体分析)
这几个项目都是轻量级的金融系统,参与人数都在有限范围内,而且对保密性要求不高。
(如何解释招投标中对报价的保密性要求?报价是业务层面的保密,而交易本身是不需要严格保密的,比如投标公司有哪些、交易条件是什么、保证金缴纳等都不需要保密)
(彩票投注时所选择的数字需要保密吗?彩票数字的选择是非常个性化的,大部分人不会打听别人选择的数字,即使知道了,也不会对自己的决策产生影响,实际上很多人买彩票时,都是通过“机选”获得随机数字。)
目前的这几个系统都有中介角色,比如众筹组织者、招标公司、拍卖公司、彩票管理中心或彩票销售站。中介的存在有合理或积极的地方,比如通过撮合提高交易的效率。但是,这些系统的主要风险也都是发生在中介身上。比如假标和围标大都有招标公司的参与,拍卖中的诈骗一般都是拍卖公司策划的,彩票中奖的直播改成了录像等。
所以,如果使用区块链技术,对这些项目重新改造,取代这些中介,可以在交易效率和安全性上获得提升,这些区块链系统将会更容易“成功”。
上一节我们讲如何选择一个项目,这一节我们逆向思维,如果已经有了一个项目,判断它是否适合用区块链来实现。
区块链的概念火了以后,很多项目都想跟区块链靠边,我今年听到最多的问题就是:张蕾,你看这个系统适合用区块链吗?《人民的名义》提前泄露了,能用区块链进行跟踪和查证吗?
我们接触到的项目,大部分都可以用数据库系统完成。我的观点是:如何一个项目需求,如果用关系型数据库技术就可以满足,那么你用区块链就是愚蠢的!
为什么这么说呢?因为像 Oracle 或 MySQL 这样的数据系统,都有几十年的发展进程,已经部署在全球数以百万计的服务器上的数据库系统,每天运行数以万亿计的查询。这些系统都经过了严格测试和性能优化,每秒处理几千次的交易都毫不费劲。同时,这些系统背后还有数以万计的软件工程师和系统工程师在做技术支撑。实际上,我们常用的软件应用,在数据库技术上都能找到成熟的解决方案。
而区块链技术,即便是代表性的比特币网络,虽然经过8年的运行,仍然在稳定性和可靠性上面临挑战,更不要说其他区块链开发平台了,基本都处在白皮书和Alpha版本阶段。
这里,我不是说区块链的无用之处,而是因为整个区块链的技术发展仍然处在初级探索的阶段。如果我们采用区块链的技术路线,那么在业务分析和IT规划阶段,我们就应该明白区块链运行需要一系列的约束条件。如果不满足这些条件,还是应该回到数据库的路线来,也许这能让你更准确地定义项目,或者节省更多的时间和成本。
如何在业务分析层面准确把握区块链的技术路线,下面介绍一点方法论。
International Institute of Business Analysis (IIBA®) 是一个世界范围内的关于业务分析的专业组织,负责制定和推广业务分析的相关标准:Business Analysis Body of Knowledge® (BABOK)。
我在BABOK标准之下,首次在国内提出区块链相关的业务分析标准 Blockchain Business Analysis Body of Knowledge(BBABOK)。在国际上,最早一批的区块链应用项目逐渐暴露出来各种问题,人们也在重视或者反思区块链的业务分析工作。未来“区块链业务分析师”或者“区块链需求分析师”将会成为一个热门的职业。
区块链的业务分析跟传统的数据库系统的业务分析,差别还是很大的,我总结了几个重要的方面:
网络架构。传统的系统架构大多是BS或CS的,简单说就是“一台服务器+多个终端”。区块链的网络架构,首先是分布式架构,也就是“多个服务器+多个终端(包括既是服务同时又是终端)”,还有“内涵”和“外延”的区别,有“完全节点”和“SPV”(Simplified Payment Verification)的区别。另外,节点部署的地理位置和网络延迟速度也需要考虑。
数据架构。主要关注数据与业务的交互关系,比如数据存储和数据流。在传统的数据库系统中,业务逻辑可以放在代码中,也可以放在数据库的存储过程中实现。在区块链系统中,需要设计,业务逻辑是在链上实现还是在更上面的业务层实现。(在链上实现的逻辑就叫智能合约)
权限架构。区块链本身是没有权限的(或者说权限是统一的),而权限管理是应用系统的基础核心功能。在区块链的业务分析中,我们需要明确,权限是如何划分的?在去中心化的系统中,谁有权力给其他人设定权限?
交易规则设计。也叫共识机制设计。我们需要在IT规划时明确,区块链系统中哪些交易是合法的、被接受的,哪些是被拒绝的;不同操作者发起的交易之间存在互相依赖的关系是什么?比如A向B发起一个交易,B又向C发起一个交易。这种情况B的交易就依赖于A的交易,如果不验证A交易的合法性,也就无法验证B交易的合法性。这种关于交易规则的设计,与传统的数据库中的规则相比要更复杂。
交易仲裁者的选择。交易仲裁在传统数据库系统中是没有的,但是在区块链系统中却是核心的,因为分布式系统稳定运行的基本条件,就是不能出现分歧,而仲裁者的首要任务就是消除分歧。在区块链业务分析时,需要明确哪些节点(或用户)充当仲裁者的角色?它们仲裁的内容和标准是什么?
仲裁者跟中介的一个本质区别是,仲裁者对数据操作的权限要小得多,他们不能虚假交易或者违反规则修改数据内容。在金融系统案例中,仲裁者不能花别人的钱,也不能改变资产的总数量。
区块链资产的锚定。在应用系统中,数据肯定要代表现实生活中的某一种资产。在传统数据库系统中,谁拥有这个系统,谁能控制数据库,谁就对资产锚定负责。在区块链系统中,可能存在多个法律主体、多种资产、甚至所有人对数据都有修改的能力,如果不提前做好资产的锚定,很容易出现法律问题。
用区块链做金融资产管理,一个核心的问题是?谁来为区块链中的交易数据做背书?也就是说,我在区块链上有十个单位的资产,谁能给我兑换现实世界的十个单位资产?或者说,如果没人给我兑换,我找谁去起诉或索赔?
当然在不同的项目案例中,答案是不同的。对于货币资产,我们可以想象托管银行收取了传统形式上的货币,然后把储户的账户信息发布到区块链上,那么托管银行就负责区块链上资产的兑换。在贸易融资中,信用证和提单将分别由进口商的银行和船运公司支持。我们还可以想象,未来某一天,公司可以直接在区块链上发行债券,成为一种新的融资工具,当然公司要为区块链上数据进行背书。
BBABOK还处在起步阶段,我们在逐步整理所有跟区块链业务分析相关的工具和模型,未来希望能有一个标准的分析工具,所有的区块链项目在做业务分析或IT规划时,跟这个标准一一对照,很多的风险就能在早期得到识别和控制。
如果这个项目满足所有的技术标准,那么我们说这个项目是适合用区块链实现的;如果有多个地方跟标准不符合,或者在标准下没有找到很好的解决方案,那么就要重新考虑是走数据库路线还是走区块链路线。
下面我用一个项目实例来说明,区块链项目在做业务分析时需要注意的问题。
Kaka point (咔咔积分)是我的一个创业项目,是一个基于区块链的通用积分平台。
积分是一个传统的领域,但是中国的积分行业,特别是通用积分却是一片空白。平台的万里通积分,从台湾挖过来一个商业运营高手,最后累死在岗位上,万里通也是越来也不行了。
中国的积分市场,基本上是企业积分,比如电信积分、信用卡积分、航空里程等,都是每个企业独立在运作,不跟外部融合,也不提供接口。就是用户想把自己的积分送给朋友,都不行。(或者通过黑市,偷偷摸摸地干)
我的想法是在区块链上构建一个开发的平台,任何企业都可以在上面发行积分,积分可以自由地流动(转移、赠送、支付)。各个企业的积分也可以互相兑换。 整个积分的运营机制类似于欧元。欧元区各个国家可以独立发行自己的欧元,在市场上,这些欧元都可以自由地流通和交易。(图示如下)
下面我们分析,这个系统适合用区块链做吗?或者说用区块链实现比用数据库实现的优势在哪?
首先,这种系统肯定可以用数据库来做的。实施路线也很清楚。唯一的风险是,如果你的服务down掉了,或者你的数据库删除了,企业发给消费者的积分就化为乌有了,消费者要起诉积分企业(积分实际是一种销售上的承诺),你能摆脱干系吗?
那么,根据我们前面的分析,是否适合用区块链:
第一,这是一个“类金融”系统,核心功能就是交易,积分的交易。
第二,这是个分布式系统,积分发行企业之间互相不信任,甚至没有业务来往,更不可能发生财务结算关系。
第三,积分是一个轻量级的系统,用户(包括消费者和积分企业)对隐秘性要求并不高。(恶意的竞争对手可能通过积分数据,估算一个企业的营业数据,但是积分的发行和赎回数量都不是完备的,跟财务数据比,积分的隐秘性要求低多了)。
第四,设计网络架构。整个区块链的内涵部分包括:权限节点、分发行节点、用户管理节点三类。积分发行企业处于内涵,每一个积分发行企业维护一个完整的区块链节点,用于交易信息存储和交易合法性验证;消费者和积分消费企业处于外延部分,利用轻量级客户终端(APP、WEB)实现积分支付和交易信息的查询。 (架构如下图)
其实,每一个消费者和积分消费企业也应该在内涵中,但是考虑到用户体验。消费者不方便掌握区块链的地址和密匙,我们就用手机号码进行映射,因此需要在用户管理节点中,同时配置一个WEB服务+数据库,记录手机号码与区块链地址的映射关系。
为什么企业有了发行issue权限后,就没有发送send权限了? 我们是希望积分发行后,在消费市场转了一圈后,回到发起企业手中,就不能再流通使用了,否则积分真成了流通货币了,容易引发风险。未来可能通过信用建设,增加相关的功能。
第六,交易仲裁者的选择。设计上,要求所有内涵的节点都要承担仲裁者的角色,也就是所有积分发行企业,都要参与积分的记账和验证工作。工作机制可以采取轮询或随机的方式,也会根据交易量、网络速度都某些节点设计优先级,比如中国石化的节点就会比一个餐饮企业的节点的优先级高,这样可以给大型积分企业更多的数据安全性和交易优先级。
第七,区块链资产价值的锚定。在kaka point积分平台上,数字资产根据积分名称进行资产锚定,企业在申请注册时,同时完成数字资产合约的签订。比如“电信积分”锚定就是中国电信,“联通积分”锚定中国联通。积分名称在平台上是唯一的,而且无论积分如何交易、分拆、组合,锚定的资产主体不会变。每一种积分,只能由其发行主体进行积分发行(新积分产生)和积分赎回(积分流回到发行主体手中),中间过程不会出现积分的灭失和非法积分的产生。
任何一种积分的纠纷不会影响其他积分。比如,某一天中国电信倒闭了,它发行的所有电信积分都没有价值了,但是其他的积分仍然可以继续使用。(这是现在的积分品牌不愿意开放的根本原因)
总结一下,任何积分,可以随时加入kaka point平台,也可以随时离开这个平台。Kaka point平台上的积分,可以独立的运行、交易、支付、赎回(像今天的信用卡积分一样),也可以与其他积分组合运行。
你觉得kaka point这种业务需求,用数据库可以实现吗? 还是有区块链更有优势? 有什么问题欢迎在 GItChat 群中交流。
http://gitbook.cn/books/58fdab163515a1306c6a6566/index.html