原文来源:以太坊爱好者
原文作者:Shiri Perciger
原文翻译:阿剑
原文标题:《引介 | 时髦的密码学工具能帮助 DeFi 吗?》
去中心化金融(DeFi)运动誓言要让金融世界平等化,要让它更为公平和透明。但是,DeFi 若要在全球范围内实现这个目标,像以太坊这样的去中心化区块链就需要拓展吞吐量!这就意味着我们要运用新的密码学证明方案(有些人会把这些方案统称为「零知识证明」、「ZKP」)。
像 zk-STARK 这样的密码学证明系统(很快就要部署到以太坊主网上)并不是唯一的解决方案。其它办法包括 Plasma、以太坊 2.0、许多所谓的「以太坊杀手」提出的方案,还有最近的 Optimistic Rollup 方案。
在本文中,我们将解释去中心化的密码学货币当前面临的挑战、各密码学证明系统解决这些问题的路径,以及为什么说 zk-STARK 最适合于解决这个问题。
去中心化与处理量扩展
我们身处的时代,是计算机系统吞吐量不断提高的时代。从带宽,到存储空间,再到一块屏幕上的像素点数量,每一样都在不断提高。那么,为什么要提高比特币和以太坊的交易处理速度(用 TPS「每秒交易处理量」来衡量)这么困难呢?
答案是我们还想要保证去中心化。区块链保持免许可性的先决条件是:每一个使用普通笔记本的用户都能验证交易历史的完整性。这里有一个核心原则,我们称之为「包容的可追责性」,意思是:我们不能操之过急地提高系统的处理能力,否则它会退化成一个中心化的支付系统,只有少数几个财阀来控制的那种(也就是「现在的金融系统」)。
– 我们必须打破区块链三难困境,创造一个不同于传统系统的去中心化金融系统 –
因此,所有的扩展方案,包括 Plasma、Optimistic Rollup 和我们的方法(基于密码学证明系统,通常被称为 ZK Rollup 方案),都引入了两类不同的实体:一小群「强大的」参与方,需要投入大量的资源来执行密集的计算;还有一大群节点,这些节点负责验证交易、保证强大参与方产生的计算结果是可审计的。
如何能够在保证去中心化的同时扩展吞吐量呢?那就让强大的参与方来计算、而弱小的参与保证来保证可审计性呗。强大参与方是不是恶意的不重要,重要的是弱小的参与方能保证可追责性!
在深入细节之前,我们先来看看密码学证明系统。
你得懂点密码学证明系统
密码学证明系统始创于 1980 年;它对免准入型区块链的巨大价值,导致区块链领域在近年出现了新理论建构和新协议的寒武纪大爆发。在下文中,我们仅聚焦于 STARK,这也是我们 StarkWare 团队准备带给市场的一类证明方案。
密码学证明系统中通常包含两类角色:证明者和验证者。
证明者:证明者希望像验证者证明某个计算型陈述是正确的,例如「我已经处理了这 10000 笔交易,而结果数据库的哈希值为 X」。验证者会为这个计算型陈述提供一个证据,并发送给验证者。
验证者:验证者会验证该证据——而不是天真地重复原本那个计算过程——如果证据能通过验证,则验证者会相信证明者的陈述为真。
注意!在类似 STARK 这样的密码学证明系统中,证明者和验证者的计算负担是不对称的!
比起单单执行原本的计算过程,证明者的计算开销要大得多;而验证者则相反,得益于验证者已经付出的巨大开销,验证者要执行的计算量比原本的计算过程要小得多,比如,如果原本需要执行 10000 笔交易,那验证者只需付出 10 笔交易的计算开销就够了。
此外,密码学证明系统可以用来隐蔽输入(在上述例子中,那 10000 笔交易的细节都可以隐蔽掉);这样的密码学证明系统就被称作是「零知识的」,缩写就是 ZK-STARK。
密码学证明系统如何扩展 DeFi?
那么,今天的密码学证明系统究竟能在哪些方面帮到 DeFi 呢?
· 可扩展性
· 隐私性
· 公平性
我们一个一个来。
1. 用 STARK 提高可扩展性
我们回到最根本的那个挑战:保持包容可追责性的同时扩展以太坊吞吐量。我们需要一种技术,既能大幅提高吞吐量(方法是把计算负担分配给少量的「强大 参与者」),同时许多「弱小参与者」可以完全验证这些强大参与者的计算完整性(computational integrity),而且,还不会增加弱小参与者的负担。其它扩展方案,比如 Plasma 和 Optimistic Rollup 都依赖于错误性证明(Fraud Proof),而我们在这篇文章里解释过为什么密码学证明系统是更好的解决方案(编者注:中译本见文末超链接《有效性证明 vs. 错误性证明》)。
使用 STARK 的可扩展性(验证的速度是构造证明的速度的指数级),我们可以放胆让任何强大的实体成为证明者,哪怕是黑武士父子(Darth Vader & Sons,《星球大战》中的大反派)控制的傀儡也没问题。这里的关键在于,强大证明者要为自己的所有操作附加一个简洁的证据,而所有的弱小节点都可以轻而易举地验证这些证据。因此,通过 STARK(以及其它的密码学证明系统),我们就可以保证包容的可追责性,同时提供几乎无限的吞吐量扩展(严格地来说,我们「只能」做到指数级扩展)。
说得更细一些,ZK Rollup 可扩展性解决方案的基础是让大的计算任务(或者一大批小的计算任务)在链下执行,链下的计算资源富足得多;然后生成出计算执行过程的有效性证明并发送到区块链上(伴随着一个对新状态的承诺);然后由一个验证者智能合约来验证这些证明。通过验证之后,网络参与者就能相信整个计算是有效的(同时不需要信任任何一个实体)。正是因为我们没有任何信任假设,我们才能公正地接受一个有效性证据,哪怕是黑武士发出的也没关系。
这可不是嘴上说说——下周你就能在主网上使用了!
这些都不是停留在纸面上的东西了:使用 StarkEx,我们的扩展性引擎,我们已经实现了每秒超过 9 千笔自主托管型交易的吞吐量了(比起以太坊主网是 2000 倍的提升)!而且,这还不是极限:我们不受区块链资源的限制,仅受云资源的限制。
端到端的交易产品即将上线主网。
第一个由 StarkEx 引擎支持的 DeversiFi 去中心化交易所将在下周上线。而且 StarkEx 支撑的一个 NFT 交易所也在紧锣密鼓地开发中,将能支持游戏内资产的交易。
2. ZKP 增强隐私性
提高交易处理速度并不是公链走向大众化的充分条件。我们还需要隐私性。
公链的先驱在发现 ZKP 对可扩展性的好处之前,就已经发现了 ZKP 对隐私的好处。Zcash 区块链,启动于 2016 年,是第一个用 ZKP 方案来提供隐蔽交易的系统。
隐私对于实现一个高效市场来说也是很关键的。交易员们在市场中交易时,既希望自由自在,又希望不会暴露自己的独门信息。免准入的区块(以及 DeFi),在设计上是完全透明的:为了让所有的小节点都能验证区块链的状态而无需引入任何信任假设,所有的交易都会在链上公开。
因此,挑战在于:如何能够获得隐私性,又不至于牺牲 DeFi 的免信任性呢?可以借助 ZKP 的零知识属性!
如上所述,零知识证使我们可以在不公开私密输入的前提下证明一个计算型陈述。这种属性应用在区块链上,就能让独门信息被包含在私密输入中,证据完全不会暴露这个输入。结果就是皆大欢喜:隐私又能得到保护,同时任何人都能验证区块链的状态,还不用引入信任假设,完美。
这个更不是吹牛,你已经能用了!
有多个团队已经在以太坊上用 ZKP 做了隐私增强方案,包括 Tornado.cash 和 AZTEC。Tornado 使用了混币器方法,而 AZTEC 使用了交易池方法(哪个更高效呢?)。我们预计还会出现其它方案。
注意:有隐私不代表反监管。市场参与者对隐私的需求可以和监管者观察和监控市场健康度的需求并存。举个例子:一个企业可以创建一个交了税的零知识证明,而不是把自己所有的账本共享给收税者。企业的隐私得到了保护,监管者也能相信税收已经征收完毕(这样的例子还可见此处)。
3. ZKP 增强公平性
市场的公平性不仅在哲学玄思中有意义。交易员会远离他们认为不公平的交易场所,因此,公平性对流动性是有帮助的。损害市场公平性的办法有很多种,但大部分的办法都包含系统运营者(例如交易所自身)滥用提前知情权作为其中一环。ZKP 可以帮助参与者保证运营者不能滥用自身特权、不能偏袒。
一个很显著的例子是抢跑交易(front-running)。抢跑交易就是做市商利用提前信息、抢在其他人知道该信息以前交易,这是不合法的。关于抢跑交易对市场的影响,大家的估计有所出入,但公认的结论是影响巨大而且不利于市场的效率。
ZKP 可以解决抢跑交易的问题,因为交易员的隐私保护不仅能防范其他交易员,连运营者也不能窥破——这就保证了运营者不能拿知情的特权来牟利,让运营者回归其本来的位置。我们很希望能看到这样的解决方案。
前路
还有很多工作要做!我们要让开发者能更容易地获取这些技术,还要提高这些技术的效率。而且,我们要开发 Layer-2 方案,还要想怎么能不打破 DeFi 的强大可组合性,这里面也有很多工作要做(想对解决方案有一个直观的了解,可以看看条件性支付的原理以及 StarkEx 如何用以实现快速取款)。
密码学证明系统的可扩展性和隐私性可以让 DeFi 从金融创新的沙盒变成一个能改变现有金融系统的全球力量。密码学证明系统,比如 ZK-STARK,不仅在可扩展性上比其它方案有优势,还能用隐私性和公平性支持更好的市场设计、创造更好的市场。
律动 BlockBeats 提醒,根据银保监会等五部门于 2018 年 8 月发布《关于防范以「虚拟货币」「区块链」名义进行非法集资的风险提示》的文件,请广大公众理性看待区块链,不要盲目相信天花乱坠的承诺,树立正确的货币观念和投资理念,切实提高风险意识;对发现的违法犯罪线索,可积极向有关部门举报反映。
以太坊 零知识证明 以太坊 认识以太坊、了解以太坊、学习以太坊