撰文:Yolo
来历:大脑杆菌

咱们都知道常见的 DeFi 使用一般都选用三层架构,前端-中间件-后端(智能合约),而这个三层架构傍边只要后端是布置在区块链上,一经布置不行更改。而前端和中间件都是布置在中心化的服务器上,这也意味着前端和中间件这些衍生的结构容易受到进犯和作恶。

简介:常见 DeFi 的架构

DeFi 如何应对前端托管风险?了解 ICP 与 IPFS 托管方案

当咱们使用 DeFi 使用的时分,各个环节是怎样协作的呢?图上所示的是一个正常网络环境下的调用。当咱们输入https://bicoin8.com/wp-content/uploads/2023/04/202304211cHpE0.jpgwebsite}的时分,用户的游览器会拜访 DNS 服务器,去查询https://bicoin8.com/wp-content/uploads/2023/04/202304211cHpE0.jpgwebsite}对应的 IP。查到这个 IP 之后,对面 DNS 服务器会回来 IP 地址,游览器会再次依据 IP 地址去寻觅 web 服务器。一般来说,咱们的网址所需求的图片,文字,交互等内容会放在 web 服务器上(可能是真的物理服务器,也可能是云)游览器读到这些信息之后就会回来呈现给用户。之后用户的点击,都会经由游览器,Web 服务器,去和链上的智能合约进行交互。经过用户的签名之后,行为会经由共识机制和链上播送,变成可信的状态。

那么这个进程之中,项目和用户别离存在什么危险呢?

  • 保管渠道的干涉。早年使用布置在单个服务器上,单一服务器的物理状态成为危险之一。随着技能老练,云逐渐呈现,经过将计算分布在大量分布式计算机上,避免了单一服务器的物理危险。可是现在这种技能的依然存在危险,这种危险便是云渠道作恶的危险,前端的数据信息暴露在 big-tech 的视野之下,无从逃避。

  • 偷换前端。现在来看,大多数项目都会开源前端代码让用户独立检查,用户下载前端代码在本地运转之后,便可自行与保管在区块链上的智能合约进行交互。经过这一流程,用户能够评价前端的危险。可是由于实际前端依然保管在中心化的服务器上,用户很难验证揭露前端是否便是现在正在运转中的前端,前端依然存在偷梁换柱的可能。举例来讲,正常前端连接到官方的智能合约,而歹意前端就可能连接到歹意合约,经过用户授权对用户形成伤害。

为了应对上述两类危险,市场上看到了一些实践,主要是 Uniswap 的 IPFS 计划和 Liquity 的 ICP 计划。

计划一:Uniswap 的 IPFS 的计划

DeFi 如何应对前端托管风险?了解 ICP 与 IPFS 托管方案

Uniswap 直接将前端布置上 IPFS,他们具体是怎样做的呢?

  • 前端文件存放于 Github,经过 Github Action 向 IPFS 布置,每天至少一次。

  • 经过 pinata.cloud 用户的游览器能够获取前端的页面。

DeFi 如何应对前端托管风险?了解 ICP 与 IPFS 托管方案

从用户视角来说来说,当他们在登录 Uniswap 的时分,互联网到底发生了什么呢?用户登录 app.uniswap.org,游览器查看 DNS 记载找到了前往 cloudflare-ipfs.com 的 CNAME,再经过 Cloudflare’s IPFS gateway 的云网关,查询 DNSLink record,找到存放在 IPFS 上的 hash 码,终究经过 hash 码获取前端的文件。

计划二:Liquity 的 ICP 计划

Liquity 是以太坊上的抵押型算法安稳币,该 DApp 拥有一个非常风趣的特性:开放式前端。开放式前端,指的是不同的前端运营商能够独立运转前端,并且设置自己的 kickrate (kickrate 会调节用户所得到的相关收入和奖赏,如果 kickrate=99%,意味客户拿到 99%,前端拿到 1%)

在结构上,Liquity 分为前端界面和后端智能合约,在商业上,Liquity 也将由前端运营商和后端智能合约开发商,分隔运作。Waterslide 是 Liquity 的前端运营商之一,也是第一个布置在 Dfinity 上的 DeFi 前端,下面介绍的实践主要来自于 Waterslide。

