宇宙链 宇宙链
Ctrl+D收藏宇宙链
首页 > Ethereum > 正文

从技术底层解读互联网计算机如何引领 Web3 时代?

作者:

时间:1900/1/1 0:00:00

随着通讯和可视化移动终端设备的逐渐普及,人们簇拥于web3或元宇宙的概念。而对于通往全新世界的道路要怎么走?却没有很明晰的答案。DFINITY在5年的探索经验中,摸索出了”互联网计算机“的道路,它会成为一个行之有效的解决方案吗?

我们邀请到?DFINITY核心技术工程师?PaulLiu?来从其技术底层为我们进行解读。PaulLiu是Dfinity的核心技术工程师,加入Dfinity之前,Paul在英特尔实验室的研究科学家岗位工作了7年。在英特尔实验室时期,他为X86架构构建了一个性能高度优化的Haskell编译器。Paul拥有耶鲁大学博士学位,师从Haskell编译器的发明者之一的PaulHudak博士。Paul是Haskell研讨会和IFL成员,发表过大量学术论文。

介绍

DFINITY是一个总部在瑞士的非盈利组织,所有的收入只能用于一个目的,就是参与研发和推动InternetComputer这个去中心化的开源网络项目。虽然这个项目是由DFINITY主导研发的,但自从上线那一天起,治理系统就已经启动了,而且网络的实际物理节点也是许多个第三方独立运营商自主运营。

整个项目归属于治理代币的持有人,也就是整个社区。DFINITY会作为主要的技术贡献者继续参与开发和推广整个平台,但我们只是贡献者之一。在上线短短三个多月的时间,已经有不少其它的社区团队参与进来。这个平台的发展离不开整个社区的贡献。进一步推动去中心化,是我们当下最主要的目标。

作为InternetComputer这个平台的创建者,DFINITY的愿景是blockchainsingularity,也就是说所有能在互联网上面跑的应用,都应该用区块链的技术构建。

为了做到这一点,我们在TCP/IP层面之上,应用层面之下,添加了一层基于区块链共识技术的协议,我们把它叫做InternetComputerProtocol(ICP)。这一套协议是通过在多个物理节点之间交换数据,构建一个虚拟的子网。

子网内部的节点对输入输出达成共识,相互验证计算结果,并可以和其它子网之间通讯。多个子网组合在一起共同构建出一个虚拟的计算机,容量可以随着子网的增加而增加,谁都可以在上面跑程序,访问其它人的程序,等等。

不过这听起来和我们现在的互联网好像也没什么差别,尤其是microservice的概念。那为什么现在的互联网不能叫做InternetComputer呢?

这个差别就在于这一套ICP的协议。这个协议的目的是确保所有程序都被正确执行,它们的状态无法被篡改,当一个程序调用另一个程序时,它是可以信任这个调用会被正确执行的。目前的互联网因为缺少这一层协议,导致所有的程序都要自行解决可用性、可靠性以及相互之间的授权等等繁琐的问题,并因此带来各种不兼容和安全性上的包袱。

这里面的核心就是可信任计算,有个说法叫trustlesstrust我觉得很贴切,无需信任的信任。区块链从比特币开始到今天的发展,也应证了可信任计算的威力。但绝大部分应用还是集中在金融领域,而我们的目的是拓展到更广阔的互联网领域上去。为什么区块链上不可以直接跑网站?为什么验证区块链上的计算需要整个链的历史数据?只有正面解决这些问题,才能让区块链成为互联网的核心技术,而不仅仅是停留在记录和转账的层面。

问题1

InternetComputer提供了全新的程序构建范式,有自己的一套“行话”,可否简单介绍这些“行话”以及你认为对于开发者来说,最有用的基础设施有哪些?

回答:可以从几个不同的角度来聊一下,首先从终端用户来看。

访问一个InternetComputer上的应用和访问一个普通网站基本上没有什么不同,使用者并不需要支付任何费用。这和使用传统云服务的时候,费用由项目方承担是同一个意思。其它大多数区块链都是要向使用者收取gas费用,需要预装钱包软件,门槛比较高。

Ripple总法律顾问:SEC会对不同数字资产的立场存在偏见:金色财经报道,Ripple总法律顾问Stuart Alderoty揭露了管理SEC员工的公正性规定,这可能暗示SEC会对不同数字资产的立场存在偏见。

