区块链应用判断准则 - 郑瀚Andrew
2022-12-15 17:46:0 Author: www.cnblogs.com(查看原文) 阅读量:14 收藏

区块链提供了一种在不可信环境中进行信息与价值传递交换的机制,是构建未来价值互联网的基石,也符合我国十九大以来一直提倡的为实体经济提供可信平台的理念。区块链发展到现在,我们可以从以下几个方面来分析其应用的方向:

  • 从应用需求视角可以看到,区块链行业应用加速推进,正在从数字货币向非金融领域进行渗透扩散。金融、医疗、数据存证/交易、物联网设备身份认证、供应链等都可以看到区块链的应用。娱乐、创意、文旅、软件开发等也有区块链的尝试。
  • 从市场应用来看,区块链正逐步快速地成为一种市场的工具,主要作用是帮助社会削减平台的成本,让传统的或者高成本的中间机构成为过去。企业应用是区块链的主战场,具有安全准入控制机制的联盟链和私有链将成为主趋势。区块链也将促进公司现有业务模式的重心转移,有望加速公司的发展。同时,新型分布式协作公司也能以更快的方式融入商业体系。
  • 从底层技术来讲,有望推进数据记录、数据传播和数据存储管理模式的转型。区块链本身更像一种互联网底层的开源协议,在不远的将来会触动甚至最后会取代现有的互联网底层基础协议(建筑在现有互联网底层之上,一个新的中间层,提供可信的有宿主的有价值的数据)。把信任机制加到这种协议里,将会是一个很重大的创新。在区块链应用安全方面,区块链安全问题日渐凸显,安全防卫需要技术和管理全局考虑,安全可信是区块链的核心要求,标准规范性日显重要。
  • 从服务提供形式来看,云的开放性和云资源的易获得性,决定了公有云平台是当前区块链创新的最佳载体,利用云平台让基于区块链的应用快速进入市场,获得先发优势。区块链与云计算的结合越发紧密,有望成为公共信用的基础设施。
  • 从社会结构来看,区块链技术有望将法律、经济、信息系统融为一体,颠覆原有社会的监管和治理模式,组织形态也会因此发生一定的变化。区块链技术与监管存在冲突,但矛盾有望进一步调和,最终会成为引领人们走向基于合约的法治社会的工具之一。

那么,什么领域适合区块链技术呢?我们认为在现阶段适合的场景有三个特征:

  • 第一,存在去中心化、多方参与和写入数据需求
  • 第二,对数据真实性要求高
  • 第三,存在初始情况下相互不信任的多个参与者建立分布式信任的需求

区块链面向行业是一个解决方案,需要多方参与,构建行业联盟,形成事实标准,抢占第一波市场。区块链适用于多状态、多环节,需要多参与方协同完成,多方相互不信任,无法使用可信第三方(Trusted Third Party,TTP)完美解决的事情。我们可以采用下图所示的流程来判断一个场景是否需要区块链。

上图展示了一个较为严格的区块链应用判断流程,但很多场景下这些约束条件可以进一步放宽。下面将对流程中的每个步骤进行简单的阐述。

我们可以将区块链通俗地理解为一个分布式的数据库,使用数据库的各方都可以存储交易数据,我们把存储的数据称之为“状态”。区块链又经常被称为“账本”,既然是账本,那么最重要的用途就是记账,记录每笔交易的重要数据,以便将来以此作为查账和避免纠纷的依据。

区块链被链起来的区块结构中最核心的部分就是用来存储交易的信息(状态),因此可以说没有状态存储就不会有区块链。需要注意的是,这里的交易指的是广义的交易,并不限于货币和金融的交易,一切会产生数据状态变化的事务都称为交易,例如,账户的创建、商品信息的变化,甚至对于一次查询的审计信息的记录等都可以算作交易。

这里有一个需要注意的问题是,业务需要保存的数据很多,到底什么样的数据适合用区块链来存储呢?鉴于应用的多样性以及用户需求的不确定性,这个问题其实并不容易回答,但是我们仍然可以从两个角度来试图缩小考虑问题的范围:

  • 什么样的数据不适合上链?
  • 什么样的数据适合上链?

