查看原文
其他

继以太坊带来的金融革新后,DFINITY和IC能够给我们带来一波新的叙事吗

D Plus D Plus Community 2022-06-09

文章来自于|D Plus

投稿、转载请联系|D Plus小助手

自18年以太坊带来去中心化金融应用的一波革新后,仿佛后面所有的叙事我们都只沉浸在金融价值这条路上越走越远,但姗姗来迟的DFINITY和互联网计算机(简称IC)却不能想象在之后的时间内Web3只有去中心化金融这一条道路,在去年的5月10日主网正式上线的IC带着“区块链计算机”的愿景,开启了互联网的革新之路。


 


互联网计算机的简单介绍


本文将从以太坊的角度出发,解读IC与ETH的差异化功能,在开始前,先从一些在IC的基本术语开始,可能会更利于大家容易理解:


  • ETH-智能合约<>ICP-Canister

  • ETH-Gas<>ICP-Cycle

  • ETH-分片链<>ICP-子网

  • ETH-节点<>ICP-副本


IC整个网络是由多个独立子网区块链组成,不同的Canister可以跨子网的无缝的通信交互,达到协作的互操作性,而子网由一个特殊的DAO治理系统NNS管理,任何持有ICP Token的人都能够通过质押的形式在NNS中获得参与网络治理、提出战略发展方向的治理权和发言权。


ICP Token的另外一个需求是可以通过销毁的方式转换成Canister执行操作消耗的“Gas Fee“,在Canister中以WebAssembly(WASM)作为可执行文件,这意味着像Rust、C++等可编译为WebAssembly格式的编程语言都可以用来编写Canister。


此外,DFINITY基金会还研发了一种更容易上手,也更契合IC开发的编程语言Motoko。



ETH和ICP的差异化区别


限于文章篇幅,我们将从下5个方面探讨ETH与IC的一些显著差异,如果你想了解更多关于IC的原理,可通过文章篇末尾找到更加全面的资料链接。



01

用户体验




0 Gas费的区块链:在ETH上,所有涉及链上交互的操作(合约函数调用),都需要支付一定的Gas,而交互的成本受ETH在二级市场的价格影响,此外在网络拥堵的情况下,交互的成本也会相应的增加。


而在IC上实施了一种“反向Gas”模型,顾名思义与传统区块链Gas模型机制相反,作为用户的我们在与链上交互时无需支付任何Gas费/Cycle,而是,由开发商提前在智能合约/Canister中预付交互Gas,有点类同于传统互联网的机制,由开发商承担应用平台的运维维护和托管成本。



安全且无缝的交互:通常我们与一个ETH Dapp交互时,我们一般会经过两个中介,第一是访问由中心化基础设施托管的Dapp前端,而Dapp前端接入由中心化服务商(例如Infura)提供的API来完成与区块链的交互。


当我们在与IC Dapp交互时无需经过任何中介,部署在IC上的Dapp完全托管在链上,交互的整个过程是无缝的,不存在任何摩擦点。



02

开发者体验




合约的可选性升级:以太坊的智能合约一经部署,便不可逆,如果合约中存在BUG,基本上就无力回天了,虽然可以通过创建一个新合约迁移状态或像引入OpenZeppelin此类代理合约来提前保障合约的可升级性提供解决方案,但这极大的可能会产生和用户之间的信任危机。


IC的合约默认是可升级的,每一个合约都有一个关联的控制器列表,控制器拥有升级合约的权限,这么设计好处在于当Dapp出现了BUG时可以得到及时的处理,以及在不用重新部署Dapp情况下,添加新功能完成迭代升级。


对于资产Canister来说,也可以通过一系列的方法来保障不可升级,比如将控制器移除、把控制器变为Canister自身、把Canister设置为黑洞Canister和集成未来即将上线SNS系统。



异步合约调用:以太坊虚拟机(EVM)是基于同步模型实现,所有事务是原子的,简单来说如果我们发送一笔交易,这笔交易要么完全执行,要么失败,但不管成功或失败都会消耗Gas费。由于ETH是基于同步模型的原因,因此整个以太坊网络只作为一个单一的进程,这在很大程度上限制了以太坊的可拓展性。