Alderoty强调,联邦法5 CFR 2635.101(b)(14)所概述的,要求所有证券交易委员会的雇员公正行事并保持公正的形象。那么,法律提出的问题是,一个有理智的人在掌握了事实之后,是否会质疑雇员的公正性。这些评论是在Hinman邮件发布之后提出的,这是美国证券交易委员会前主任William Hinman与美国证券交易委员会工作人员之间的一系列交流。

这些邮件是Hinman在2018年6月发表的备受关注的演讲准备的,涉及不同数字资产的分类和监管问题。Hinman表示,BTC和ETH不是证券,这在加密货币界引起了人们的关注。一些人猜测,这些邮件可能揭示了美国证券交易委员会内部对BTC和ETH的偏爱。[2023/6/20 21:49:43]

运营一个应用的成本,包括计算和存储等,是以InternetComputer的原生代币cycles来衡量。cycles的价格锚定SDR,1SDR=1TrillionCycles。SDR的价格是国际货币基金组织设定的一篮子货币加权得来的,包括美元人民币等,相对稳定。

回到用户角度,他们不必在意cycles这个概念。但很多应用需要处理用户登录,为此InternetComputer上面也推出了一套匿名的身份管理系统,我们把它做InternetIdentity。这套系统完全是基于web标准,用户不需要安装钱包软件也能使用。

所有这些都是为了降低用户使用的门槛,让区块链的应用能够真正走出去。InternetIdentity主要是为了解决一个身份在多个设备登录的问题。而且这个身份在不同的应用中,应用所拿到的代号是不一样的,这可以防止用户的行为被恶意跟踪。

最后,用户可能也有兴趣参与InternetComputer的治理。这是一个叫做NNS的神经元投票系统,算是我们的一个创新吧。它也是应用层面的,不过它有一个比较特殊的权限,那就是能够管理所有InternetComputer的子网和整个系统的方方面面,包括节点运行的代码,版本升级,创建新子网,接入新节点等等。

要参与投票,首先需要持有ICP代币,锁定一定数量的ICP来得到一个神经元,投票的权重和锁仓数量,锁仓时长,以及神经元的年龄都相关。参与投票也会得到奖励,奖励的多少和投了赞成还是反对无关。还可以跟随其它神经元的决策,自动进行投票。总体这些设定上是为了让用户投票的行为和平台的长期利益挂钩,并奖励用户做出的贡献。

谈了用户角度,那我们再从开发者角度来看一下。

跑在InternetComputer上的应用程序,是封装在一个叫canister的轻量级容器里面。这个通常大家比较熟悉的docker容器的概念有点不太一样,canister不仅仅是封装了代码,而且自动对容器的状态做持久化。可以简单理解为一个长期运行的操作系统进程,进程的状态包括内存和消息队列,都是自动保存了,不会因为开机关机而丢失。这意味着在InternetComputer上面已经剥离文件系统的概念,开发者不需要考虑读写文件和硬盘来保存数据,这是一个相当大的简化。

另一个开发者需要了解的是canister之间的通信模式是异步的,属于actormodel。也就是每个canister都是自己的进程,和其它canister发消息来通信,也就是异步方法调用。一个canister内部消息队列的处理都是单线程,不需要考虑锁,每一个方法调用都是满足原子性的。熟悉actormodel编程的很容易上手。

开发一个应用,通常canister容器是作为后端的,前端交互可以是在浏览器里,也可以是单独的APP。之前也提到InternetComputer可以直接跑网站,这里就是说canister可以自行实现httprequest的接口,返回网页包括Javascript到用户的终端。前端后端可以一起打包成canister部署到InternetComputer上。

当前加密货币总市值24小时跌幅达1.2%:金色财经报道,据CoinGecko数据显示,当前加密货币总市值为1.2万亿美元,24小时跌幅达1.2%,24小时交易量为316.63亿美元,当前比特币市值占比为44.1%,以太坊市值占比为18.5%。[2023/4/24 14:22:32]

