查看原文
其他

以太坊如何被互联网计算机网络增压

Dfifans DFINITY 2022-07-07




2020年9月30日,互联网计算机项目将经过其钠的里程碑,并在启动公共网络之前进入最后阶段。


对于项目支持者和以太坊社区而言,这是激动人心的时刻,以太坊社区帮助诞生了该项目,并将使用互联网计算机扩展以太坊dapp的功能。


互联网计算机(IC)是一个完全不同于当今任何生产中的公共区块链网络,它将引入的独特功能是去中心化生态系统的补充。


它在很大程度上依赖于互联网的设计理念,由世界各地的独立数据中心创建,这些数据中心运行着大量特殊的“节点计算机”,这些节点计算机具有标准化的硬件,并能够通过称为ICP的高级区块链协议来组合其计算能力。


它被称为互联网计算机协议(Internet Computer Protocol),从而为智能合约(称为“软件容器”或简称“容器”)的演进创建无缝的宇宙。


互联网计算机的节点计算机,目前有四家制造商制定此规格,截至2020年8月。


互联网计算机不同


ICP协议会奖励在每个时间节点正确操作的数据中心,希望增加收入的数据中心必须运行更多标准化的硬件。


这使得它可以与提供区块奖励的网络不同的方式工作,例如工作量证明(矿工因通过重复哈希计算获得记账权利而获得奖励)或权益证明(矿工通过抵押令牌而获得的奖励)。


并且是与高级计算机科学和加密技术结合使用时,互联网计算机可以根据需求,主机软件和数据无限扩展其容量的众多支柱之一,高效率,并在许多应用程序中提供与传统云相同或更好的性能。


互联网计算机的主要目的是取代旧有的IT堆栈,包括Big Tech的云服务,以及传统的基础架构软件(例如文件系统、Web服务器、中间件和数据库),并为新一代的“开放式”技术提供动力。


“互联网服务”(或OSI)作为互联网结构的一部分,使用由令牌化治理系统控制的自治代码运行,可以取代当今的垄断性超大规模服务并重振互联网生态系统。


CanCan,互联网计算机上的一个开放的TikTok克隆,将视频流式传输到电话。


与以太坊相比,互联网计算机不仅工作原理完全不同,而且功能上也有许多不同。


例如,以太坊要求用户为每笔交易支付一定的ETH作为手续费,这是从调用智能合约代码产生的计算,互联网上的计算机罐(智能合同的一种形式)的预充电用“循环”(相当于gas)并自行支付计算费用。


这意味着用户无需付费即可与容器提供的服务进行交互,因此无需配置令牌钱包(例如MetaMask),并且托管代码甚至可以将网络空间中的网页和媒体对象直接从网络空间投放到网络浏览器中,即使最终用户是匿名的。


互联网计算机适合的地方


关于互联网计算机的一种思考方式是处于从传统的加密货币一直到高度优化的区块链计算机之间的连续体。


在此频谱上是比特币,它是通过区块链设计的纯加密货币,被设计为数字黄金,以太坊是一种高度可编程的加密货币,能够支持复杂的DeFi,直至可以运行主流企业系统和超大规模互联网服务的互联网计算机。


这三个都提供不同的东西,以太坊正在转向权益证明模型,该模型将允许拥有ETH的任何人运行网络节点,从而最大程度地提高匿名性和抵抗政府审查的能力。


互联网计算机运行具有智能合约通常享有的所有安全性保证的容器,但是其网络由独立数据中心运行的标准化硬件设备组成,这些数据中心不是匿名的,目的是最大程度地提高效率、速度和其它目的。


它还应用了新颖的高级计算机科学和加密技术,将区块链协议工程推向了一个新的领域。


将Dapps与互联网计算机集成


对于以太坊社区来说,令人兴奋的是,通过连接到互联网计算机,dapp可以利用其计算能力和所提供的独特功能。