DeFi 如何应对前端托管风险?了解 ICP 与 IPFS 托管方案

ICP 计划傍边前端使用的主体身份是依据域名来的。也便是说域名和 Canister 的内容是永远联络在一起的,这一点适合传统互联网天壤之别的。当项目组发明了自己 Canister,并将前端页面所需求的的文件保管在 canister 中,caniser 就会被分配特定的域名,用户会直接经过 DNS 拜访特定域名 https://https://bicoin8.com/wp-content/uploads/2023/04/202304211cHpE0.jpgwebsite}.ic0.app (什么是 Canister?能够理解为分布式 Docker,具体细节能够参考)也因而用户和前端页面经过 Dfinity 紧紧地联络在了一起。那么具体 Canister 具体是怎样运转前端的呢?

运转 canister

DeFi 如何应对前端托管风险?了解 ICP 与 IPFS 托管方案

运转 canister 的时分,体系会显示两个 Controller 和 Module hash,前者是办理容器关于运转容器办理的 ID,这个码一般状况是不行更改的,除非向办理结点提出提案;后者,是每一次 Wasm 布置完后的证明。

提交 Commit 更改

运转 Canister 以后,咱们会需求升级,但这种升级是需求 NNS 来进行批阅的。(NNS 能够简单理解为子网的创立者,他将办理整个网络的业务。具体参考 《完好解析 | 网络神经体系(NNS)是怎样运转的》)咱们会将所需更新的文件同步到 github,并将 Canister 更新的请求提交到 NNS 傍边,请求文件傍边包括几个要素:Commit ID,Controller,Module hash,Repo 的位置。

DeFi 如何应对前端托管风险?了解 ICP 与 IPFS 托管方案

bd51eab 便是咱们 Commit 的代码,NNS 的办理 Canister 会依据咱们的 proposal 对 Canister 进行升级。

DeFi 如何应对前端托管风险?了解 ICP 与 IPFS 托管方案

当咱们再一次同步 canister 的时分,会发现 tag: mainnet-20210527T2203Z,这与咱们提交的 Proposal 号相一致,也就证明 NNS 已经对咱们的 proposal 已经进行了升级。

用户是怎样连接到前端的?

Waterslide 网站前端保管在 Canister 之中,用户输入网址以后,经过 DNS 服务器会连接到 https://https://bicoin8.com/wp-content/uploads/2023/04/202304211cHpE0.jpgspecific}.ic0.app. 然后这个域名会经过 Certifying Service Worker 供给的 Controller (如 'rdmx6-jaaaa-aaaaa-aaadq-cai') 连接到对应的 Canister,那么也就读取到了 Canister 傍边的网页文件。用户与 Canister 之间的交互是直接的,这些行为都会被完好的记载下来。

两种计划的比照与启示

DeFi 如何应对前端托管风险?了解 ICP 与 IPFS 托管方案

这张表格梳理了两种计划架构上的好坏,能够发现 IPFS 是短期计划,而 ICP 更有利于长时间的布局。而在商业上,ICP 更有利于前端本身的商业变现,如果咱们曩昔将 DeFi 后端智能合约等价于 DeFi,那么随着 ICP 的老练,将使得前端运营成为独立于后端智能合约的另一股力量。为什么那么说呢?因为 ICP 将用户和前端页面之间的价值流可信化了。不行造假的流量和交互,成为了财物定价的重要基础,这也将大大提升前端页面的玩法和发明力。结合 Dfinity 和 ETH 的交互,价值层归价值层,使用层归使用层(参考 《ICP 与 ETH 互操作的原理与启示 》)这将会为咱们带来无量的幻想空间。

Tips:截止现在为止,ICP 本身的容器并不能记载本身前史的数据,可是官方(nomeata 语)有意愿创立一个能够记载 wasm 布置 hash 的 Canister,这样一来就能够针对不行信主体供给可信的前史记载

从 ICP 论坛傍边的交流来看,现在 ICP 全体的开发任务量依然很大。现在 Proposal 的处理感觉仍较为粗陋。

视野开拓

-《世界上最简单的会计书》

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注