11 月 19 - 20 日 Apache Pulsar 社区年度盛会来啦,立即报名! 了解详情
写点什么

三年行业经验总结:我庆幸我在推动联盟链

  • 2019-01-09
  • 本文字数:6232 字

    阅读完需:约 20 分钟

三年行业经验总结:我庆幸我在推动联盟链

区块链编辑导语:有人说,区块链是一种新型数据库;有人说,区块链是云计算 2.0。无论怎么去解释区块链的本质,实际上都跟程序员息息相关。但是,经过币圈的喧嚣,看过链圈的某些开了脑洞的应用后,很多人对它产生了质疑。2018 年过去了,2019 年来了,对区块链的评判依旧是好坏参半。新的一年,是否应该关注和学习区块链?我想,最清楚的莫过于身处行业中的程序员,所以在年底时我分别找了币圈和链圈的项目专家约稿。不过币圈约稿失败了,因为专家觉得币圈“太虚”不好评判。而链圈的自游老师,是我前几年举办线上公开课认识的区块链讲师,这几年也一直在一线做着技术开发工作,我认为这样的经历,对“程序员是否还应该学习区块链”的问题还是很有发言权的。


正文

与区块链的不解之缘

14 年初,在日本横滨阳光台的某个出租屋里,我拿着移动 WIFI,在老旧的笔记本电脑上同步比特币网络数据,100 多 kb 的网速同步结果可想而知,两三天后我放弃了购买几个比特币的想法。几天之后,比特币的价格从 2000 多 RMB 一下子涨到 7000 多,只因为美国承认了比特币的货币地位。懊恼之情可想而知。


这是我与比特币的第一次邂逅,或者叫擦肩而过更为合适。


几个月后,我放弃了在日本的工作,回到了成都。凭借着在这间出租屋里学习的 Go 语言基础,我在成都找到了一份 Go 语言后端工程师的工作。就这样过去了两年,比特币区块链什么的似乎跟我已经非常遥远,但是到了 16 年 6 月,我的心又逐渐的不安分起来,想再一次的北漂,想法一出现,怎么也止不住。也正是这个时候,在一个 Go 语言的 QQ 群里,有人发布了一个职位招 Go 语言工程师。于是就有了下面的对话:


“你好,我看到你要招聘 Go 语言工程师,具体是做什么工作呢?”

“区块链!”

“区块链是什么?”

“你百度一下就知道了。”


于是我就上网查了一下,哇,像一下子打开了一扇新的大门。密码学共识算法P2P 网络数据存储,区块链用到的基础技术是这么的高大上,我的兴致一下子就起来了。但同时也有些泄气,因为我的技能槽为空,一点也不沾边。


于是我试着跟招聘者说明了我的情况,虽然我 Go 语言还行,但是区块链相关经验为零。他叫我不用担心,然后给了我一套 Go 语言相关笔试题。我非常用心的做了,很幸运我通过了笔试。之后就是 CEO 远程面试,前前后后聊了好几回,也逐渐打消了我的疑虑,加深了我要加入他们的决心。现在回想,他们这么坚持让我加入,主要是当时招不到人,Go 语言当时在国内不温不火,区块链从业者更是凤毛菱角,虽然当时我也很菜。


就这样,16 年 8 月我再一次来到了北京。


条件比我想象的更艰苦,典型的创业公司环境。几个大老爷们住在北五环的出租屋里,卧室到客厅的距离就是我的两点一线。也就是在这间出租屋里,我接触到了 Hyperledger Fabric 0.6,接触到了以太坊,顺带包括 IOTA、IPFS。但非常不幸的是,我没有买币,错过了后来暴富的机会。而且身为工程师的正直(无知),我很反感类似的圈钱手法,这是我对 ICO 最初的认知。


这时候的大环境是什么样呢?以太坊因为 The DAO 事件分裂成 ETH、ETC 两个社区。小蚁达叔也正忙着直播 ICO 计划,清华大学韩锋教授也着手开始区块链布道,火币 CTO 张健离开火币开始创业。更多的币圈事件因为远离那个圈子不得而知。而我更不得而知的是,数字货币的爆发即将到来,而我却未能在一线见证。


