https://zhuanlan.zhihu.com/p/34338934
专家专栏
作者:张韡武
六年前我开始做比特币研发,最近两年在澳洲最大的银行做区块链架构师,前者是所谓“币圈”,后者是所谓“链圈”都有所涉及,就常常有人问我哪个币适合投资,哪个技术有潜力。
我们生活在一个特殊的时代,对技术期望很高,近乎信仰了。
我们观察微信一年就改变了大众支付习惯,会注意不到技术的成功是有过程的,以为区块链也会有这样的立杆见影的效果。过去五年里,我经常给人说区块链技术的前途,大家没那个功夫听。现在,我反过来经常说区块链技术的局限性。我说的是同一套东西,东西没变,是期望发生了变化。
比如最近很热门的跨链技术。大家的想象里,跨链技术就是两个链,一个是榫一个是卯,两个接在一起就成了。真要这么容易,早先中本聪和现在的Vitalik都已经用它做扩容方案了。
这类技术是很有局限性的,12、13年的方案如Tier Nolan的基于密码学Commit/Open协议的方案需要双方链上都有交易者,协议是正确的,数学意义上的正确,就是实际不太好用的意思。其“资金不过链价值过链”,操作需要有对家,这是最大的局限。它有很多可以攻击的角度,比如设法使对手超时时候不在线,比如发起交易者不终结强迫双方币回到自己手里,比如区块链忙的时候交易不超时上链却超时。还有应用局限,比如交易没打包也不能拆分,比如不解决买家卖家配对等等。这还不说占用链上资源过高这样的可以忍受的情况。
后面的技术更丰富了,但是各有各的提条件,比如Ripple的跨链交易对见证节点的在线有要求,所以可以执行的交易不一定必然会执行。这还是只谈已经实现的技术。对于新做的带有验证其它区块链上交易凭证(SPV)功能的公链,虽然可以去掉“各链均有交易对家”这个条件,又加上了对矿工节点的一些要求,从而增加了受攻击平面。去掉对家还有一个严重问题:各链的安全级别也不一样,连起来后大家会用最弱链上的安全前提去套最强链上的币,以太上的EOS代币和Cardano上的EOS代币价格会不一样,没有对家没办法平衡它。
这还只是说链间资产协议,链间合同呼叫就更是没有好的实现方法了。这里我要说明好的实现方法是要实现原子化操作的,因为这是大多应用的前提。比如花里程买酒店,必须里程转移和酒店确定同时完成,不然就还是得依赖协程旅行网。以太坊的Patricia树更新条件是没有中间状态的,但是跨链就有中间状态了。
银行方面比较着迷资产链,即一类资产一个链,股市链呀债券链呀什么,然后用链间技术连接起来。我在R3的全球架构工作组期间和作为其它银行代表的同行们一起研究过这类项目,这种思路走到一定程度也就无路可走了,具体比较涉及银行专业就不展开讲了。
零知识证明也被吹得很神奇,好像安全计算(以零知识方式运行指令)已经实现了似的。好多ICO都假设它像换CPU一样,全面兼容之前的应用。您知道零知识执行合約意味着什么吗?连程序执行的步数都是不能让人知道的,因为那也是知识,可以反推出程序输入,所以零知识证明需要运行可能的最大的指令步数,这就是说为了使输入“零知识”,程序步数反尔必须是已知的,也就是说……它不可能是图灵完备的,不是你想像让他干什么就干什么。这还是条件的“之一”,还有效率低、需要新编译器(及语言)等等问题。2017年密码学大牛们使用以太坊虚拟机验证了零知识交易,且不说它是实验条件下完成的,这句话的意思跟媒体解读的“以太坊以零知识方式运行了虚拟机”是两回事。你说零知识证明能解决这个那个场景,你给我在黑板上做一个最简单的零知识身份证明(不通过签名证明你有某公钥对应的私钥)给我看看?你这个不知道(或者你的白皮书不能体现出你知道),后面你零知识证明能做这个那个功能我就不听了,都是用想象出来的方法做想象出来的功能。
这些问题不是不可以解决。给以时间,工程师们和密码学家都在努力,会有应用落地的。但是现在市场期望很高,觉得明天就可以做出来。
几个月前我给一批币圈朋友讲课,讲到了各种协议和应用方法,涉及面广了一些,大家都听得很兴奋,然后问我在做什么。我说离开银行后我在做钱包,就是最简单的那种存钱取钱,加一些应用协议(比如ERC875)。大家说你讲的这些协议可以改变世界了,我解释说有办法解决不等于能解决,也不等于这些解决方案的条件是实际业务可以接受的。大问题分成小问题,小问题分为细问题,要解决的问题多得很。我说的协议要做到得五年吧。我可以先从能做的做起,眼下在做的钱包要真做好已经十分不容易了。
我在银行的时候,每个产品都需要流汗,流血,集中最好的团队的力量,做出来还是不能用。而离开银行之后,发现常常是人家团队不如我们有经验和干劲,密码学基础不如我们好,口号吹得比我们强十倍,产品周期是我们的一半,那是不可能成功的。
15年我去上海时(我大本营悉尼)听小贝壳区块链演讲。主讲人她很有气场,讲的应用都是区块链最终确实可以实现的。但是她演讲我希望大家别听,因为她结尾的一句是“这些都已经实现了”。按我对当时工程应用水平的理解,那是不可能的事。现在网上也流行小贴子,说的区块链应用这样那样,说起来神气,我心里求他别在后面加一句“这都已经实现了”,但是每每读到后面还是同样的“已经实现了”。
为了帮助大家理解我们离技术实现还差多远。我举一些例子:
- 就在比特币的协议里,已经可以做到某甲给某乙发钱,某乙3天不收的话钱回到某甲手里。这种应用的场景是比如去中心化送红包什么的,对方可以不收嘛。比特币白皮书已经10年了,有那个钱包做到了吗?
- 地址是可以签名的,以防止地址被顶替掉。签名可以带场景,以防重用。这个技术也有10年了,有谁用到了它?
- 区块链上真随机数是可以生成的,Google上搜索最近的论文是X Yang 2014年的,但是这类算法年代久远,出身南美的图灵奖获得者Manuel Blum在95年第一次提出了一个这样的算法,够早吧,但是直到2017年加密猫还没用这套算法,因为其条件是要求随机数生成时有不止一方在线并且不在线交罚款,而游戏规则没办法融合这个条件。所以现在的加密猫生出来的小猫的基因,厂商方面还是能一定程度影响。
- 现在冒牌的李笑来每个论坛上都有。数学签名就可以验真身,有谁见到李笑来的贴子去要数字签名?
- 比特币地址可以用作身份标志登录网站,既可以验币又可以验身,这也是由来已久,有很多安全优点,但是直到2016年才有比特币钱包支持这项技术,而我完全没见过支持它的网站。
总结一下,技术发展不能一蹴而就。密码学过去不是显学,一下子变为显学,导师数量也是有限的,很多问题没解法。即使有解法,并不等于可以开发成应用软件,能开发出来也不是市场和用户就立即接受。
新技术前途很大,比如hashgraph,但是目前和未来几年区块链仍然只能在限定条件下有应用。区块链前景很广但是投资人都看错手表了,都在拔苗助长,害得一些原本不错的专家也在跟着投资人的时间表狂走。现在我自己已经停止投资新区块链资产了,很难选,估值都很不靠谱。如果你是个黑客,这个心浮气噪的时代是你的十年一遇的黄金时代,把安全有局限硬上马的区块链上的钱都好好偷一轮。
作者简介 张韡武
AlphaWallet CTO
中国籍澳大利亚居民。曾在澳大利亚联邦银行(澳大利亚最大的金融机构)担任区块链构架师,主导了12个区块链项目。超过5年的区块链开发经验,从alt货币设计到交易算法等。 R3 Corda专家 - 任R3全球构架师工作组。安全和加密专家,开源系统专家。区块链开发者社区公认的区块链专家。之前创办过两个技术公司(在线文档编辑,Linux系统安全),2012开始接触比特币和区块链。咏春拳爱好者。