前端开发我们有现成的库可以使用,Javascript和Rust都有。前端需要调用后端代码的时候,直接做一个异步函数await调用就好了,底层都已由库函数实现。如果需要了解更多的话,这里面有一个接口和数据编码的格式,叫做Candid,支持多个语言的实现。Canister对外部的接口和数据类型,都是用Candid来描述的。

总的来看,开发者需要了解的都是围绕着Canister这个概念展开的。WebAssembly,Actormodel,OrthogonalPersistence,Motoko,Candid。我还推荐了解一下SystemAPI也就是InternetComputer接口的标准?https://sdk.dfinity.org/docs/interface-spec/

这个资料很详细,涉及了整个系统的方方面面,而且我们做了不少形式化的努力,定义了接口的语义,方便开发者深入理解系统的行为。

如果是做系统层面的开发,比如共识协议,虚拟机,等等,那可以谈的就更多了,可以去看DFINITY官网上技术图书馆的视频系列?https://dfinity.org/technicals

问题2

与传统的阿里云、腾讯云、AWS等平台相比,InternetComputer有什么不同?它们也是公司自建的私有云服务,也是用的数据中心,异地备援,多节点运行的。

回答:目前的云服务平台,都是基于一个基础的架设,你必须依赖这个平台的提供者能够维护平台的安全性,保持网络联通,计算不间断,数据不丢失,等等。

商业平台自身的利益和它所服务的用户之间的利益,虽然多数时候不冲突,但也不是完全一致的。有一个大家应该都比较熟悉的概念PlatformRisk,这里就不展开讲了。

但最重要的一点,这些云平台基础设施提供商,都不希望自己成为commodity,都在各尽所能留存和锁住客户。

InternetComputer首先是作为一个去中心的网络存在的。里面的节点都是由第三方运营,跑在不同的数据中心里。而真个网络的治理,是交给用户的,并不由节点运营商,或者是数据中心来主导。

所以这里面并没有一个中心化的商业机构来做所有的决策。整个治理系统的设计,也是尽量从长远的角度出发,希望保持用户的利益和平台发展的一致性。这个平台是付费给节点运营商的,某一个节点到底是由张三还是李四来运行根本不影响,这是一个自由市场。所以对于InternetComputer而言,硬件和网络这些基础设施,已经成为了commodity。

回顾整个PC行业的发展史,我们其实可以看到,基础设施成为commodity是历史的必然规律,在云服务这里我相信也不会是一个例外。

可以说InternetComputer这样的计算平台,已经和硬件的基础设施建设剥离开了。这种商业模式,如果没有去中心化,如果没有区块链的技术,是没法想象的。但今天它已可以成为一个现实,这是时代进步的最好诠释。

从比特币以太坊一路走来,有的人只是看到了币价炒作和旁氏局就对这个新兴事物持否定态度,其实时代的变革就在眼前。

除开利益方面的一致性,另一个方面用要更先进的技术来简化系统冗余,从而节省整个平台开销,也意味着为用户带来节省。

前面我们也说了不少可信任计算的优势,其实这里面还要加上一个分布式的优势,和一个使用前沿的加密技术的优势。它们意味着很多传统的技术维护方面的工作,比如防火墙这种,基本上已经不再必要。一个客户要想使用好目前这些云平台,它必须要在运维上投入很多。而InternetComputer则能够节省很多这方面的成本。

数据:以太坊巨鲸近期增持多达350万枚ETH:金色财经报道,Santiment的数据显示,自9月11日以来,持有超过100万枚ETH的以太坊鲸鱼地址总共增加了350万枚硬币。这一增加标志着自合并以来,亿万富翁鲸鱼的ETH持有量增加了14%。相比之下,根据Santiment此前的数据,ETH鲨鱼和鲸鱼(持有100到100万枚ETH的投资者群体)一直在抛售其持有的ETH。(u.today)[2022/10/20 16:31:12]

第三点则是tokenization,也就是应用的代币化。这可以说是整个互联网应用发展的下一个趋势,不可阻挡。传统的云服务商也最多是提供和区块链之间的桥接组件,一整套做下来它的架构不可避免还是相当臃肿的。InternetComputer既然能够直接跑网站,跑应用,作为原生区块链,做tokenization的整合是非常容易的。

问题3

InternetComputer上的每个智能合约都是“可扩展”的,具体说说协议的扩展在技术层面是如何运行的,目前有无扩展的案例?

