很多人都说 2018 年会是区块链商用化的元年,但 2018 年已经快要过去了,区块链距离改变我们的生活似乎还非常遥远,哪怕是从全球来看,真正能够落地的应用都寥寥无几,又何谈什么改变人类生活呢。
作为一个多学科综合应用的产物,区块链技术运作的逻辑与限制,对普通大众来说并不是非常好理解,这导致很多所谓的媒体、专家、甚至是诸多社会各界的大佬,都错误的理解了区块链的特性,你听这些人讲区块链,很容易会误以为区块链就是万灵丹,似乎任何难题只要套上“去中心化”、“区块链”就能解决。
今天,我将尝试用比较浅白的语言,让大家了解区块链应用落地的六大挑战。
挑战一:效能与可扩展性
区块链的应用,也就是 DAPP,必须运行在“能够支持智能合约的底层公链”上,我们可以把底层公链想像成是如 Android 或 iOS 这样的操作系统,如果操作系统有问题,运行在其上的应用程序当然也会有问题,目前底层链的最大问题,就是效能跟可扩展性不足,拿以太坊为例,以太坊的 TPS (即每秒能处理信息交换量)约为15~30 的水准,做个对比,VISA 的 TPS 平均可以达到2000~4000,其峰值可达到 25000 ,两者根本不在同一个水平,这也是为什么去年的加密猫跟今年的 FOMO 3D 虽然用户不多,但却足以让以太坊瘫痪,让网络交易堵塞的原因。
为什么区块链会跟传统中心化系统(如 VISA)的效能有如此巨大差异?主要原因在于区块链是分布式帐本的技术,不管是什么 DAPP,其运算结果都必须同步在每个节点上才能算达成共识。这就好比一群人做决定,必须经过讨论才能达成共识,但一个人做决定只要过自己这关就好了,前者一定会比后者慢。
所有区块链系统都无可避免的会遇到三个因素的平衡难题 —— 效能、安全性、去中心化,这三者不可能完美兼顾,目前主流公链如比特币跟以太坊,都是往“安全性”与“去中心化”靠拢,而牺牲了效能。
但只要效能问题一天不解决,DAPP 就无法落地成为大规模应用,很多顶尖的电脑科学家都千方百计想优化区块链的共识算法,试图解决效能问题,于是就有了“千链大战”,各种底层公链项目如雨后春笋般不断冒出,很多项目都声称其公链的 TPS 可达数十万甚至百万以上,但或多或少都对“安全性”和“去中心化”有所妥协,就像是 EOS 很大程度上牺牲了“去中心化”的特性,而 IOTA 则牺牲了“安全性”(没有矿工机制,节点作恶代价低)。
挑战二:更新不易
众所周知,所有的公链都是开源项目,一般人若想成为节点,必须下载其开源软体才能参与网路并共同维护帐本,每个人都运行一样的软体,才能让节点间的帐本能够同步。换句话说,如果今天有工程师优化了共识算法,推出新版本的软件,也必须让所有节点都下载,才会让改版真正成功。
但问题是,共识算法的更新,往往会牵涉矿工节点的利益。举例来说,目前业界的普遍看法都是 PoW 虽然安全但太没有效率,新一代的区块链往往采用 PoS 或是 DPoS,于是乎原本用 PoW 的区块链,也想改成 PoS 或 DPoS ,但如果撤销 PoW 机制,原本矿工花大把钞票购置的的矿机就瞬间变成了废铁!矿工当然不愿意这么做,这正是以太坊目前所面临的问题,在可能冲击矿工利益的状况下,以太坊的开发者社区只能渐进修改共识机制,不能躁进,不然矿工会不愿意下载新版本的软体而导致以太坊分叉。
这就是区块链比较奇葩的地方,因为它是分布式的系统,即便开发者想更新软件,也得网络的节点都同意更新才行,这也加深了区块链技术更新的难度。
挑战三:责任归属问题
区块链去中心化的特性,使得出事后的责任归属变得相当困难。举例来说,假设某银行被黑客入侵,受害者可以找银行索赔,但如果区块链遭到攻击,用户必须自己承受所有的损失,对于已经习惯中心化系统的人来说,这样的“特性”是很难接受的。
挑战四:不能保证上链信息的正确性
区块链虽然可以在一定程度上确保信息不可被窜改,但是却不能保障信息写入区块链之前的正确性,简单的说就是不能保证信息源是否正确。
事实上,单单这一点就使得智能合约的应用范围变得比较有限,因为只要智能合约的运作需要输入外部信息,那么合约本身怎么设计就会变得比较复杂,所以智能合约并不能完全取代所有的传统合约。
挑战五:需要审核智能合约的代码
DAPP 的智能合约代码会写在区块链上,这意味着代码是公开的,可供大众检查,但一般民众看不懂代码,如果真的要确保代码没有问题,势必得要找一个公正的第三方审核代码的安全性…
等等,区块链本身不是就要“去信任”吗?怎么这时候又要找第三方了?先别说 DAPP,退一万步来说,事实上当我们在使用区块链系统的时候,本身都必须建立在对整条链的信任上,我们必须信任比特币跟以太坊的代码没有问题才会去使用它,像比特币或以太坊这种大型开源项目,自然会有很多开发者去审核代码,算是比较安全的,但对于各种智能合约的应用来说,就不是这么一回事了,所以现在才会出现各种智能合约的审查公司,不过这么一来就只是把信任转嫁给这些审查公司而已,从这个角度来看,区块链永远不可能做到实质含义上的“去信任”。
再者,代码审核这件事本身是很困难的,即便现在检查觉得没问题,也难保之后不会出事。就以 2016 年著名的“The Dao事件”为例,The DAO 在当时是区块链有史以来最大的众筹项目,但因为被黑客发现其智能合约的漏洞,大量以太币为盗,最终只能回滚交易记录来解决,并且因此导致了以太坊的硬分叉。
像 The DAO 这么重大的项目,其募资的智能合约自然会经过严格的审核,可惜即使经过重重检查,仍然被黑客发现了重大缺陷。智能合约的核心精神——“代码码即法律”,虽然立意良好,但现实中要真正执行,还是要克服很多技术以外的问题。
挑战六:用户可能根本不在乎你到底是不是“去中心化”
区块链的本质——去中心化、透明、不可篡改,这些都很好,但普通用户真的在乎吗?
用户在乎的是你能不能解决他的问题,搜寻引擎如果搜寻不到最多、最精准的资料,社交媒体如果无法满足跟朋友互动的需求,大家是不会为了“去中心化”而去使用的。
假设今天底层公链的效能问题被解决了,某公司在一条效能超强的公链上开发了一个去中心化、开源版本的 Facebook,我们就叫他 DFB 好了,DFB 号称可以解决个人信息被企业乱用的问题,且绝对不会追踪你的隐私。但 DFB 因为建立在区块链上的关系,导致效能会比较差一点,这意味着你每点开一个对话框,或是每浏览一张照片,都会比中心化版本的 Facebook 多几十毫秒甚至几百毫秒上的延迟,你还会想用吗?
答案自然不言可喻了。
所以,如果DAPP 不能比中心化应用更加满足用户的“核心需求”,而只是在透明、去中心化、不可篡改这几个特点上做文章,是没有意义的。
坦白说,就目前而言,区块链依然存在着一定的认知难度,也正是因为如此,所以让很多人片面误解了区块链的特性,进而对其应用产生错误的想像,现在有不少教授、专家、媒体,都把区块链视为万灵仙丹,而忽略了其本质上最根本的限制。