侧链技术与 GIT:警惕那些宏大的承诺

侧链技术的业务义意

昨天听了一场关于区块链侧链技术的分享.

因为我是产品设计人员, 所以我对于技术的态度是:我不需要了解一个技术的实现细节, 而只需要知道它的业务义意和使用限制, 就好了.

所以坦诚的说, 关于侧链技术的技术细节我完全没有听懂. 但是这个技术的业务意义我倒是 GET 到了.

这个技术的业务逻辑大概是这样的:

区块链会因为业务量的增加而导致效率降低.

侧链技术是一个分流业务压力的解决方案, 具体实现如下:

如果采用中心化的映射方式, 这个事情很好解决: 只需要在 A 链建一个资产池, 把要做业务的资产冻结在里边, 然后在 B 链上发行相应的资产既可.

侧链技术的核心, 是不想采用这种中心化的方式, 而是采用一种分布式的技术方案来实现这一步.

假设有一条公链 A;

我们为其建立一条侧链为 B;

当 A 链的资产要发生业务的时候, 我们通过账户映射的方式, 将发生业务的资产映射到 B 链上.

我们在 B 链完成具体业务细节

最后, 将业务完成的结果再映射回 A 链

也既是说, 跨链作账户映射本身不是什么新鲜的事情, 而采用分布式的技术案来实现账户映射才是侧链技术的重点.

简洁而优雅的 GIT

话说, 讲侧链技术的实现细节时, 我正因为不懂技术, 而昏昏欲睡. 为了强打精神, 我侧过头去向坐在我旁边的运维大哥调侃道: “你们玩 linux 的, 会不会觉得我们玩区块链的人好蠢啊.”

“啊?” 运维大哥楞了一下: “你什么意思啊?”

“都是设计一套分布式系统, 你看 GIT 实现的多么简洁, 多么优雅. 再看看区块链, 优雅不优雅不说, 反正是一点都不简洁.”

GIT 是创造了 linux 的李纳斯所写的分布式版本管理软件.

linux 的内核是由开源社区来维护的. 全世界的黑客都在为其添砖加瓦. 最初, 李纳斯手动管理这些代码, 后来工作量实在太大了, 而它又不想使用当时主流的中心化版本管理软件, 于是自己写出了 GIT.

从此, 全世界的码农们可以在 github 上开心的搞基了.

那 GIT 与 SVN 这样中心化的版本管理软件的区别是什么呢?

当我们使用 SVN 这样的中心化版本管理软件时, 我们为一个文件增加新的内容, SVN 会记录两个东西, 一个是原始文件, 一个是增加的内容. 所以当我们回退版本的时候, SVN 会在从增加内容的记录中去掉增加的内容. 所以随着协作人和版本增加, SVN 需要进行的计算也会增加.

所以 SVN 这样的软件需要一个服务器, 来进行计算.

而 GIT 采用另一种版本管理思路: 当文件版本发生变化的时候, 它并不是记录原始文件和增加内容, 而是完整的记录两份文件, 然后再生成一个目录记录不同文件的版本. 当需要回退版本的时候, 不需要进行什么计算, 而只需要从目录中把原来的文件找到就好了.

李纳斯采用这种解决方案是基于一个重要的判断: 未来存储的成本将大大小于计算的成本, 所以他的这个方案完全牺牲存储的效率以换取计算的效率. 当然, 现在我们知道李纳斯的判断是对的.

也正是因此, 所有的文件维护者手中都有完整的目录和各版本文件, 所以也不用要个服务器来进行计算了.

运维大哥听我这么说, 哈哈一笑: “也不能这么说嘛, 必竞业务不同嘛.”

大哥就是大哥, 一句点醒梦中人不同的业务诉求决定了不同的实现方案.

大事与小事

GIT 之所以实现的如此优雅和简单, 是因为它承诺了一件极小的事情: 就是分布式的文件管理. 它清楚的知道它为什么要这么做 (提升版本管理的计算效率), 它也知道它这么做的代价是什么 (牺牲存储效率).