回答:扩展性有好几个维度,一个是存储空间上的,一个是网络流量上的,还有一个是计算能力,单位时间能够处理多少事务。是否可扩展主要是看能否绕过已知的瓶颈。在一个公共平台上,我们还要考虑不同用户之间,不同应用之间,有限的资源如何分配的问题。

InternetComputer在设计上主要的思路是scaleout,也就是遇到瓶颈时通过增添资源,创建新的子网来解决。这个和主流的web应用的思路基本上是一致的,当一个应用无法通过一个canister来处理所有用户请求的时候,合理的做法是在应用层面上使用多个canister各自处理一部分的用户请求。也就是说在设计应用的时候,需要考虑到这一点,至少要留出一个迁移到新架构的可能性。目前我知道OpenChat的设计是走多个canister的,DSCVR也留有这样的余地,但目前还是集中在一个canister。

从系统层面,通过canister扩容,可以超越目前4G内存的门槛。计算方面,也是从并发的指导思想出发,没有选择以太坊那种全局原子性的设计。所以不同canister处理各自的消息,都是在自己的线程里面,只要硬件负载容许,是不影响其它canister的性能的。至于网络方面,基本上带宽决定了扩展的上限,任何一个区块链都无法避免这个物理瓶颈,只能通过分片,对应到InternetComputer这里就是不同的子网。

当然系统层面也有各种各样的优化方案可以带来性能的提升,我们一直也在做这方面的工作,希望能够充分发挥硬件的性能。

问题4

哪些类型的Dapp更适合搭载于其上?我们发现目前InternetComputer上的DeFi协议比较少,未来InternetComputer上Dapp的赛道都有哪些方向?

回答:DeFi主要还是需要流动性来推动,出于安全考虑,目前尚未开放canister转账ICP的功能,这同时也限制了流动性。不过这个限制是暂时的,目前来看整个网络自从上线后,稳定性还是不错的,在适当的时机相信会通过NNS投票来解除这个限制。我相信已经有不少开发者都做好了准备,DeFi应用的爆发只是时间问题。

我个人对目前InternetComputer上面的socialdapp还是很看好的。这个赛道一旦有了tokenization的加持,会非常迅速成长,绝对不会逊于DeFi和NFT游戏这类的。其它区块链上也有一些社交属性的dapp,但都受制于起步的门槛,毕竟正确使用钱包这一步,就已经难倒了很多用户了。在InternetComputer上面的dapp,使用Web标准的技术,任意浏览器均可访问。

另外一个我看好的方向是面向个人用户和面向中小企业的应用。像项目管理,文件共享,创作者经济这种,虽然目前互联网上已经都有比较成熟的解决方案了,但平台风险始终存在。前面也提到云服务的平台风险,相信大家对各种其它领域的巨头垄断都有一定的切身体会。现在去中心化的结构是一个新的可能,平台本身应该变成透明的存在,而不是盘踞在食物链的上游用霸王条款来吞噬用户的利益。

ETH交易所流出量创近1年新高:金色财经消息,据glassnode数据显示,当前ETH交易所流出量(7日均值)为27,630.684ETH,创近1年新高。[2022/6/20 4:39:34]

归根结底,哪个赛道有前途,取决它的应用能否快速汇集价值。这个价值,不是说你的项目锁仓有多少,因为这个量它随时都可以在变。而是说有你建立了多少和用户之间的联系,建立了多少和其它应用之间的联系,这种关联随着信任加深,随着用途增多,它会越来越有价值。代码可以粘贴,但这种关联是无法拷贝的。而如果运用得当,代币在一定程度上可以加速价值的聚集,但最终还是取决于项目本身的内在价值。

问题5

Canister作为Webassembly运行的容器,承载了Dapp链上运行的环境。最近关于Canister有哪些新进展?

回答:就在这周一,DFINITY发布了开发路线图,欢迎社区的参与。https://dfinity.org/roadmap。其中和canister相关的的有:

1、Stablememory扩容

2、CanisterECDSA签名

3、应用AMDSEV保护数据隐私

扩容目前主要是针对stablememory也就是不受代码升级影响的内存管理。之前是受到Wasm虚拟机4GB的限制,不过现在已经可以放开,上限受制于子网的内存总量,目前大约在300GB左右吧。