17 年 2 月,我离开了带我入坑的公司。这时候我处于非常迷茫的状态,而且我对区块链的认识也已经有了许些变化,靠 ICO 靠发币圈钱然后再做事,在我而言总是有些不齿。而且,我更希望去接触区块链高大上的底层技术,于是开始一遍一遍的去撸代码,提升自己的水平。


现在首要的任务是找下一份工作,但是只要跟数字货币相关的,我最终都放弃了,因为我不相信国人发行的数字货币能够存活 10 年以上。这不是因为外国的月亮就比国内的圆,这就是现状,仅此而已。之后我收到了某电商大厂的区块链职位的邀请,主要工作是区块链底层平台搭建,要求有区块链以及容器云相关经验,对我而言这简直是量身定做。从我下地铁看到公司大楼的那一刻起,我就有预感我会在这里开启新的旅程。事实也正是如此,我已经在这里在职 500 天了,也有预感会再有几个 500 天。


在过去的 500 天里,我可以说是在区块链一线,见证了区块链从噱头变为科技新宠,也见证了繁荣过去的一地鸡毛。这期间,在工作之余将流行的技术基本上都粗略的涉猎过。工作中所做的事情就更多了,参与过区块链白皮书的撰写,区块链 BaaS 平台从零到一的搭建,Hyperledger Fabric 的性能优化以及跨链的研究,充实而又有趣的 500 天。


区块链的商业应用之路

上面我花了不小的篇幅讲述了我与区块链的不解之缘,虽不精彩但我相信有足够的代表性。我不知道前两年踏入这个领域的程序员还有多少跟我一样还留在一线,还有多少程序员因为区块链 18 年下半年的迅速转凉而放弃入坑。我写这篇文章的目的不是检视自我,也不是想夸区块链是如何如何的好。而只是想从程序员的视角,给大家回顾总结 18 年的区块链再适当憧憬下未来的发展。


区块链是什么技术?区块链能够做什么?如果你是在 18 年初问这个问题,我相信会有很多热心人来帮你解答,知乎上随便一搜都能有一大堆神乎其神的类比回答,那时候大家热情高涨,只因为徐小平的内部发言的泄露以及蔡文胜的泡沫理论迅速点燃了国内市场。17 年后半程的疯狂只是币圈的狂欢,而 18 年 1 月后是整个互联网圈的新宠。那段时间,无论是在地铁还是在饭店,总能听到旁边人在谈论区块链。雨后春笋般风靡一时的区块链无眠 3 点钟群也成为了技术发展史的一朵奇葩。


我无法评判这股潮流的走向,但也有点点的担忧,拔苗助长般的空中楼阁总有不稳定的时候。但区块链热情的迅速点燃也并没有对我们本身的工作造成多大冲击,因为我们公司早早的就布局,有自己的节奏。而且说到团队实力,我也能挺起胸膛自信的说团队在联盟链领域无出其右。


潮水退去才知道谁在裸泳,经过了上半年的疯狂炒作,区块链概念下半年开始迅速转凉,当然也不排除大环境跟政策的影响。我不知道是否跟 2000 年的互联网浪潮类似,但我认为盛极而衰是有道理的,在还没有缕清商业模式,发展方向,基础设施还不完善的时候,提出的各类愿景也只是各类圈钱手段的遮羞布。那我们身处在这样的大环境中,如何才能找到自己的出路,选对方向呢?


如果从正面讲,我好像无能为力,千人千面,每个人都有自己的理解,而且区块链的发展不知怎么的,已经不单单的是一个技术领域了,而是成为了一个法律、社会、经济、人性、技术的矛盾体,每个领域的人都能从其所处行业阐述区块链引起的变革。这对区块链的发展当然是有利的,因为要想发展首先是要有曝光率。但要从杂乱的言论中剥离出有效信息也是需要花费一番功夫,而且也不见得有效。毕竟,区块链的兴起是直接与价值(货币)相关,是直面人性的。


