社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  区块链

区块链可扩展性问题如何解决?Zilliqa联合创始人贾瑶琪访谈

高可用架构 • 7 年前 • 802 次点击  

导读:6 月 1 ~ 2 日,GIAC 全球互联网架构大会将于深圳举行。GIAC 是一个面向架构师、技术负责人及高端技术从业人员的技术架构大会。今年的 GIAC 已经有腾讯、阿里巴巴、百度、今日头条、科大讯飞、新浪微博、小米、美图、Oracle、链家、唯品会、京东、饿了么、美团点评、罗辑思维、ofo 等公司专家出席。


在大会前夕,高可用架构采访了本届 GIAC 区块链及数字货币讲师贾瑶琪,就目大家广泛关注的区块链的安全和分片等问题进行了访谈。


贾瑶琪,Zilliqa 联合创始人兼技术总监、区块链和信息安全技术专家。新加坡国立大学博士,曾任该校研究员,重点研究领域是:可扩展和隐私保护的分布式网络。他目前致力于下一代可扩展高吞吐量区块链系统Zilliqa的设计和实现。有多篇学术论文发表于 CCS,、USENIX Security 等国际顶级安全会议,曾获 W2SP 和 ICECCS 最佳论文奖。其研究成果被多家业界公司如谷歌和苹果采纳,并得到了业内知名媒体 Dailydot、Gizmodo、Techspot 等的广泛报道。 个人网页:https://www.comp.nus.edu.sg/~jiayaoqi/