首先来看什么样的数据不适合上链。

  • 从业务的角度来看,不需要共享的数据不适合上链。例如,用户的私钥是用户绝对不想与其他人分享的信息,如果上链,就意味着私钥会被每一个Peer获取并存储,即便是被加密也会有泄漏的风险,因此没有必要上链。
  • 从性能的角度来看,过于庞大的数据和更新过于频繁的数据也不适合上链。例如,用户上传的一些二进制介质、音视频、日志文件等。因为区块上存储的数据作为链的一部分是会被永久保存并同步到每一个Peer节点用来保证完整性的,如果存储的数据过于庞大,则会严重影响同步性能,占用有限的存储空间。另外,由于当前区块链的交易需要通过密码学算法进行哈希和加解密的签名运算,交易的最终数据也需要通过共识算法进行排序才能最终落块,在性能上还有一定的限制(目前开源Hyperledger Fabric的TPS在几百量级),因此过于频繁的写入操作还不太适用区块链。

那么什么样的数据适合上链呢?简单来说,就是需要共享的、需要具备可信度、不能被篡改并且需要可追溯的数据。

  • 例如,保险行业的保单信息,用户签署了什么样的保险协议,需要被妥善保存,将来出险的时候必须以此为依据进行理赔,因为不可篡改,保险公司无从抵赖,也因为可以共享和追溯,一旦产生纠纷也可以由监管部门追溯取证。
  • 再如,能源行业如果使用区块链来记录电量的交易,那么拥有光伏发电的家庭就可以和需要用电的家庭进行自由交易,每一笔电量的产生和去向都有清晰的历史被区块链记录在案,不能篡改。同时支持发电方和用电方进行查询和追溯,哪家发了电,哪家用了电,交易清晰无法抵赖,避免了纠纷,是使用区块链的合适场景。

此外说到状态存储,就不得不提及信息安全,这也是当前区块链大规模普及的障碍之一。我们都知道区块链之所以难以篡改,就是因为每一个参与交易的节点(Peer)都拥有完整的区块链账本数据,可以对任何交易或账户状态进行验证。但是这样也带来一个严重的安全问题,就是区块链账本数据对所有人公开了,而在很多场景下,这样的做法是难以被接受的。拿货币转账的交易举例来说,用户A一开始在系统中存入了一定金额的货币,用户B也存入了一定金额的货币,随后用户A向用户B进行了一定金额的转账,因为用户A和用户B的余额都存储在区块链上,智能合约的逻辑可以验证用户A的余额大于转账金额,并且把交易结果写回到区块链上,对用户A和用户B的余额进行更新,最终在这笔交易写入新生成的区块中后,区块会被同步到与用户A和用户B相关的节点(peer)上,他们都可以查询到这笔交易以及自己当前账户的余额。但是很多情况下,作为用户来说,并不希望自己的余额被其他用户看到,作为交易的双方也不希望交易的详细信息被第三者读取到。

那么这个问题如何解决呢?一般情况下,我们可以使用同态加密的技术来解决这个问题。

同态加密就是智能合约在存储用户的余额状态到区块链上时,存储的并不是明文,而是使用相应用户非对称密钥的公钥通过同态加密算法加密之后的数据。在同态加密交易过程中,转账双方的余额都没有经过解密,并且交易记录存储到区块链上之后只能被交易双方解密查看,第三方只能看到密文,无法解密。这样既能达到区块链无法篡改,可以被追溯和监控的目的,又能保护用户隐私不被泄露。

是否存储状态只是判断流程的第一步,其次还要依据是否多方协同写入来进行判断。

前面一直提到区块链的一个突出特点就是去中心化,只有多方协同写入才能够将区块链这种特点的优势完美地发挥出来。有人曾经说区块链颠覆的核心就在于去中心化,我们现在的世界存在太多的中心化系统,然而这些中心化的系统却和用户日益增长的去中心化需求产生了矛盾。