因此,我只有从反面剖析区块链能够为技术人员带来的机会。经过大半年的全民探索,下半年行业中逐渐有了很多反对的声音,比如说区块链是噱头,根本无法满足商业应用的需求,尤其是金融行业;再者说现在区块链领域大行其道的防伪追溯是伪命题,根本就无法从源头上防止假货的存在。他们主要的根据是以下三点:


  • 区块链的性能极其低下。现有的大部分的区块链的 TPS 都在 1000 以下,而要满足金融行业的支付交易处理能力,其 TPS 至少要达到 3000+,而且这也只是一个保守的估计,所以差距还是蛮大的。

  • 区块链的数据承载能力有限。区块链之所以神奇,是因为全网中所有全节点共同记账,所以也就意味着每个节点都独立保留着从创世区块以来的所有区块、交易,以及累积起来的状态数据。如果从分布式一致性角度分析,数据是极度冗余的。而且单交易能够携带的业务数据也是极其有限的,根本不能满足复杂的商业业务需求。

  • 区块链的数据来源可作假。区块链另一个令人惊奇的特性就是数据无法单方面篡改,数据一旦上链,其状态的流转就由整个网络说了算,而不是数据的拥有者。这里就留给了数据造假者一个口子,那就是上链的数据本身就是假的,区块链网络本身是无法辨别数据真假的,所以区块链防伪追溯是伪命题。


接下来剩余的篇幅我就针对上面这三个问题说说我的理解,他们说的有道理吗?毫无疑问,肯定是有道理的,但我不认为这是区块链协议本身的锅,而只是现阶段的技术瓶颈以及错误的用法导致的。


区块链性能瓶颈

我们先来看区块链的性能问题,首先我想先抛出一个观点:区块链不是一种 2C 的应用技术。从这个角度出发,单纯的要求区块链解决性能瓶颈问题就不是一个应用落地的充分必要条件了。高盛之前推出过一个区块链分析报告,他们认为区块链技术能够大幅度降低企业间合作成本,提高效率。本质上我认为区块链技术是属于 2B 的,我是一个坚定的联盟链拥护者,始终看好联盟链在商业领域的发展,而且我认为区块链会大概率的改变现有企业的商业模式。我曾经幻想过一种区块链式的过渡商业环境:


现阶段具有某些业务往来的企业逐渐联盟起来形成小范围的联盟链试点,一旦新型业务模式形成,势必会有其他企业加入,小联盟逐渐壮大,从而形成以核心企业为主导的、第三方监管机构监督的行业联盟链。而进一步随着核心企业行业联盟的扩大,多个核心企业所围拢的多条联盟链也会因为业务需求、监管要求统一成一条超级行业联盟链。企业间的竞争逐步变成拥有相同数据情况下的服务竞争。就拿去中心化电商联盟链为例,全社会贩卖的商品都存放于同一区块链网络,电商平台的竞争逐步就表现为链上数据的聚合、分类及差异化营销。


是不是有些向往呢?


上面我提出的观点可能会被认为有失偏驳,的确,我应该换一种方式表述:联盟链属于 2B,公有链拥抱 2C。2C 的场景我接触的不多,游戏应该是一个大的方向,但现在多为菠菜游戏,类似于加密猫的现象杀手级游戏还在孕育中,我很期待。通证经济是今年另一个大放异彩的名词,但本质我认为是 ICO、STO 的另一种美化的叫法,因为我不懂,所以有些大放厥词,其拥护者可不用在意我这外行人的看法。


我们再回到问题本身,区块链现在面临的 TPS 问题。首先就属于 2B 的联盟链来说,更多直面的是多个企业间业务数据的共享及交互,不涉及到 C 端,大多数的业务场景其实我们都可以采用异步上链的方式进行数据共享交互,其实时性要求不高。而一旦涉及到 C 端,TPS 确实就是一个紧要的问题,现有的区块链就单链 TPS 来说,少部分高频业务确实不能满足需求,但是不可否认的是,技术是一直在向前发展的,大家都在积极的探索多链水平拓展、Layer 2、分片及同构跨链。就拿我们比较熟悉的 EOS 公链来举例,就现在得到的数据来看,其主网峰值 TPS 已经达到 3996 了,而且这还只是单链未进行多线程优化的版本得到的数据,而且其现在的版本已经能够支持同构跨链,可以想象如果有多条 EOS 侧链共同协作,处理大量 2C 业务应该是不成问题的。当然其白皮书里的百万 TPS 还是要喷一下的,对这个数据请不要认真,笑笑就好。就算以后被打脸,那也是我们从业者的骄傲。


