StarkWare总裁:要获得最大的可扩展性需使用能释放其潜力的编程语言
9月22日,在由万向区块链实验室主办的第八届区块链全球峰会上,以太坊扩容解决方案StarkWare联合创始人兼总裁Eli Ben-Sasson表示,STARK数学技术能够让人们相信,即使没有监管,也不需要监督计算的每一步,合约都会保证正确的执行。一台性能有限的计算机,可以监督并声明大量计算集群的可靠性,并且无需重新执行计算,这就是这项技术为什么会和区块链有关系。
Ben-Sasson称,StarkWare采用的方法是基于数学的证明,也就是有效性证明的方式,StarkWare要实现的目标是能够让任何人运行非常庞大的计算机,并且处理相关的事情,然而做执行的一切事情都必须向L1进行证明。 如果想要获得最大的可扩展性,实际上需要使用能够释放其潜力的编程语言。 对于StarkNet,其编程语言就是Cairo ,开发者可以用它来写各类应用。而且目前为止,开发人员已经为它编写了数百应用程序,包括用于投票、虚拟身份和游戏的应用程序。
一下为演讲全文:
Eli Ben-Sasson: 大家好!
我是StarkWare联合创始人兼总裁。今天下午我想和大家分享关于STARK数学技术。这项技术是我们最先发明,然后将其打造成产品,部署在区块链的第二层,也就是Starknet。有关STARK技术和密码学的故事,可以追溯到三十年前。在80年代中期和90年代初,数学创新释放出了巨大的力量,并且将这种力量交还到人类的手中。
所以,我们经常会在电影当中看到这样一个画面,一个年幼弱小的孩子,碰到了一条非常强大的巨龙,并且通过某种神奇的方式控制着这条巨龙,而在区块链的世界当中,弱小的孩子实际上就是以太坊,它是作为一种计算设备,存在着某种限制。
而通过某种魔法能够控制大量算力,这里所提到的“魔法”就是数学,所以,STARK就是基于30年的数学研究成果。其中,很多研究成果是经过发明优化之后应用到了StarkWare,核心在于数学允许你使用密码学来声明它的可靠性。
可靠性到底意味着什么呢?实际上在小说家路易斯(音)有一个非常精妙的描述,算没有人在监督,也要保证做正确的事情。
同理,这项数学技术能够让人们相信,即使没有监管,也不需要监督计算的每一步,合约都会保证正确的执行。所以,借助这项非常神奇的数学技术,我们可以致力于让以太坊扩容,以满足全世界的需求。
这篇来自于30年前的论文当中有一段非常优美的描述,介绍了一项了不起的数学创新,其中提到“一台可靠的个人电脑,可以监督一台超级计算机的运行”,哪怕这些超级计算机使用的是极其强大,但是不可靠的软件和未经测试的硬件。以太坊就像是非常薄弱、功能有限的计算机。
用论文当中的话来讲,就是一台个人电脑,但是它可以用来声明可靠性,并且知道这群超级计算机执行了正确的操作,而且不对这群超级计算机的可靠性做任何假设。听起来像有魔力一般,但数学的魔法的确可以让它成为现实。
分享我个人的故事,大概二十年前我成为了一名对计算理论感兴趣的年轻数学研究员。而且当时研究的问题之一,就是让这些美丽而又强大的证明魔法不断变得非常高效。而且,我与我的合作者、同事一道做了大量辛勤的工作,几十年以来让这个效率不高的理论,变成了最终非常高效,而且可以在普通或者通用电脑上生成,并且进行验证。
到了这一阶段,成立了StarkWare,而StarkWare的使命就是用数学来维护区块链的可靠性,并且能够实现区块链的可扩展性。在此期间,我也使用了零知识证明技术的不同版本,并且为区块链引入隐私保护。我也是Z-cash创始人之一,但是今天不谈隐私的话题,我会聚焦数学和StarkNet的可扩展性。
经常有人会问我,从数学家到一名实践者,从一名计算机科学家、教授到企业家是怎样的一种体验?对我而言,从非常理论化的研究到非常实用的场景应用,就好像是穿越一座“沙漠”一样,作为理论家和科学家,我要谈实际应用,而做实践的人有时候不明白理论如何为他们所用,很长一段时间,我和我的同事们不得不穿行在“沙漠”当中,直到我们成功地抵达另外一边,并且做出了今天实际非常有效和可行可用的应用,当然这是另外一个故事了。这项技术能够让用户操作一台较为弱小的计算机,去验证另外一台更强大计算机的可靠性,而这与区块链又有什么关系呢?
回到刚才这句话,一台性能有限的计算机,可以监督并声明大量计算集群的可靠性,并且无需重新执行计算,这就是这项技术为什么会和区块链有关系。
试想一下,以太坊做一台电脑,有许多节点,以去中心化的方式来运行,但如果是一台电脑,作为一台电脑计算机而言,它的性能十分有限。换句话说,对它计算能力的需求远远高于当前的实际性能,这也就是为什么Gas的费用很高,而且很拥挤。所以,用STARK技术,可以用这台计算机监控在链下完成的更大规模的计算,以及计算结果的可靠性,而且可以拥有和以太坊相同的安全级别和信任假设。
与此同时,通过数学的魔法来增强所有计算的可靠性和安全性。
在当今的金融交易中,我们面临着两种不同的交易方式,第一种是非常传统,我们使用银行的信用卡和支付处理流程,通过这种方式,如果以一种抽象的方式来表述,有人正在使用一台大型计算机,并且每个人都需要信任它。
如果你想知道整个系统是否是非常诚信的,只需要相信或相信政府、审计员或者其他人正在做正确的事情,但它并不是非常包容性的系统,实际上是非常独特的,你和我都不能成为一家银行,并且进行这些交易的处理,那是传统的方式,它在计算和处理事务的能力非常有效。
比如区块链-以太坊是极强的包容性,这点非常棒,每个人都可以,也非常欢迎使用自己的个人笔记本电脑接入到以太坊网络,并且成为其信任基础的一部分,我也希望大家正在这样做。
为了让大家每个人都用我们的笔记本电脑连接到以太坊网络,并且成为其信任基础的一部分,我们需要限制其计算量,这样笔记本电脑才能承载。
换句话说,以太坊这样的高度包容性系统非常好,但是作为计算设备而言非常缓慢。我们想要的是具有包容性的系统,能够允许每个人将自己的计算机添加到这个网络中,并且对网络活动予以监督。
与此同时,能让这个系统在链下获得与大型计算机同等的规模。而连接这些不同世界的桥梁,实际上就是STARK以及相关的数学应用。
可扩展性有哪些方案可以选择呢?首先你可以让每个人买一台更大的电脑,当然有些人会被拒之门外。顺便说一下,我们也存在一些侧链,一些非常流行的侧链就是用这种做法。过去我们也存在着侧链的做法,比如EOS和BSC等等,实际上这个方案的实施就是让节点运行更大的计算机,你也可以选择购买一台大型的设备参与其中。但即便如此,它的规模也是有限的。与此同时,包容性也就丧失了。
比如说,当前最受欢迎的区块链之一,对硬件的要求是至少需要12个内核和128GB的内存,但是我的计算机没有,所以采取另外一种做法,就是要求使用称为欺诈证明的东西。比如Arbitrum和Rollup。有些硬件的要求会更大,这也就意味着我自己的笔记本电脑就没有办法加入。然而,有些人会声称存在着各种博弈论或者激励措施,将会使得这些更大的设备相互之间形成约束,到目前为止,这项技术还没有像预想的那样在任何地方开始启用。如果它确实得到应用,它的安全性应该要符合预期,但至少对于我而言,这点还不清楚,也没有得到证明。因此,这个方案会速度稍快,但是包容性稍差,有些人会拒之门外。
而我们要采用的方法是基于数学的证明,也就是有效性证明的方式,我们要实现的目标是能够让任何人运行非常庞大的计算机,并且处理相关的事情,然而做执行的一切事情都必须向L1进行证明,因为这是我们唯一信任的网络。
StarkNet很好体现了这一原则,当我们在StarkNet上运作时,安全性就是以太坊的安全性,你不用对StarkNet生态做出任何信任的假设,因为安全性的保障来自于底层,也就是以太坊,这是StarkNet能提供的,而这是来自于数学的力量。
证明商店、参观的收据,事实上餐厅的收据是一种非常古老的证明形式。如果你认为餐厅收据是一串用于声明可靠性的字串符,它是用来向顾客证明应该支付的总金额,而总和来自于一系列的算法。当我们收到收据的时候,你可以通过简单的运行这些计算来检查和验证结果的可靠性,因此餐厅收据就是可靠性的证明。
但是从数学的角度来看,它们并不是非常成熟,并且它们不支持可扩展性,因为你需要重新进行运算。而Stark证明是类似的,你可以将它看作类似于餐厅收据的东西,但是这个收据的长度以及检查该证明所需要的计算量,要比它所宣称的计算量小得多。所以使用这项技术,你可以处理数十万笔交易,而且不需要对证明器以及整个处理器做出任何信任假设,它可能是黑暗之王或者达斯维德的邪恶之王。
无论你处理这些交易提供什么,但是你可以保证所有的节点都不能作弊,也不能借,因为系统的任何更新都要有完整性证明,一起提交到L1,这就是我们所做的,对系统状态的任何更新都附有证明,没有人证明是虚假的,如果有证据那就表明是正确的执行,即使没有L1的监督,这就是STARK证明的力量。所以它不仅仅是一种理论,在以前是一种理论,但如今已经成为一种有效的系统。
想象一下,打造NFT的时候,如果你想用以太坊来铸造NFT,可以在一个区块当中放入几百个NFT。实际上,一年多以来,我们都为客户Inmiutebo X(音)提供服务,而他时不时需要铸造数十万、数百万个NFT,而我们的技术一次又一次帮助他们只需要用一个Stark证明又可以打造出来,而且执行了60万的NFT,所有这一切都可以轻松放入一个以太坊证明当中。有了这项技术之后,可以实现每个区块数百笔交易,扩容到每个区块数十万、数百万个交易。
StarkNet能够让每个开发人员、用户拥有这种非常魔力的技术,它能够增强以太坊的能力,并且为它扩容达到指数级。什么是StarkNet?它非常像以太坊,但是它是为L2。你可以把智能合约写到StarkNet上,可以向智能合约提供相关的交易,而且它支持通用的计算和可以组合。但是由于Stark证明的魔力性,可以提供更低Gas费用,你甚至可以把StarkNet看作是和以太坊非常类似的东西。从用户的角度来看,当你提供交易的时候,所有交易都进入到矿池,矿工对交易进行打包处理,写入到区块当中。
而StarkNet做的事情非常类似,在链下进行运行,也就是以太坊是作为L1底层链,不知道StarkNet上发生了什么,也不需要做任何的信任假设。但是用户可以向排序器提供数十万笔的交易,而排序器将对这些交易进行排序,一个个处理。然后这些交易被发送到证明器,证明器将会为所有交易的正确更新和执行生成一个更加严格的证明。实际上,证明要比计算和交易小几个指数级。这个证明已经提交给了以太坊,而在以太坊中有一个验证智能合约的把关负责校验和可靠性。
大家回想一下刚才提到的这张画面,一位弱小的孩子拥有巨大的魔力,通过魔力可以控制巨大的魔法生物,比如一条巨龙。而在刚才的行业当中,它指的是数学和Stark的力量,所以验证器(所谓的小孩儿)是位于L1底层的验证者,它是以太坊,但是他仍然可以使用StarkNet上非常强大的计算能力,这是属于L2层。
StarkNet自带了一种新的语言叫做Cairo ,简单和大家解释一下,为什么会有这种新的编程语言。你可能会有一个疑问,为什么以太坊会有这样一种新的编程语言,以太坊什么时候出现的?2015年左右,当时已经有了非常好的编程语言,比如Python和C语言。但是Vitalik和Gavin以及其他专家提出了名为EVM的虚拟机,和与之配套的新的编程语言。
当然有几种不同的语言,而Solidity是其中最有名的,同样现在建议用户和开发人员使用一种新的编程语言,即Cairo 。出于类似的原因,Vitalik和其他人发明了Solidity,想要运行区块链会产生新的约束系统,而且你需要一种能够满足这些约束的编程语言。
同样STARK也有许多代数和数学的限制,比如Mergen RP(音)的代数运算非常便宜,但密码的运算,比如说KACH和Digrus(音)运算非常昂贵。以太坊内存目前一些非常高效的范式,在使用StarkNet的L2上非常昂贵。
如果你想要获得最大的可扩展性,实际上你需要使用能够释放这些潜力的编程语言。对于StarkNet,其编程语言就是Cairo ,你可以用它来写各类应用。而且目前为止,开发人员已经为它编写了数百应用程序,包括用于投票、虚拟身份和游戏的应用程序,希望大家能够加入庞大且不断增长的StarkNet和用户网络,并且拥抱这一魔幻的技术。
非常感谢!