中心化系统有如下弊端:

  • 首先,权力过于集中。中心化系统的一切数据的来源都是数据中心,数据中心拥有至高无上的权力,数据的存储逻辑全部由中心决定。正如人类社会中权力集中的地方必然存在腐败,数据权限集中的地方也容易滋生“腐败”,当然这个腐败指的是对数据的篡改。由于只有一套中心化的系统,如果没有额外的监督审查机制,数据可以很轻易地被篡改。但是构建一套监督审查机制也是十分复杂的。到底由谁来监督?监督的部门有没有公信力?是否被信服?这些都是问题。
  • 其次,集中的数据难以使用。数据中心化意味着任何使用数据的单位或者个人都要从数据中心获取数据,这种数据同步模式有两个问题:第一,随着使用数据的部门增多,给数据中心带来极大的数据访问压力,数据中心会形成数据访问的性能瓶颈,这对数据中心的性能和扩展性提出了极高的建设要求。第二,新的部门想要使用数据必须和数据中心进行对接,无形中增加了数据使用的成本,给数据的扩散造成了障碍,极大地影响了数据价值。前些年,我国正处于数字化转型的初期,大量数据由纸质数字化,但是各地形成了一个个数字孤岛,各省市之间的数据不能同步,给政府部门的工作造成了极大困扰。比如,小轿车跨省违章不能及时被追责,因为违章的信息不能及时同步到其他省市。再如,有些公民从一个省市移居到另外的省市,重新办理了新的身份证,有时候会出现一个实体个人有两个合法身份证号的情况,也是因为各省市身份信息不能及时同步,给政府工作带来了极大的困扰。其实并不是政府部门不作为,而是进行这样的数据同步需要同时拉通各省市很多部门,调动很多资源,成本过高,阻碍了信息化的进一步发展。
  • 最后,集中的系统抗攻击能力差。数据集中意味着黑客只要攻陷了一个数据中心,就得到了全部的数据权限,可以为所欲为。而防护部门必定绞尽脑汁花费高额成本进行防范。这样做不仅提高了成本,还只能在一定程度上降低风险,并不能彻底消除风险。

以上这些中心化系统的弊端,我们都可以依靠区块链技术来解决,如下图所示,将数据中心化的账本转换为区块链的分布式账本。这样每个数据节点是对等的,拥有完整的数据链,除非黑客攻陷了大部分节点,否则不会影响数据的正确性。另外,各个节点相互之间也可以互相监督,真正地实现数据自治。

以电力系统为例,当前我国的电力系统还是一个中心化的体制,以前购电并不像现在这样简单,只根据一个用户编号就可以使用支付宝之类的互联网应用购买。因为只有电力部门才拥有对电卡的读写权限,在当时没有智能电表进行网上购电时,必须拿着电卡实物去电力部门排长队购电,并且办理过程十分冗长。后来出现的智能电表可以算是借着互联网将中心化系统进行了一次很好的升级,互联网通过网络将电力系统的能力延伸到各家各户。但是互联网只改变了网络连通的现状,将数据传播到各家各户,并没有改变系统的权力中心化状况,即没有将权力转移到用户手中,用户依然需要使用电力系统对电卡进行读写,一旦电力系统出现故障,出现纠纷,也都是电力部门垄断了话语权。而在上面的例子中,只有用电家庭和发电家庭使用区块链来进行电能交易,才实现了区块链的真正价值。

由此我们不难理解,如果一个区块链只有一个写入者,那么无论拥有多少共识节点都是没有意义的,因为写入者可以随意写入,随意变更数据,本质上又变成了一个集中式的系统。因此一个合理的区块链应用是要求参与的各方都可以具备预先规定好的写入权限,并且相互制衡,从而达到去中心化的目的。

首先我们来谈谈关于信任的问题。互联网诞生之初,最先解决的核心问题是信息制造和传输。随着互联网的大规模发展,我们使用TCP/IP协议构建出一条条网状的信息“高速公路”。在这个“高速公路”网上,我们能够将信息快速生成,并复制到全世界每一个网络所能够触及的角落,并且这种信息的传递是极为高效和越来越廉价的。从此,我们进入了一个“信息爆炸”的时代,整个互联网上的信息开始以几何级速度增长。

然而,随着互联网进入我们生活的方方面面,我们却发现有些信息是无法传播和复制的,或者说传播无法很容易地进行。比如货币支付,我们不能直接把要支付的钱复制到对方的账户上,必须到银行柜台花个把小时排队进行办理,后来有了ATM机,我们仍然要出门乘坐交通工具花费很长时间来办理。当然后来有了网上银行,有了U盾,但我们仍然离不开中心化的银行系统,依然有诸如转账需要花费不菲的手续费用、转账金额或许不能立即到账等一系列问题。这些问题的根源都是因为我们的互联网非常善于处理信息分享,而不能解决“价值传递”或者说“信任”这个事情。