区块链性能瓶颈确实存在,且现在确实不能满足少量高频业务需求,但技术一直在发展,从未停止脚步。就拿我们团队来说,我们一直专注于 Hyperledger Fabric 的性能优化,通过跟踪每一流程的磁盘 IO、网络 IO 等使用率,找出其瓶颈所在并逐行优化,在不改变其交易流程的情况下,已经能够将其写性能提升一个数量级,应当说这是质的飞跃。


区块链数据承载能力

接下来我们来聊第二个问题,区块链的数据承载能力。数据的极度冗余是区块链技术特性导致的,我们不能完全推翻,而且这也不现实,但现在行业也已经相对的解决方案,那就是节点分级。比特币中逐渐有了全节点与轻节点的区别,全节点维护全网从创世区块到当前区块的所有数据,而轻节点只保留与特定账号相关数据,这是一种解决方案;类 POS 共识机制区块链在此基础上又探索出了另一种解决方案,那就是从全部节点中推选出少量节点维护账本,其他节点(终端)依赖这些选举出来的节点与区块链网络交互;而更甚的解决方案是对节点进行多角色划分,不同节点负责不同的工作,有负责计算的,有负责存储的。所有这些解决方案都可以相对解决数据冗余度的问题。


我们试着探讨后一部分,那就是交易的业务数据承载能力问题。确实,随着数据量的增加,网络耗时、CPU 计算、状态存储等都会增加。产生这一问题的关键我认为在于误用了区块链,大多数人(包括我),在刚开始接触区块链不久的时候,都会认为区块链是一个(最终)一致性的分布式 KV 数据库,而且我一度是这么给初学者这么解释的,因为这样最容易理解。但是随着理解的深入,多业务场景的驯化,我发现区块链跟数据库还是有很大差异的,区块链跟数据库都保存历史操作记录跟状态数据集合。只不过区块链以记录历史区块为主,而数据库却是更看重当前状态。正所谓一个活在当下,一个怀念过去。区块链的优势不在于存储,存储只是手段,它的优势在于如何在不信任的网络中达成信任,这是数据库不具备的特点。因此,我认为相对正确的区块链使用方式是:上链的并不是数据实体本身,而是其数据指纹,数据指纹的采集现在多数采用数据哈希。数据本身可以存放在任意其他地方,比如说 IPFS。比如说一张图片,上链的可能只是其在 IPFS 网络中的 URI。


区块链数据来源

我们再来探讨最后一个问题,区块链的数据来源问题。这个问题现在区块链行业中是一个单独的领域,叫做预言机(ORACLE),到现在为止,我还没有发现一个能够被行业广泛认可的解决方案。因此这确实是一个困扰区块链发展的难题,但是我个人认为解决问题的关键点在于:摆脱上链数据人为的干扰


如果从这个角度出发,5G 与物联网技术就能够跟区块链技术结合在一起了。比如说在防伪追溯领域,我们就可以采用传感器等物联网设备直接采集商品数据后,传感器与链直接交互,将数据上链。中间不经过任何利益相关方,这样就可以解决问题中所指责的伪命题了。当然,现阶段还不能够完全采取这种方式,一并不是所有的业务场景都可以被直采数据,二是物联网的发展程度也还不够,随着 5G 的到来,物联网与区块链的结合无疑是一个新的爆发点。


以上我相对通俗的回应了区块链无用论的观点,而这只是我作为在一线的区块链程序员的浅薄认识,相较于行业大佬,产品精英无异于班门弄斧。


我曾经在内部讨论的时候说过一句话,我说区块链的去中心化是违反历史社会规律的,在现代社会相对权利集中的时代搞去中心化自制是对主权的蔑视,大家哈哈一笑然后叫我闭嘴。从不否认这是联盟链逐渐被更多人接受的原因之一,但我也乐于看到违法历史规律的公有链打破常规,扇我耳光。