ECDSA阈值签名技术,简单讲就是让每个canister在不存储私钥的前提下,也能对数据做出签名,并且此签名可以通过公钥验证,每个canister都可以得到一个唯一的公钥。这个是和我们已经实现的ChainKey技术一脉相承的,它的应用也很广泛,比如canister可以直接发起一个比特币或者以太坊的交易并且签名。

这意味着原来必须在私密环境下才能把私钥交给程序做的事情,现在可以放到一个去中心化的环境里来做。还可以应用在颁发SSL证书,DNS定制域名等等方面。

使用AMDSEV的技术主要是为了在一定程度上保护Canister的数据隐私,这样就算是节点运营商也无法窥探用户数据。我们一直在做这方的准备,难度也比较大。好在目前节点所采用的硬件都已经支持SEV技术了,所以到时候希望是一个平稳的升级。

问题6

“开放互联服务”可以实现永久性API,可以让开发者放心地构建依赖于其他服务提供的数据或功能,并且不会存在撤销的风险。“开放互联服务”如何部署到互联网计算机上?

回答:提供永久API最简单的做法是通过把canister控制者设定为空集,来让它的代码成为不可修改的。

我个人也做了一个很简单的canister,叫做blackhole。它的主要目的是让其它canister可以把控制者设成blackhole,这样不仅代码成为不可修改的了,blackhole还提供额外的查询功能,比如查看账面cycles的余额,或者查看代码的哈希值。blackhole本身的控制者被设成它自己,它的代码也是公开,很容易验证哈希值的正确性。如果有需要让自己的canister被其它人信任,把它的控制者设置成blackhole是一个简洁的方法。

但如果还需要保持代码升级功能的话,这就需要引入社区治理功能了。我们正在开发中的ServiceNeuronSystem可以让应用通过锁定代币创建神经元,然后进行投票,来管理应用的方方面面,包括代码升级。

当然我们做的这套SNS系统还在开发中,尚无实例。而且它只是候选方案之一,社区现在已经项目有在这方面做其它的尝试,相信都会逐渐成熟起来。

问题7

安全性是计算机的重要议题,InternetComputer运用哪些机制来替代类似防火墙等功能?在防篡改上,DFINITY与其他区块链底层相比有哪些特点?

加密资管公司Wave Financial启动稳定币基金:5月10日消息,据彭博社报道,加密货币资产管理公司Wave Financial启动稳定币基金Wave Stable Asset Yield Fund,该基金将持有USDC稳定币,可能会产生8%至12%的APY。[2022/5/10 3:04:40]

回答:防火墙的一个主要功能是防止黑客入侵系统,取得内网权限,从而达到盗取或者篡改数据的目的。首先,这个内网外网权限的划分,就很有问题。它相当脆弱,因为一旦被攻破,内网所有默认的权限都被暴露在攻击者面前了。所以我们看到不少公司已经抛弃了这种做法,改成给每个服务设置权限,使用统一身份管理的技术来对用户授权。

与之对应的则是InternetComputer上面的身份管理。一个公钥对应一个用户的身份,然后每个canister都能够获得调用者的身份。这个身份是无法被第三方篡改的,无论是用户调用canister还是canister之间的调用。之所以能够做到这一点,是因为这种调用必须通过共识协议,尤其是跨子网的调用,在发起方和回应方都要通过共识协议,经过验证才会被认可与执行。

而要快速高效地认证任意子网签名的有效性,就必须用到我们研发的chainkey的技术。它能够在保证阈值签名公钥不变的同时,支持动态的节点连入和移出。这一点其它区块链目前都无法做到,所以在验证交易这方面InternetComputer目前是领先的,它的子网之间基本上不需要同步数据。

想在InternetComputer上面篡改数据,仅仅攻破一个节点的权限是不够的。必须要能够控制一个子网的2/3以上的节点数才能做到。所以子网的安全性在一定程度上取决于节点数量。而且通过节点的不定期轮换,也能进一步加强这方面的安全性。就算是一个子网被攻破,它也无法假冒其它子网的身份,所以损失的范围也是可控的。