例如,dapps可能会在以太坊上维护主结算逻辑,同时使用互联网计算机在不信任的分散式生态系统内横向扩展计算密集型处理,或者将网站直接提供给Web浏览器,从而无需受信任的、不安全的、潜在的不可靠专有服务,例如Amazon。


在查看一些示例之前,我们首先考虑如何将以太坊上的代码和互联网计算机上的代码集成在一起。


可能会让您感到惊讶的是,DFINITY基金会正在进行涉及高级加密的工作,这些工作将允许在互联网计算机上运行的容器代码安全地创建和签名以太坊和比特币交易。


这与我最近在Twitter上讨论的关于摆脱对区块链中心的需求有关的“链密钥”技术有关。


因此,将互联网计算机上的代码直接调用以太坊上的代码可以被认为是简单的,朝另一个方向前进比较棘手。


一种简单的解决方案是让受信任的“中继节点”代表以太坊计算机上的容器调用以太坊智能合约的操作,以响应它们。



例子


如何服务DeFi网站


尽管我们可以使用无信任、防篡改和不可阻止的智能合约在以太坊上构建出色的DeFi系统,但这些系统的用户通常必须使用不安全、可信的界面与我们的合约进行交互。


例如,我们可以使用以太坊智能合约建立一个预测市场,该合约可以处理以太坊和包裹式比特币。


该系统应该是完全不可阻挡、防篡改且公平的,并且应该透明,因为人们甚至可以将以太坊网络上的智能合约字节代码与GitHub上的原始Solidity源代码进行匹配,从而可以查看所涉及的处理逻辑。


问题在于,用户通常需要使用我们在可信任的集中式服务,例如Amazon Web Services(AWS)上创建的网站来与合同进行交互。


这可能以许多可怕的方式出错。


首先,AWS将其服务许可给个人或组织的法人实体,而不是自治代码。


这样的实体可以对DeFi系统承担法律责任,否则这些DeFi系统将分散且开放,AWS还可以简单地决定要停止提供服务并仅关闭网站。


此外,该网站正在可篡改的受信任平台上运行。该网站可能被恶意的Amazon员工、外部黑客黑客入侵,或者许可实体可能是恶意的。


用户不能保证他们正在浏览的网站没有被修改,这可能会导致灾难性的后果。


他们可能被认为签署了一笔不好的交易,他们正在查看的市场信息可能被编辑或为假,并且网页可能会延迟提交其订单,例如,以便某人可以抢先运行它们。


这些只是显而易见的问题,而检查诸如DNS之类的辅助系统的安全性甚至还更多。


为了避免这种混乱,我们可以通过在互联网上安装容器来为dapp创建安全的Web前端,而不必使用AWS服务网站。


这些可以基于所谓的“查询调用”来提供用户体验,这些查询不能提供“更新调用”(以太坊上标准事务执行的等效功能)所提供的相同级别的压倒性安全性,但是在执行过程中仍能以闪电般的速度执行提供了非常高的安全性,与其他方式相比,可提供更不信任和更安全的体验。


要为dapp创建互联网计算机前端,请执行以下操作:


  • 让以太坊智能合约将网站所需的数据副本转发到互联网计算机上的前端容器,让容器在其状态下缓存数据的最新副本。


  • 设计一个可以从前端容器直接安全地从网络空间服务到Web浏览器的网站,并从转发数据的最新副本中生成内容。


  • 设计用户如何创建以太坊交易,例如提交和订购,可以简单地在所服务的页面中嵌入一个类似于MetaMask的系统,以便可以从页面内部将交易直接发送到以太坊网络,或者先向容器报告订单并让其代码生成以太坊交易(请注意,这需要“链密钥”升级,因此从第一种方法开始)。


令人难以置信的LinkedUp OSI网站于2020年1月在达沃斯展示(青铜里程碑)。


如何存储和处理大型数据集


在以太坊网络上的智能合约中存储1GB数据将花费数百万美元,这使得维护除信托数据以外的任何东西的成本过高。