而区块链之所以实现的如此复杂, 是因为它承诺了一件极大的事情: 建立一套不需要信任人的信任体系. 而它之所以要建立这样一个体系, 是因为它假设了一个金融阴谋论的世界观: 中央银行滥发货币是万恶之源. 所以为了自由和安全牺牲便利是可接受的. ( 讽剌的是我国的某互联网巨头的老板的理念是, 中国人可以为了便利牺牲隐私. )

所以曾经有人说, 区块链只有两条出路,一条出路是政府来做, 一条出路做来反政府.

但其实这句话说错了, 它混淆了区块链和数字货币.

数字货币确实天生反骨, 充满了无政府主义的气息. 但区块链只是伴随着数字货币诞生的一种去中心化的证明技术.

技术本身是中立的. 我们可以用它来建立一套无政府主义的金融系统, 可以用来证明些其它的东西.

而如果我们要使用它来证明其它东西的时候, 我们真的想好好想想, 我们是不是真的要这第硬核和原教旨主义的去中心化了.

而如果我们认定, 区块链应用是要结合中心化和去中心化, 那么我也要好好想想, 我们做到什么, 要牺牲什么. 而这个问题的答案一定不在区块链技术里, 而是在真实的业务中.

警惕那些宏大的承诺

可能是因为我自己分了神, 但确实直到分享结束我也没有明白, 侧链技术解决什么实际业务中的问题.

为什么我们一定要采用这么复杂的方式来替代用中心化的方式来进行业务跨链? 当我们牺牲了简洁和便利时我们得到了什么?

并不是我要 DISS 侧链技术. 我是真心希望侧链技术可以变成一个成熟的, 可用的技术.

区块链行业 (我们估且称它为一个行业吧) 已经变成一个加速生产新概念的机器了. 区块链行业对于分享会的热情恐怕只有传销, 老年保建品和教会能赶上了.

而之所以会如此, 是因为, 区块链技术总是要承诺一件大事. 因为这件大事足够的远, 所以他足够的模糊, 需要用足够多的陈词滥调去填充它.

而为了使支撑这些新的陈词滥调, 所以研发人员必须配套生产出新的技术. 而因为这个概念只是要配合一个陈词滥词, 所以它并不以可以支撑业务为目的. 正因为这样, 这些新技术一旦看起来能跑通了, 就会再无人问津, 而最终滥在那里.

现在某些公链, 诞生至今, 依然连稳定交易都作不到, 完全无法想象放入实际应用中会如何.

我不要侧链技术也变成这样一个结局.

最后, 我想说说 “没有银弹“. 能看到这里的人大概都知道 “没有银弹“ 的梗.

我们知道在传说中有一种怪物叫狼人. 使用日常的武器, 很难伤害到这种怪物. 想要解决狼人, 就必须使用神圣的银制的子弹.

所以银弹是用来比喻这样一种工具, 它有着神奇的能力, 可以轻松且一劳永逸的解决我们日常的难题.

在软件开发行业中有一个几成定论的观念, 就是没有银弹. 这个观点最初由佛瑞德·布鲁克斯在《没有银弹》中提到.

他认为现在或未来, 不存在任何一种可以奇迹般解决一切问题的工具, 而我们真正能够解决问题, 可能正是由于认识到这一点, 他说:

人类能克服疾病的第一步, 就是以细菌说淘汰了恶魔说和体液说, 正是这一步, 带给了人类希望, 粉碎了所有奇迹式的冀望, 告诉人们进步是要靠按部就班, 不辞劳苦而来, 得在清洁卫生方面持续不断地投入心血, 养成良好习惯, 才是正道. 如今, 我们面对软件工程也是一样.

所以, 让我们谨记没有银弹, 警惕那些宏大的承诺.

如果觉得还行, 请关注, 请转发

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181109G0TECE00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券