保障数据真实可靠不被篡改是一方面,对数据隐私的保障则是另一方面。大多数区块链都是公开数据,所以也谈不上什么隐私保护。真正的隐私保护可以通过应用层面来实现,用同态加密这样的技术,但目前效率不够。所以我们目前的计划是应用AMDSEV技术,在硬件层面加密。但整个InternetComputer的安全性并不依赖于硬件,有SEV的保障是一个加分项。

问题8

DFINITY的名号其实早在6年前就已经打响了,虽然主网上线的过程比较慢,但我们可以看到DFINITY团队是真的想做一些颠覆性的东西,共识也是十分强大的。从“以太坊的姐妹链”到“世界级互联网计算机“的转变受到了哪些因素的影响?

回答:WorldComputer的口号是以太坊最先提出来的,也激励了很多人,虽然现在它更多的是在数DeFi和数字资产方向发力。“世界级互联网计算机”方向也一直是DFINITY努力的目标,并不是融资以后才更改的路线。

起初由于团队条件的限制,只是在BLS和共识协议方面有明确的创新,所以开始第一步是打算先从这方面入手,推出一个链再逐步迭代。但后来我们意识到,不解决跨子网通信的问题,那我们将永远停留在“又一个区块链”的窠臼中,难以创新。也正是因为团队的坚持,才有了在chainkey方面的突破,解决了跨子网验证的难题,实现了scalability的承诺。

回头来看,其实我们只要不断地问自己一个问题:为什么去中心化的区块链不可以跑网站?

首先要解决一个效率问题,就是访问网站是需要毫秒级的响应的,怎么能做到?我们的答案是把只读的查询和状态的修改分开,那么99%的网络流量都是只读的,是可以做到毫秒级响应的。修改状态我们也通过共识协议方面的创新做到两到三秒之内的响应。

效率达到了,那如何验证内容的正确性?如何让普通的浏览器也能做到?那就必须精简验证的所需要的条件。能不能抛弃历史区块,仅仅通过一个公钥?用BLS公钥的话,怎么解决节点动态变化的问题?怎么解决中心化域名和SSL证书的问题?访问流量增多的话,如何扩容?扩容的瓶颈和边界在哪里?扩容的需求和同步合约调用的方式冲突了怎么办?

只要你不停地追问下去,不停地寻找答案,相信一个切实可行的方案会逐步浮现出来。这也是DFINITY过去几年坚持在做的事情。

问题9

以太坊刚完成EIP-1559升级,迈出了通缩的第一步,代币价格也逐渐走高。你认为对于去中心化基础设施来说,代币的表现给支持者激励更大还是技术上的颠覆性更重要?怎么做到两者的相对平衡?

回答:我是这样看的,代币的短期表现取决于市场参与者的信心与预期,长期表现还是要回归平台的价值本身。以太坊的技术可以说是经历了时间的检验,尽管有各种不足之处,还是得到了加密货币整个市场的认可。至于通缩还是通胀,各有弊端,我是不太能够认同BTCmaximalist那套说辞的。DeFi在流动性和激励方面的创新也是非常精彩,不过放长来看,多数项目其实并没有增加价值,更多的是一场数字的游戏。短期通过代币价格的提升得到的用户,也可能因为价格回落,或者另一个项目的崛起而流失用户。

技术的创新,也很容易被竞争对手拷贝过去。不过我们从整体来看,这些创新是一直推动整个行业向前的。落到单个项目上,到底能否因为纯粹技术创新而获益,还真不好说。业内都在说生态建设,生态项目在一个平台上到底能有多少保障,尤其是初创平台,怎么能说服开发者来投入,不是一件容易的事情。

我觉得最值得努力的方向就是把尽力圈子扩大,从支付转账,到DeFi,到NFT和游戏,就是一个不断开疆扩土的进程。在这个大趋势下,尽力把区块链技术拓展到更广泛的领域中去,比如让原生网站跑在区块链上这种目标。用技术的创新和代币的激励,一起来获取新的用户,才能繁荣生态,提升价值。

问题10

很多人认为InternetComputer是web3应用的主要阵地。每条公链或多或少都有自己对于web3的见解和技术实现路径,如波卡、以太。DFINITY对于通往web3之路的见解和未来规划/Roadmap是怎样的?