相比之下,在相当长的一段时间内将1GB数据存储在互联网计算机上的容器中的成本只需花费几美分,这为需要维护和处理大型数据集的以太坊dapp提供了令人难以置信的解决方案。


在互联网计算机上,访问和修改数据会消耗可预测的周期数,这些周期本身与传统货币挂钩,这使得dapp的存储管理非常简单且可预测。


对于开发人员而言,在互联网计算机上维护数据非常容易,它被称为“容器”而不是“智能合约”的原因是它们实际上是代码和状态的捆绑。


在容器中,存在WebAssembly字节代码形式的智能合约,这是技术人员通过使用编程语言编译的高级代码,例如Motoko(参见该最近由Andreas Rossberg撰写的文章,他是WebAssembly的共同创建者)或Rust,并声明状态,其中包括智能合约逻辑在其中运行的内存页面(对于感兴趣的人,充当软件“参与者”)。


互联网计算机上没有文件或数据库API,数据的持久性在“正交持久性”系统中自动发生。


这意味着开发人员可以像永远运行代码一样编写代码,并且高层代码中的变量、对象、集合和其他类型实例将永远不会被重置,因此足以维持其状态。


本质上,互联网计算机的体系结构使它能够代表智能合约代码来保存内存页面,以便程序员可以描述用于保存和处理数据的高级抽象,从而消除了编程中最复杂和令人头疼的问题之一,以及释放新的效率水平。


正交持久性意味着存储用户个人资料就像分配给地图对象一样简单,如下所示:


在标准HashMap对象中维护数据,互联网计算机的内存是持久的!


每个容器最多可维护4GB的内存页面。但是,如果这还不够的话,一个系统可以由任意数量的交互作用的容器组成,这样,它们可以维护的数据总量就没有上限。


而且,开发人员无需自己维护多个容器,因为他们可以简单地导入一个BigMap容器,该容器提供了水平可伸缩的地图功能,该功能允许将数十亿字节的对象数据驻留在主内存中,如下所示:


BigMap维护着一个容器网络,使您能够在内存中维护EB级数据!


使用我们之前讨论的相同种类的集成技术来扩展您的dapp,以便它们可以在这个不信任、防篡改、不可阻挡且分散的生态系统中处理大量状态!


专家提示对于好奇的区块链架构师:互联网计算机网络仅维护托管容器的当前状态,而不维护过去的块(超出了短期缓存)。


这是它最小化成本和最大化计算效率的方法之一,并且再次与前面提到的链密钥技术有关。


用户(或者更确切地说,是嵌入在dapp前端中的用户库,因为没有用户希望自己与低级区块链协议进行交互!)可以验证其与互联网计算机网络的交互以及执行的函数调用以及返回的数据,仅从单个32字节的链密钥开始。


因此,与网络维护的大数据集进行交互的成本大大降低。


开始使用


开始使用互联网计算机容器的一种好方法是使用DFINITY基金会开发的SDK:https://sdk.dfinity.org。


在撰写本文时,有针对Motoko程序员和Rust程序员(或在撰写本文时)的DFINITY SDK。


如果您有兴趣扩展对其它语言的支持,请联系DFINITY团队。


互联网计算机由最有才能的技术团队进行持续开发。


重大的“钠”里程碑事件,即将于2020年9月末开始,它将提供许多重要的更新和功能,请继续关注!



作者:Dominic Williams

翻译:Catherine



另一个互联网是可能的:针对平台垄断的Dfinity项目

说到TikTok,Dfinity诞生于所有大型数字企业

在“钠”上探索互联网计算机的代币经济学

前五个去中心化平台

宣布钨演示日,互联网计算机的开发人员展示



进Dfinity官方社群,请添加小助手微信:

comiocn




长按关注

Dfinity官方微信

给你第一手资讯和项目信息

更可随时答疑解惑



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存