多方是否互信也是判断应用是否适合区块链的一个重要指标。区块链的意义在于,使得互不信任的各方可以通过区块链传递和获取信任,并且这种信任建立的成本是很低的,具有极高的性价比。

如果参与写块、读块的各方是完全信任的,那么即便各方在物理上分散,而在逻辑上也是集中的。这种场景下区块链的信任传递特性就失去了意义,因此并不适合使用区块链技术。但是如果我们注意观察就会发现,其实这些所谓完全信任的各方的信任并不是天然具备的,大多数场景下一定是基于某种信任机制的,这种机制有可能是基于自建的一套信息系统,也有可能是基于传统的可信任第三方。而这种信任的根基并不牢固,并且都存在一定的弊端(TTP在后面部分详述),因此如果我们认真分析,这些应用和场景也都可以转化为区块链应用,并且能够从中获得很多好处。

综上,如果说区块链颠覆的核心在于去中心化,那么区块链与生俱来的互信特性就是去中心化的基础。没有互信作为基础,谈去中心化是毫无意义的。区块链利用密码学的哈希算法和数字签名来保证交易的发起人无法被冒充,而区块的链式哈希结构则保证了历史交易被永久地记录,而且无法被轻易地篡改。区块链这一系列的特点给互联网带来了前所未有的互信特性。

如果说第一代互联网解决的是数据传递的问题,那么以区块链为基础的互联网解决的就是信任传递的问题。

可信任第三方是在第一代互联网无法解决互信问题的前提下的产物。当时随着互联网的日益膨胀,人们迫切希望在虚拟和现实世界中建立一种信任的关系,如果缺乏这种纽带,那么虚拟的东西永远是虚拟的,就不会出现今天百花齐放的电商和虚拟业务,也就不会有当今互联网的蓬勃发展。但是建立这种信任的纽带又是极其复杂和昂贵的,比如,银行的在线业务,此外,应用是需要银行强大的资金和政府公信力为其背书才能够提供对业务、纠纷的监管和决断。很多电商也是依赖于强大的资本来提供公信力和背书。其他更多中小企业并没有足够的实力和公信力来自建这种公信的系统,他们只能依赖强大的第三方提供信任服务。

从中我们可以看到,TTP的最大缺点在于昂贵的高门槛、接入运营的复杂度高以及权力过于集中等。权力集中就意味着腐败,就有被人为渗透的可能,同时集中的系统普遍抗黑客攻击的能力较弱。

而区块链天生的去中心化和可信的特性,恰恰是解决上述问题最完美的手段。因此,判断应用是否适用区块链的一个很重要的标准就是TTP是否能完美解决当前的信任问题。如果TTP能完美解决,那么确实没有上区块链的必要。需要注意的是,当前很多看似用TTP解决的信任问题其实解决得并不完美,例如,电商和用户之间的纠纷屡屡不断,公信部门系统自身故障以及受到攻击产生宕机的事情也时有发生。因此我们在判断应用是否适合使用区块链的时候,并不是判断TTP能否完美解决信任问题,而是TTP的缺陷我们能否接受,TTP的成本能否接受。

判断流程至此其实已经基本确定应该适合使用区块链了,是否限制参与这一指标只是用来断定我们的应用到底适合公链还是联盟链。

公链对用户的准入要求并不高,如所有的虚拟货币,基本上任何人、任何机构只要进行简单的注册,生成私钥和证书即可参与。而联盟链则不同,比如,金融业各银行之间的转账业务,并不希望未经授权的人参与,是建立在一定的信任基础之上的,如某几家银行形成了一个战略联盟,之间使用区块链同步一些信息。但是这些银行之间又不是完全信任的,只是因为相互的利益关系联系到了一起。在这种前提下,联盟链就比较合适。想加入的银行需要通过一系列流程方可获得参与区块链的资质,同时联盟区块链中信任的各参与方都能通过区块链的不可伪造、不可篡改等特性进行相互监督。

因此,公链和联盟链并无好与不好之分,各自有适应的场景。


文章来源: https://www.cnblogs.com/LittleHann/p/16985716.html
如有侵权请联系:admin#unsafe.sh