同步调用举例:我大学有个室友袁大炮,我们都叫他炮哥。大学开始时炮哥很单纯,和女生告白,在同一时间内只和一个女孩表白,等人家姑娘拒绝他后才向另外一个女生表白,这就是我们所谓的同步,等上一个表白结束了才会开始追求另外一个女生。


IC合约之间的调用基于异步模型实现,在同一时间内IC可以执行多个线程并发,提高效率。


异步调用举例:后来过来一段时间炮哥变风流了,他开始同时和多个女生表白,给一个姑娘表白不等姑娘回复就给另外一个姑娘表白,这就是我们所谓的异步。



Gas用尽合约将删除:以太坊合约和IC合约两个最本质区别在于👇


1、以太坊合约只有在涉及合约调用的时候才会消耗Gas,而IC合约即使在不调用合约的情况下也会消耗Cycles,因为IC是根据实际资源(带宽、CPU等)来消耗Cycle的。


2、以太坊的合约一经部署后,就是是永久性的,而IC的合约如果在合约内预付的Gas/Cycles消耗完毕,经过30天的空窗期后,如果还没有Cycle充值,则该合约会被自动删除,保障网络中的有限资源不会滥用。


IC也提供两方法节约合约消耗的Cycles:一是通过inspect_message功能限制合约调用消息;二是冻结合约,使其拒绝所有调用,将Cycle的消耗降至最低。



相对稳定的Gas成本:正如我们前面说到的传统区块链的交互成本通常会受Gas通证在二级市场的价格和网络拥堵情况影响,而DFINITY设计了一套价值锚定机制,让Cycle的价值锚定特别提款权SDR(ISO代码XDR),间接锚定一篮子货币来保障开发者所预付的Gas成本保持相对稳定。

锚定公式:1 SDR = 1 Trillion Cycle(1万亿) = 10 的12次方 Cycle


使Cycle的价值保持相对稳定的另外一个关键角色是NNS,NNS会每10 分钟一次根据交易所ICP的价格,自动发起调节ICP与SDR的转换率,来保持兑换1T Cycle所需的成本相对稳定在1.34美元左右(当前)



03

可扩展性和成本




任何设备都能够验证状态的48字节公钥:在以太坊上如果我们需要验证一笔交易的正确性,我们需要通过一个存档节点(硬件设施)去下载超过700 GB甚至上千GB的历史交易数据才能验证,因此,括小狸钱包在内的大多数去中心化应用程序都依赖中心化服务商(Infura)提供的API来访问以太坊的状态。


而在IC上,不需要去下载巨量的历史数据,只需要通过链密钥/Chain Key技术签名分配给子网的48字节公钥就能验证,甚至是包括智能手机,手表等在内任何设备都能够做到。



水平扩展:如上所述,IC是一个多子网架构,不同子网上托管的合约可以透明的交互协作,随着IC性能需求的增加,可以向NNS发起提案引入新的节点组成新的子网,以增加网络整体计算能力和数据存储容量。



超高性价比:ETH链上数据存储的高昂成本让对于拥有存储大量数据业务需求的应用望而却步,早在去年以太坊存储1GB数据的成本就高达了2.01亿美元,而IC存储1GB一年的成本仅需5美元不到,使得去中心化应用的业务需求不再受限于Gas成本,让Dapp不再只有DeFi,而是拥有更加广阔舞台的Social、Video等泛行业平台。



无需跟踪旧区块:加入过ETH挖矿的小伙伴,应该知道节点加入ETH网络需要先从创世区块开始下载区块信息同步和验证链的状态。


加入IC网络的新节点可通过技术Chain Key使用NIDKG协议进行密钥重新共享快速的同步状态并加入验证者集/副本集,无需下载庞大的历史数据。



04

隐私




外部账户不是全局状态的一部分:在以太坊的网络状态里,由外部账户(用户地址)和内部账户(智能合约)组成,每个账户都由一个关联的ETH Token余额,这些账户的余额和交互记录都是公开透明的。