回答:DFINITY的宗旨是抛开一切不必要的包袱,向BlockchainSingularity的目的地进发。InternetComputer这个项目还有许多未能完善的地方,离完全实现这个目标还有一定的距离,我们希望更多的人能加入进来,一起推进平台本身的技术进步和构建更丰富多彩的上层项目,来赢得客户。

每个的公链侧重点不太一样,我们相信一切能用区块链构建的,最终一定会用区块链实现。所以也并不排斥结合其它公链的技术,比如我们周一发布的路线图中,有和以太坊、比特币的深度整合项目,对双方而言都是一个完美的互补。这会进一步激发资产跨链的流动与融合,简化应用架构,抛弃云服务这种中心化的包袱,从而提升应用整体的安全性和强壮性。

跑网站是重要的一步,但它只是InternetComputer的第一步。我相信当下InternetComputer所打下的基础,一定会在未来成为BlockchainSingularity这个宏伟拼图的一部分。

问题11

请问下CanisterSignature是什么?Canister用于签名的私钥存放在哪里?Canister里是否支持类似以太坊智能合约的Event机制,可以通过订阅来获取某个updatecall是否是caller根据返回值获取?最后,普通Canister什么时候可以处理ICP代币?

回答:CanisterSignature是指用子网的公钥给canister的计算结果做签名。目前我们使用的是BLS阈值签名,它有一个很好的特性就是公钥和签名的唯一性,是其它聚合签名的技术不具备的。

阈值签名,简单讲就是各个不同的节点,它们有各自的私钥对计算结果签名,一旦集齐了达到限定数量的签名,则可以得出一个唯一的阈值签名,用一个公钥即可验证,所以这个公钥被当作是子网的公钥。这里是没有一个相对应的子网私钥的,节点的私钥是各存各的,都不一样。

一个子网上可以跑很多canister,用merkletree的方法,很容易得到指向其中一个canister计算结果的路径,所以可以把子网的签名加上这个路径看作是Canister对某条数据的签名。

Canistersignature一定程度上相当于eventlog或者收据。因为我们不要求节点保留所有的历史区块,单独为了eventlog做这些也没有很大意义。毕竟通过querycall和certifiedvar也能实现这样的功能,并且更强大。

Canister处理ICP代币在技术上早就不是问题,是因为安全的考量才没有放开权限。随着系统的稳定我们的信心也增强不少,所以如果没有意外,估计近期就会通过社区投票来决定。

社区提问

提问:我发现icp的开发者比较喜欢开发社交应用,请问icp为什么适用于开发社交应用或者开发者为什么喜欢在icp开发社交应用?

回答:我的理解,价值的聚集,首先是来自人的聚集。所以一旦一个区块链平台可以直接把人聚集起来,一定会有这样社交类的项目诞生。但现在的Web环境下想要做出一个社交类的爆款相当不易,所以这些项目一定会去尝试不同的玩法。tokenization代币化还没有固定的套路,我也很期待看到这里面的创新。

提问:开发中有个担心,举个例子A容器调用B容器,B容器调用C容器,如果在C容器更新了状态,正常返回值给B容器之后,B容器挂了,此次A容器也会失败但是,C容器的状态已经变更了,有没有推荐的方案解决类似的原子性问题?

回答:以太坊的原子性设计是一旦调用栈上的一个合约发生状态回滚,所有的合约都必须状态回滚。这意味着有一个全局锁,在处理一条用户事务会锁住所有相关的合约,直到它全部处理完成,在此期间被锁住的合约不能处理任何其它事务。这样的设计虽然开发者编程方便,但是先天缺陷是性能无法扩展。所以我们在最初设计canister的模型时就摒弃了这种做法。

如果需要这方面的组合性,传统数据库已经有很成熟的解决方案了,比如两步提交(two-phasecommit)。这在完全可以在应用层面商议一个标准经由canister接口实现,不一定需要在系统层面支持。

系统设计上总是要做一定的取舍,有时候添加限制比较好,有时候提供选择比较好。我们的看法是单个方法调用符合原子性是一个比较合适的粒度,没有必要强制整个调用栈一起做原子化。

提问:我是个币圈小白,觉得Dfinity生态上的钱包太难用,后期会改变吗?

