清华大学计算机系副主任徐恪:区块链技术突破与未来风险

来源:乐链网

点击:1802

A+ A-

所属频道:新闻中心

关键词:区块链 数字货币

    很高兴有机会参加本次峰会,之前参加技术领域、学术圈的峰会比较多,今天我看到在座的有很多区块链从业者,还有特别多的投资圈朋友,我也学习到了很多。

    我今天演讲的题目是《区块链技术突破与未来风险》。从比特币到区块链我们谈了很多,问题出在哪里?我认为,一是信誉危机,国家政府忙于竞争,不重视经济发展,例如津元贬值,导致国家信誉破产,人民对政府的信任度下降;个人声势导致投资人盲目的信任,例如麦道夫利用个人名誉,规避监管,最后爆出欺诈事件。二是权利中心化,货币发行的权利过度依赖于中央银行,过量发行货币导致通货膨胀;个人或独立机构权利过大,会大量出现暗箱操作、滥用职权的现象。三是政府机构工作流程繁琐,且多数工作决策过程不透明,导致人民或者其他机构无法进行监管;类似麦道夫骗局,许多企业或者投资机构财务状态不公开,金字塔式的管理模型导致下层角色无法对上层工作进行监督。

    区块链技术的演进

    在比特币之前就有很多数字货币的实践,比特币是第一个真正成功的数字货币。1982年,David Chaum最早提出了不可追踪的密码学网络支付系统;1990年,Chaum将他的想法扩展为最初的密码学匿名现金系统,就是后来的Ecash;1998年,Wei Dai发表文章阐述了一种匿名的、分布式的电子现金系统,他将其命名为“B-money”;同一时期,Nick Szabo发明了“Bit gold”,和比特币一样,用户通过竞争性地解决“工作量证明问题”,然后将解答的结果用加密算法串联在一起公开发布,构建出一个产权认证系统。

    比特币不等于区块链,比特币是区块链的应用,是一种数字货币,不依赖中央银行,通过挖矿产生,奖励记账的节点。区块链是一种技术,或者说是多种技术的综合,可以承载很多上层应用。两者相辅相成,比特币依托于区块链技术才具有价值,而区块链产生数字货币又可以更好地激励矿工节点工作。区块链可以分为三大类:公有链、联盟链、私有链。公有链是任何人都可以自由参加和退出,联盟链是加入和退出需要经过联盟授权,私有链是权利完全控制在一个私有组织中。

    区块链1.0是以比特币为代表的数字货币应用,其场景包括支付、流通等货币职能;2.0是数字货币与智能合约相结合,对金融领域更广泛的场景和流程进行优化的应用。那到底什么是区块链3.0?刚才我在场下还跟白硕老师交流,大家对区块链3.0的看法可能都不一样,我们觉得未来在新的行业里,能够有新的应用,这样的形态才叫3.0,现在不着急给它下定义。

    区块链1.0有一个简单的脚本语言,区块链2.0有非常重要的智能合约。我是清华本科毕业的,包括王小川也是,我们在上学的时候没有听过“图灵完备”这个词,进入区块链领域后才听到“图灵完备”,这个词很有意思,它描述了一个语言的能力,有图灵完备语言能力的智能合约就是区块链2.0。智能合约的确极大推动了应用的发展,我们现在看到已经落地的应用有能源电力系统、分时租赁等。

    区块链技术的突破

    区块链到底带来哪些新的东西,可能真的需要总结一下。我们认为区块链是一种基于密码学原理的分布式共识账本技术,这里比较关键的有非对称加密技术、共识机制,以及分布式账本。非对称加密技术就是公钥数据加密和私钥数据签名;共识机制主要有工作量证明、权益证明,以及股份授权证明;分布式账本就是基于P2P网络的一个分布式数据库。所以,我觉得区块链是一个集成式创新的典范,它可能没有单元技术上的重大突破,但是它非常成功地把已有技术集成在可以工作的系统里,这点值得我们思考学习。

    首先,区块链对于去中心化特性的突破。传统中心化架构缺点是,易受攻击,黑客攻破中心服务器后所有用户都是不安全的。中心服务器的“暗箱操作”让用户隐私很难得到保障。中心服务器一旦出现故障,容易造成大规模的数据丢失。区块链去中心化架构由多方共同参与数据的管理,多方保持相互之间具有相同的数据记录,例如比特币网络中的账本信息,多方保持相互之间具有相同的计算状态,例如以太坊网络中智能合约中数据的存储。

    其次,区块链对于不可篡改特性的突破。当今互联网上,如何保证数据的真实性和有效性是一大难题,因为数据的存储者往往对数据有修改和删除的权利。为了逃避责任追究,有些厂商会选择直接删除对自己不利的数据,或者直接篡改数据让自己逃避法律的制裁,而对这种行为往往又很难防止和追责。区块链的出现,让数据不可篡改特性有了重大突破。数据分布式存储,冗余备份,防止一个节点的崩溃导致整个数据的丢失;含有密码学和有序时间戳,保证区块直接的有序性和安全性,一旦区块的顺序确定,几乎不可能被修改(除非有能力攻击超过半数节点),防止双花、数据篡改等行为;各节点之间通过共识算法保证数据的一致性,数学上可以证明是可靠的。

    第三,区块链对于高可靠性的突破。传统分布式网络对于副本状态机的使用是有限的,因此很难发展为大规模网络;传统分布式网络的拓展会消耗很多的网络资源;传统分布式网络的可靠性和一致性很难得到保障。区块链技术,通过共识算法和适当的激励机制,保障网络中每个节点的正常工作,保障可靠性和一致性的前提下,将网络规模扩大至全球范围。

    第四,区块链对于共识机制的突破。区块链在共识机制中,采用了激励机制,进而可以更好地解决拜占庭问题,使得整个系统具有更高的安全的特性。为了针对不同的应用场景和提高共识机制的安全性,目前有很多种共识算法,主要分为:

    1)POW(Proof of Work)干的越多,收益越多;

    2)POS(Proof of Stake)持有越多,获得越多;

    3)PBFT(Practical Byzantine Fault Tolerance)提供了一定的容错率;

    4)DBFT(delegated BFT)将静态的共识参与节点,改进为可动态进入、退出的动态共识参与节点;

    5)DPOS(Delegated Proof of Stake)POS的改进,选取代表人参与投票,防止资金的中心化囤积。

    第五,区块链对于隐私保护的突破。最近Facebook摊上了大事,数据大规模泄露,隐私保护越来越受到大家重视。区块链保护用户隐私的可行方式主要有非对称加密,用户在区块链中拥有一对私钥和公钥,理论上用户可以通过加密存储的方式保护自己的数据。其次,匿名身份,由于区块链中无需彼此之间的信任,不用公开自己的现实身份来博取对方信任,保护了现实隐私。最后,数据混淆,有研究指出可以通过比对交易数据来推断用户身份,针对此种情景,可以通过分组交易、混淆顺序等方式,让用户与用户之间的交易信息无法被推测,并且不降低区块链本身的安全性。

    区块链的前景与挑战

    区块链在很多领域都有着广阔的前景,但其目前仍然处于成长期,仍然存在许多问题,比如它的性能、安全、稳定性等。区块链的痛点,刚才很多人提到,比特币交易速度其实就是每秒几次,我们做过一些测量,确实是这样。如何提高交易速度?简单的办法是把区块产生速度提快一点,其实就是降低挖矿的难度,但是快有快的问题,就会出现双花、分叉等问题。

    学术界也有一些人在关注研究,比如康奈尔大学的Ittay Eyal写过一篇文章“Bitcoin-NG”,NG就是下一代比特币,它重点提高对交易确认的能力。他的想法很简单,就是把区块分成关键区块和微区块,关键区块可以十分钟出一次,但是关键区块可以根据交易的数量自己创建微区块,不用再去算哈希,不用再去竞争,它在十分钟内享受最高特权。中间涉及到交易费给谁的问题,有一个简单的算法,40%给前面一个关键区块,60%给后面一个关键区块。当然也有优点和缺点,优点是安全性提高,缺点就是恶意矿工创建KeyBlock后可以短时间发布大量MicroBlock,引发共识收敛性问题。

    当然还有闪电网络,利用较简单的智能合约,通过多用户参与的支付通道网络实现较高吞吐量的即时支付的分布式网络。闪电网络可以拓展成一个多跳的形式,但它并不能完全解决问题,也存在如下四个方面的缺陷:

    1)建立、撤销通道仍然需要进行链上交易,开销较大,易引起中心化问题。

    2)中间节点收取中介费,可能促使用户选择最短路径,以致出现寡头结点,进一步加强了中心化。

    3)可能造成用户在一段时间内资金被锁定在区块链上无法使用。

    4)恶意用户在通道对端未连接网络时,可通过广播对自己有利的交易,盗取通道中的货币。

    下一个可能存在的问题——算力波动。如果比特币的价格再进一步下跌,可能有一些算力就会撤出,算力的撤出让系统总算力下降,总算力下降会导致出块的时间变得更长。引申一下“算力攻击”,如果要攻击比特币系统,可以用比现在系统大两到三倍的算力,冲进去算一下,然后撤出来,这导致算力的难度会提升,但是算力撤出来难度不会下降,就造成很长时间都出不了块,系统就跟死在那一样。这是一种可能,当然还没有发生过,所以大家想如果真有这种攻击发生我们怎么去解决。

    大家一直在说哈希安全性的问题,其实我们也一直在关注。因为,比特币或者区块链这种安全体系就依赖于哈希算法的安全性,但是哈希算法是不是真的那么安全?2017年2月23日,Google在其安全博客上公布了其找到了世界首例的SHA1碰撞,这标志着SHA1不再安全,其实SHA1碰撞很早就被清华的王小云教授提出来了,只不过那是一个理论的算法,谷歌真的把它算出来了,下面列出来的两个哈希碰撞结果是相同的。

    所以,SHA1已经不安全了,比特币区块链采用双SHA256哈希方案,一旦SHA256被攻破,比特币区块链便不再安全,在可预见的未来,风险来自于哪里?答案是量子计算,量子计算机对每一个叠加分量实现的变换相当于一种经典计算,所有这些传统计算同时完成,并按一定的概率振幅叠加起来,给出量子计算机的输出结果,这种计算称为量子并行计算。传统计算是一类特殊的量子计算,量子计算对传统计算作了极大的扩充,其最本质的特征为量子叠加性和量子相干性。

    简单看,量子计算是通过量子特性做计算的一种方式。有了量子计算,主要是可以对非对称密码,无论是基于因子分解问题的RSA,还是基于椭圆曲线上离散对数的ElGamal,都可以用量子计算机在很短的时间内破解。区块链底层采用了椭圆曲线密码学作为基础,一旦量子计算机研发出来,便可在较短时间内攻破区块链。

    简单算一下,如果破解1024bit的RSA算法,需要至少1000到2000量子比特,现在我们常用的可能是2048,所以还比较安全。当前的状况是IBM刚刚研制出50量子比特的量子计算机。最近,澳大利亚有研究人员说,他们能做一个芯片可以集成一百万个量子比特,听起来很夸张。我仔细看了他们的文章,发现吹的比较厉害,他们计划是到2022年,先做出一个10量子比特的芯片,所以还很遥远,我们可以稍微放点心。

    最后一点,智能合约。上午量子链的朋友讲到,他们在智能合约里有大量的机制来保证代码的安全性,这里我作为计算机的从业人员必须说一句,只要是软件代码编写的东西就一定有漏洞,所以说智能合约的漏洞是不可避免的。有人做了一些研究,下图是CMU指出的安全性和灵活性负相关的关系图。

    2018年3月14号,有一篇文章提到对三万多份智能合约做检查,发现都有漏洞,价值好几百万美元,其中一份合约的漏洞会导致2.8亿美元被锁死在以太坊上,这是很麻烦的事情,漏洞类型分为很多种,有锁定的,有挥霍的,还有自杀型的等等。

    以上问题提示我们,在代码系统,或者程序完整性检查还未有效保证的情况下,还是要很慎重地采用智能合约这样的方式。

    密钥管理其实是老问题,比特币的密钥就是靠你自己去保存,如果丢了,密钥忘了,钱就拿不出来。听到一个故事,不知道真假,两个人合伙买了十万个比特币,一人记一半密钥,这样保证没有一个人可以单独把它拿走,结果很不幸有一个人在美国遭遇车祸去世了,密钥没有留下来,所以另外一个人又开始找工作,因为属于他的五万个比特币也相当于丢了。

    所以,密钥是一个大问题。如果采用中心化存储将失去区块链的一切优势,未来区块链上的应用可能越来越多,密钥不仅关系到用户的财产,还可能涉及用户的隐私数据、自身安全(医疗数据)等,密钥一旦丢失,会给用户造成无法挽回的损失。

    最后做一个总结,区块链还处于一个成长期,很多问题需要解决,很多应用有待挖掘,但是我们确实相信,区块链在未来,可能会引领一个新的去中心化世界。我的分享就到这里,谢谢大家!


    (审核编辑: 智汇小新)