IC上的每个合约都会有一个Principal身份,该合约Principal与其Cycles钱包关联,默认情况是不公开的,除此之外用户可以经过身份验证的方式与IC的合约进行交互,并且无需在公共状态下暴露其身份Principal来保障隐私性。



全局状态只有部分公开:以太坊上的状态一切都是公开的,每个人都可以运行一个完整的节点加入网络,因此隐私只能通过将数据保持在链外或使用密码学来实现,而在IC上,节点由NNS授权加入,只有部分状态是公开的,除了合约开发者为合约本身定义的API外,只有以下数据是公开的。


  • 合约所托管的子网

  • 合约名称

  • 合约的WASM模块哈希

  • 合约控制器


特别是,合约里包含的字节码和Cycles余额都不是公开的,但可以通过哈希对比方式来验证合约里的源码是否可信。



05

差异化能力




合约自动触发:在以太坊的网络上,每个合约的状态变化都必须要依靠外部账户触发,例如是一笔交易转账。


而在IC上合约不仅可以通过外部账户触发,还能通过一个heartbeat消息来实现自动触发,这开辟了无限的应用场景,例如实现定时转账或在社交平台内实现定时发送聊天消息等场景。



合约可以访问加密随机性:IC的独特共识算法可以作为密码随机性的来源,这种随机性可供合约使用,用于一些特殊的应用场景,例如可以是彩票或游戏盲盒抽奖等。



合约可以持有私钥签名交易消息(即将推出):以太坊上的合约状态是公开的,所以合约不能保存私钥签署消息,而IC的共识机制采用BLS签名的机制,即为多个验证者节点协作创建BLS签名,对提议者节点提出的区块进行投票。在IC即将推出的功能中,IC的合约将提供类似的机制生成阈值ECDSA签名,使IC上的合约能够签署以太坊或比特币交易,或者创建JWT、可验证凭证或x.509证书。



合约可以调用Web服务(即将推出):目前包括ETH在内的大部分L1区块链与链下价值数据交互的解方案是引入一个称为预言机的外部组件(基于HTTP的服务)。虽然预言机起到了使链上与链下数据的交互关键作用,但也拥有一些痛点,一是作为第三方数据代理商存在外部信任风险;二是预言机作为第三方需要支付一定的费用,增加了开发成本;三是预言机的编程模型增加了复杂性和间接性。


而DFINITY构建了一个异步的系统API供于Canister可以向外输出HTTP请求,使IC可以无缝的与Web2集成。



06

更多资料




  • ICP白皮书:【中文版】互联网计算机最新白皮书

  • ICP的工作原理的系列视频:

    https://dfinity.org/howitworks/

  • 官方开发者文档:

    https://smartcontracts.org/

  • 互联网计算机接口描述:

    https://internetcomputer.org/docs/current/references/ic-interface-spec/

  • 开发者论坛和Discord:

    https://forum.dfinity.org/

    https://discord.com/invite/cA7y6ezyE2



07

总结




在笔者的理解里,如果说像ETH等EVM公链带来的是部分数据主权的交还,那我会觉得说IC带来的则是所有数据主权的交还,当前区块链最大的一个限制是无法做到Dapp的全部上链,仅能做到关键数据上链(Token、道具等)。


一但涉及DeFi范畴之外的Metavers、Social等泛行业平台,无一例外,这些应用的主体都需要依赖中心化设施实现,这意味着由我们行为产生的应用数据也是存储在中心化设施上。


换个角度理解就是我们在使用这些“Dapp”的时候,我们就必须相信链上数据对应的Dapp数据是一定可信的。


而IC能够给我们带来的则是一个更加友好的Web3全栈平台,任何人都可以随时基于这个平台构建任何体量和完全上链的去中心化应用,而无需依赖任何去中心化设施;最大程度结合去中心化特性保护用户和开发商的利益;让我们在Web2所接触到的主流应用也能够在Web3里面以一种全新的姿态落地实现,使得Web3更加容易的触达到身边的人。



每周必看



AMA预告



联系我们

 电报 

       t.me/DFINITY_ZH

 英文推特 

       twitter.com/D_PlusCommunity

 中文推特 

       twitter.com/D_PlusCN

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

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