回答:首先现在的钱包,所谓的互联网身份II不是必须的,它是一个可选项。我自己做的App就没有用它。其次,我的理解是现在各个设备使用浏览器的支持比较好,但是手机上App的支持有一定难度,这需要进一步的研发工作。在中国使用安卓手机的用户,如果上面不能安装GooglePlay服务的话,会导致无法使用WebAuthn,这也需要一个合适的解决方案,我们正在调研。

提问:我是一名正在互联网计算机上构建应用的开发者。我想问后端何时可以进行外部http/https调用?此外,由于每个容器4GB的限制,我必须实现我的分布式存储系统,那么BigMap什么时候发布或有其他更好的可扩展文件存储方式吗?

回答:对外部进行http/https调用可以分开看,一个是读,一个是写。前者需要预言机,后者如果对方满足ren-entrancy则完全是可行的。

提问:以太坊上的DAPP可以直接转到IC上用吗?

回答:solidity可以编译到Wasm了,但编程模式不太一样,而且需要支持的系统接口也不一样,所以还需要做一定的工作才能支持。

提问:问一个共识的问题,子网中共识属于PoS吗?子网节点共识中作恶的话,是否有惩罚机制呢?

回答:是PoS,目前没有要求节点质押代币。因为是准入机制,节点不可以匿名,所以相关的惩罚机制比较容易实现。节点需要定期领代币作为工资,目前的惩罚机制是从中扣除。

提问:stoic钱包助记词不能导入plug钱包,问了一下stoic开发者,说是加密算法选择的不同。同时我看官方的钱包助记词更不一样,这个后续会有统一的标准吗?能够实现像以太坊那样的一个助记词多个钱包导入吗?

回答:的确会造成一个不通用的问题,所以短期内只能提醒用户标注一下哪个助记词是哪家的。长期来看,希望社区能够协商达成一个通用标准。

如果你对于Dfinity生态感兴趣,请关注星际视界公众号并回复“ICP”,进入Dfinity生态探索交流群。

——End——

标签:TERSTECANISTInternational Squid GamesSTEPI币CoinScanWistaverse

Ethereum热门资讯
Footprint 8月月报 DeFi市场多点开花,9月是否会迎来下一个爆发点

撰文:Vincy@FootprintAnalytics日期:2021/09/09随着7月月报July2021Report数据分析,7月的市场逐步恢复,8月的DeFi市场在产品、资金和用户规模上有了质的飞跃,DeFi市场新玩家的涌现.

1900/1/1 0:00:00
XT关于支持LIL-TRC10通道提币的公告

尊敬的XT用户: 为了更好地服务用户,XT现已开通LIL-TRC10的提现通道。感谢您对XT.COM的支持与信任!XT.COM团队2021年9月29日LINE子公司LINE NEXT在旗下NFT平台DOSI上推出支持以太坊的C2C服务.

1900/1/1 0:00:00
BitMart关于支持AquaGoat (AQUAGOAT)迁移和兑换的公告

亲爱的BitMart用户:BitMart将会支持AQUAGOAT代币迁移,并为用户提供置换服务,平台内的用户无需进行任何操作即可完成兑换。对应兑换比例为100:1.

1900/1/1 0:00:00
【下架公告】关于下架APN/USDT、ECELL/USDT、CC/USDT、MAQ/USDT、LCS/USDT、BSS/USDT、XBT/USDT、FORT/USDT、TWT/USDT、MDL/USD

亲爱的币牛BiBull用户:由于市场行情变化,经过评估,平台决定下架APN/USDT、ECELL/USDT、CC/USDT、MAQ/USDT、LCS/USDT、BSS/USDT、XBT/USDT、FORT/USDT、TWT/USDT、.

1900/1/1 0:00:00
DeFi 巨鲸 0xb1 地址背后团队将推出新 DeFi 应用 Fodl Finance

链闻消息,DeFi巨鲸0xb1地址背后团队「0xb1.484|四八四」宣布将在接下来几周推出一个新的DeFi应用FodlFinance.

1900/1/1 0:00:00
Gate.io 即将首发上线handle.fi(FOREX)交易的公告

Gate.io将于2021年9月27日12:00上线handle.fi(FOREX)交易。handle.fi是一个去中心化的多币种稳定币协议,允许用户创建和交换多币种稳定币;称为fxToken.

1900/1/1 0:00:00