Zilliqa (https://www.zilliqa.com/) 作为一个新的可扩展公有区块链,使用分片技术支持每秒数千次的交易,着重为高吞吐量的应用程序提供运行平台。


它将分片技术从理论变为实践,运用创新的密码技术和共识协议,提供随着网络增容而不断提高的交易处理能力。在最新的实验中,测试网络达到每秒处理 2,400 个交易以上。这比目前的主流区块链平台快了200 多倍。


此外,Zilliqa 提供安全和高效的智能合约架构,以实现“设计即安全”的智能合约编程和验证。同时,Zilliqa 为实现安全数据驱动的分布式应用而量身打造,可以满足如数字广告业务、电子资产管理等大规模高吞吐量应用的规模化要求。


高可用架构:你是如何接触到区块链的?又是如何决定加入区块链行业?在这个过程中对区块链的认识有哪些变化?

贾瑶琪:我本科就是做信息安全出身的,在新加坡国立大学读博期间我一直研究的都是互联网底层协议以及可扩展和隐私保护的分布式网络,这些都与区块链底层技术密切相关。开始的时候,区块链技术最让我兴奋的就是他的中本聪共识协议 (Nakamoto Consensus),使用工作量证明和最长链原则解决了成千上万节点达成共识的问题,这在学术界也是开放新的科研难题。


从 2014 年开始,我做 Peer-to-peer Web 相关的研究,与学弟 Loi Luu 和导师 Prateek Saxena 有过很多关于区块链可扩展性和隐私保护的讨论。我真正接触分片技术是在 2015年,当时我的导师 Prateek Saxena 和学弟 Loi Luu 合著发表了题为《A Secure Sharding Protocol For Open Blockchains》 [1] 的论文,这是在区块链学术领域有人第一次提出分片的概念。此后,我便在导师的帮助与指导下,同师兄、师弟一道,共同开展了对区块链尤其是分片技术的深入研究。

在成立 Zilliqa 之前,我曾分别担任国大和 Anquan Capital 公司的研究员,重点研究区块链可扩展性的解决方案及其实现。直至2017年7月,我和师兄心书、Anquan Capital 公司其他专家和前辈一致认为分片技术落地现实、成果可期时,我们共同成立了 Zilliqa 公司,并在2018年第一季度正式推出了 Zilliqa 的 1.0 版公测网,成为全球首个将分片技术落地的区块链项目。

一路走来,我除了不断加深对区块链的了解和认识外,更加感受到区块链是一场前所未有的技术革新,面前既有海阔天高,也有不测之渊,因此推动区块链技术的发展道路漫长、责任重大,我将与 Zilliqa 团队全体成员一起,共同为更好的区块链世界努力贡献力量。我个人也会践行一直以来的梦想: Decentralize the Web in a secure/scalable/incentivized/privacy-preserving manner.


高可用架构:Zilliqa 混合使用了 PoW 以及 PBFT,最近社区中关于 PoW、PoS、DPoS 不同共识算法的争论很热,都觉得自己代表未来,你是如何看待这个问题?

贾瑶琪:PoW 的安全性是经过实践验证的,但耗能大、效率低,权益证明和代理人共识协议相对较新,能够在一个很小的团体内部很快达成共识,但有去中心化程度不足、安全性尚未得到验证等问题。我认为共识协议都各有自己的优缺点,没有好坏之分,只是每个机制的设计理念、应用场景不同。

Zilliqa 采用的是 PoW + PBFT 的方案。PoW 在 Zilliqa 中不用于做共识,而是为了抵抗Sybil攻击并且用来做网络分片,即仅用于确定矿工的身份。在 Zilliqa 中,所有节点在加入网络以及每隔一段时间都要做一次 PoW,这样 PoW 就在更大的间隔上运行,所以 Zilliqa 在使用 PoW 保证安全性的同时也使能源消耗降到最低。


Zilliqa 用 pBFT 来做共识的主要考虑是:

1、它不是计算资源密集型的,比 PoW 耗能少;
2、它可以利用一个小的共识组,因此效率更高;
3、它不像基于 PoW 的共识机制需要至少 6 个确认,由于 pBFT 的共识协议确保不会发生临时分叉,所以交易具有最终性。

Zilliqa 的 PoW + PBFT 的方案跟前面的几个是站在不同的角度设计的,我们认为几种方案可以共生。有关 Zilliqa 共识协议的更详细介绍,欢迎阅读我们博客中的专题文章《Zilliqa 的设计构思第2部分:共识协议》[2]。


高可用架构:区块链的性能以及吞吐问题一直大家关注的点,也是 Zilliqa 的目标,能否分享下这个问题的不同的解决方案以及比较?

贾瑶琪:当前,区块链的性能已经不能满足大家的使用需求,所以在安全和去中心化的基础上不断提高区块链的吞吐量和可扩展性已成为所有项目面临的共同挑战。目前已有的解决方案主要有:

一是增加区块的大小。例如在比特币中一个区块大小约有1MB,去年底的 SegWit2x 曾将区块大小提高到2MB以提高吞吐量,但Bitcoin Core 最终出于对安全性和其他因素的考虑取消了 SegWit2x 硬分叉。由于计算性能及带宽的限制,区块大小在提升到一定程度后,矿工难以在短时间内难以完成全网广播,可能导致整个网络不能正常运行,因此这个方案仅能非常有限地提升吞吐量。

二是链下交易。如比特币的闪电网络(Lightning Network)、以太坊的 Raiden Network 等。在这些方案中,用户可以提前支付一些以太坊或比特币作为押金,之后在链下与他人进行交易,交易结束后进行总的结算,最终将结算结果放在区块链上。这种方式可以大幅度提升系统的吞吐量,达到每秒上万甚至更高的交易数,但不足之处在于链下交易失去了开放性、透明性的优势,相当于做了客户端服务器的一个终端,并且没有那么多节点进行行为监督,也就少了去中心化的优势。

三是代理人共识协议解决方案。即所有矿工通过权益证明或官方验证等方式选举出一定数量的代理人,选出的代理人就产生区块达成共识,之后广播给整个网络从而达成整个网络的共识。正如上个问题说到的那样,这个方案的好处是共识是在很小的团体内部达成的因此速度较快,但相较比特币、以太坊即共识由成千上万节点共同决策而言,这一方案容易被质疑去中心化和安全性不足。此外,因为这一小部分的代理人节点可能是由同一个利益团体选出来的,他们是否能代表绝大多数人的利益尚待考证。

Zilliqa 实现高吞吐量和可扩展的解决方案为分片技术(sharding)。


分片受传统数据库分片概念的启发,就像数据库被切分成几部分放置在不同的服务器上一样,在公有区块链中,交易被划归到不同的分片(shard)上同时进行处理,也就是说每个节点只处理整个网络中一小部分的交易,并且这个处理过程是与整个网络中的其他节点同时进行的。这就意味着,加入网络的节点越多,分片的数量也越多,整个网络能够同时处理的交易也越多。


在所有的链上扩展解决方案中,分片技术是独一无二的,因为它带来的扩展是横向的,即网络吞吐量随着矿工节点数量的增加而增长,这是其他解决方案不具备的特性。正是因为分片的这种特性,再加上它是链上的、任意节点都可以加入的、去中心化的,分片技术很可能成为推动区块链技术迅速普及的理想动力。


今年3月初,Vitalik 曾携他的团队到 Zilliqa 与我们的团队共同讨论了分片技术面临的挑战和解决方法,我们都十分赞同分片是当前通往区块链可扩展的重要途径。前些天,Vitalik 在发表“分片即将来临(Sharding is coming.)”的状态时也在留言中表示,Ethereum 和 Zilliqa 都应该建好自己的生态系统,未来寻找合作的方法,Zilliqa 的 CEO Xinshu 也转推了这个留言并表示,分片技术面临挑战,最好共同努力解决。


有关 Zilliqa 分片技术的更详细介绍,欢迎阅读我们博客中的专题文章《Zilliqa 的设计构思第 1 部分:网络分片》[3] 。此外,我曾在 Vitalik 创办的《比特杂志》中发表过专题文章《Op Ed: The Many Faces of Sharding for Blockchain Scalability》[4] 介绍当前分片技术的分类和各自之间的不同,也欢迎查看,希望有助于大家增加对各种分片技术的了解。


我认为,无论是分片还是以上提到的几种不同的方案都各有特色,是可以共生的甚至有一些还是可以相互结合的,Zilliqa 将继续致力于研究和完善分片技术,推动区块链的长远发展。


高可用架构:你原来的研究方向是可扩展和隐私保护的分布式网络,区块链在隐私保护领域,遇到的挑战以及主要解决方案是什么?有什么最近的理论或者实践进展可以给大家分享的吗?

贾瑶琪:虽然说 Zilliqa 当前主打通过分片技术提高区块链的可扩展性,但我们也十分重视区块链的互通性和隐私保护,我们已有计划在未来通过多种途径改进和提高区块链在互通性和隐私保护方面的技术。我认为隐私保护的需要主要出现在以下几种情况:

一是当用户希望隐藏交易发送方、接收方和交易数额时;
二是隐藏用于调用智能合约的数据时;
三是隐藏智能合约回路(circuit)本身时。

对于这三种不同的情况,Zilliqa目前的解决方法是:


  • 对于情况一,我们可以使用类似 Monero 的隐私保护(基于匿名集大小的环签名)或者像 ZCash 使用 Snarks;

  • 对于情况二,我们有计划使用诸如保密函数计算 (secure function evaluation) 和 ZkSnark 等密码方案;

  • 对于情况三,我们将不得不探索隐私保护函数计算 (private function evaluation)。当前,我们还没有确定最终的、具体的计划,我们将分阶段按计划提高隐私保护性能。


上述提到的一和二解决方法相对比较容易做,因为现在已经有使用这些技术和方式的项目存在了,而解决方法三则更为复杂,可能需要更多的学术研究和实践检验。当前,已有一些学术文献中就解决方法三有初始想法,但许多基本假设仍需要仔细检查。此外,现有的一些对情况三的解决方法,还需要运行合约的各方和援引它的一方之间的交互。所以我更愿意说,解决区块链隐私保护的挑战并不是一朝一夕的事情,而是需要付出持续的、长久的心血。

高可用架构:区块链的抗量子计算,也是大家关注的一个点。Zilliqa 考虑这个问题了吗?一般都有哪些解决方案?

贾瑶琪:我们 Zilliqa 团队一些成员如 Amrit 是密码学出身的,因此一直十分关注量子计算机的发展。


许多人认为,量子计算机可能是对区块链的威胁,主要原因是其强大的计算能力会使区块链的安全防线,例如数字签名,变得不再牢固。但是我认为,量子计算机并没有大家想象的那么可怕,因为现实的情况是,目前的量子计算机的计算能力还不够高,并且越往上增加难度越大。比如,实现量子计算还面临着一项基础性困难,随机波动、量子比特的热能甚至基本的量子物理过程都可能会改变量子比特所处的状态,对它造成干扰。


而量子计算在发展的同时,密码学必然也会与时俱进,10年后的量子计算机与现有的区块链密码体系不可相提并论。目前学术界也在积极研究后量子密码 (Post-quantum cryptography),已经有不少可以使用的后量子密码算法。未来,我们 Zilliqa 还将继续进行密码学方面的研究,提高区块链的抗量子计算能力。

高可用架构:作为区块链公链项目的技术负责人,你觉得区块链当前主要缺哪方面的技术人才?区块链对技术人来说,会带来哪些影响和挑战?

贾瑶琪:我认为区块链领域的技术人才大致上可以分为研究和工程两个方向。研究型人才对区块链的理念设计(如共识协议)、发展方面、问题解决至关重要,相当于区块链发展的“领路人”;工程型人才对区块链的方案测试、技术实现、问题发现的根本,相当于区块链得以落地的“基石”。这两种技术性人才来说对区块链的发展都是不可或缺的,区块链当前面临的耗能高、吞吐量亟待提高、智能合约安全性有待完善等一系列问题也是所有技术人员的共同挑战。我希望能有机会与各方面专家和技术人多交流,就当前区块链面临的挑战进行深入讨论,共同为区块链的发展贡献力量。


高可用架构:对 GIAC 大会有什么期望或者寄语?

贾瑶琪:本届 GIAC 大会群英荟萃、内容丰富,相信将对全球互联网架构的思想交流和技术发展贡献重要力量,衷心祝愿 GIAC 大会圆满成功!


相关链接


  1. A Secure Sharding Protocol For Open Blockchains 公有区块链的安全分片协议, http://www.comp.nus.edu.sg/~tsunami/papers/Elastico.pdf

  2. Zilliqa的设计构思第2部分:共识协议,https://blog.zilliqa.com/zilliqa-%E7%9A%84%E8%AE%BE%E8%AE%A1%E6%9E%84%E6%80%9D-4ca8a3f61f99

  3. Zilliqa的设计构思第1部分:网络分片, https://blog.zilliqa.com/zilliqa%E7%9A%84%E8%AE%BE%E8%AE%A1%E6%9E%84%E6%80%9D-483839031cf0

  4. Op Ed: The Many Faces of Sharding for Blockchain Scalability,https://bitcoinmagazine.com/articles/op-ed-many-faces-sharding-blockchain-scalability/


本文采访编辑王渊命,技术原创及架构实践文章,欢迎通过公众号菜单「联系我们」进行投稿。


本期 GIAC 大会上,区块链部分的精彩议题如下:


参加 GIAC,盘点2018最新技术。点击“阅读原文”了解大会更多详情。


今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/qajt2ks0LP
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/12027
 
802 次点击