文章的最后,我想将区块链请下神坛。区块链本质上跟 AI、大数据、云计算等毫无区别,它只是一门技术而已,请不要神化它。它就像一把刀,是用来切菜还是干其他事全凭使用者。前两天我在知乎上回答了一个问题,题目是如何做一个不傻的区块链信仰者?我看到这个题目,心里很不是滋味,本不想作答,但最后还是怼了两句:


怎么没听说什么大数据信仰者,AI 信仰者,物联网信仰者,5G 信仰者。反而到区块链这里就有信仰者了,为啥呢?为啥呢?为啥呢?


一如既往的结尾,技术是美好的,资本是逐利的,人性是丑恶的。2019,区块链的发展,请与我一起见证。


作者简介:自游,区块链底层架构师。16 年初接触区块链并全职投入,现供职于某世界 500 强企业做区块链底层研究及 BAAS 平台搭建。精通区块链底层存储、共识等技术,职业方向偏重联盟链体系。


作者其他文章:


拜占庭将军问题与区块链


区块链创新平台:以太坊的直接竞争对手EOS


一文理解超级账本Hyperledger Fabric的架构与坑


区块链创新之卡尔达诺(Cardano)


2019-01-09 10:507214

评论

发布
暂无评论
发现更多内容

家庭留白、中屏崛起与硬件棋局

脑极体

架构师训练营 - 第五周学习总结

joshuamai

肝了一周的 UDP 基础知识终于出来了。

cxuan

计算机网络 计算机基础

一期二班-吴水金-第六课作业

吴水金

熬夜不睡觉整理ELK技术文档,从此摆脱靠百度的工作(附源码)

996小迁

Java 编程 架构 面试 ELK

《华为数据之道》读书笔记:第 4 章 面向“业务交易”的信息架构建设

方志

数据中台 数字化转型 数据治理

区块链医疗应用场景有哪些?区块链医疗解决方案

13530558032

数字人民币快来了,但多数人可能会有四大误解

CECBC

数字人民币

mongodb 源码实现系列 - command命令处理模块源码实现一

杨亚洲(专注MongoDB及高性能中间件)

MySQL mongodb 高性能 源码剖析 分布式数据库mongodb

Architecture Phase1 Week10:Summarize

phylony-lu

极客大学架构师训练营

表格控件Spread.NET V14.0 发布:支持 .NET 5 和 .NET Core 3.1

葡萄城技术团队

Java踩坑记系列之Arrays.AsList

Java老k

Java

为什么说应用架构需要分类思维?

Java架构师迁哥

“奋斗者”号下潜10909米:我们为什么要做深海探索?

脑极体

Thread.start() ,它是怎么让线程启动的呢?

小傅哥

Java 线程 JVM 小傅哥 Thread

java: Compilation failed: internal java compiler error解决办法

LSJ

IDEA

JVM-技术专题-垃圾回收策略

洛神灬殇

Alibaba官方发文:阿里技术人的成长路径与方法论

Java架构师迁哥

Java踩坑记系列之BigDecimal

Java老k

BigDecimal

论“万剑归宗”思想对开发设计的一点“肤浅”作用

八苦-瞿昙

随笔杂谈 设计实践

计算机核心课程必读书目——《高级数据结构:理论与应用》

计算机与AI

数据结构 算法

架构师训练营 - 第五周课后练习

joshuamai

面试者必看:Java8中的默认方法

Silently9527

java8 默认方法

讯飞推出充电宝式便携拾音器,重新定义传统拾音

Talk A.I.

关于 AWS Lambda 中的冷启动,你想了解的信息都在这!

donghui

Serverless Faas 函数计算

智慧园区管理平台app系统开发,智慧楼宇系统搭建

13530558032

IPFS四币连发系统开发技术(四币循环模式)

薇電13242772558

区块链 数字货币

架构师训练营 W06 作业

Geek_f06ede

甲方日常 57

句子

工作 随笔杂谈 日常

开源认证和访问控制的利器keycloak使用简介

程序那些事

开源 程序那些事 授权框架 keycloak 认证授权

802.11抓包软件对比之Microsoft Network Monitor

IoT云工坊

wifi 嵌入式 抓包

三年行业经验总结:我庆幸我在推动联盟链_区块链_自游_InfoQ精选文章