来自Marlin Oyster的SNS去中心化网关

Dec 7, 23

4分钟 阅读

Marlin team编写

Marlin Oyster 是一种可验证的计算协议,提供基于 TEE 的协处理器,通过分散的节点网络异步处理复杂的工作负载。部署在 Oyster 上的服务可以无限期运行,甚至可以使用 HTTPS 端点为 TLS 请求提供服务。

Bonfida 因推出 Solana 域名服务(SNS)而广受欢迎。SNS 以用户友好的域名取代了冗长的钱包地址,让用户可以轻松访问资源。这些域名可以指向可以检索网络文件的 IPFS 哈希值,从而简化了对去中心化网站的访问方式。

不过,大多数网络浏览器都不支持 SNS 域名,因此必须使用网关。网关是将 SNS 域请求转换为 IPFS 检索的中介。它们从与请求域相对应的 IPFS 哈希值中检索数据,然后再提供给用户,从而在传统浏览器和去中心化网络之间架起了一座桥梁。

网关通常由受信任方操作。本文详细介绍了如何利用 Oyster 为 SNS 等基础服务制作无信任网关,消除分散式 DNS 工作流程中的关键信任点。

中心化网关的弊端

SNS 与当前域名系统(DNS)的运行方式类似。就像在浏览器上记忆并输入 "google.com "比使用数字 IP 地址(如 216.239.38.120)更容易一样,Web 3.0 用户只需使用 "example.sol "等容易识读的域名,而不是 "QmPK1s3pNYLi9ERiq3BDxKa4XosgWwFRQUydHUtz4YgpqB "等复杂的内容标识符(CID)字符串,就能轻松访问 IPFS 托管的网站。

网关的作用是获取 QmPK1... 的内容,并将其提供给在网络浏览器上请求 example.sol 的用户。因此,尽管 QmPK1... 的内容位于去中心化存储区,但用户是通过网关与之交互,并依靠网关通过普通网络浏览器访问内容的。

虽然网关是必不可少的,但它们往往有一个显著的缺点--中心化。中心化网关可能会被恶意行为者破坏,他们可能会将用户重定向到未经授权或有害的网站。此外,它们还可能成为审查点,侵犯网上冲浪者的隐私。因此,集中式网关会带来巨大风险,因为它引入了单点故障,破坏了去中心化前端旨在实现的去中心化的核心原则。

去中心化网关面临的挑战

创建去中心化网关并不是一项简单的任务。有三大挑战:

  • 确保不可篡改的翻译: 网关必须以防篡改的方式将 SNS 域翻译成 IPFS 哈希值。翻译过程应能抵御任何形式的未经授权的篡改,这可能会导致网络钓鱼攻击。保证网关代码的公开性和可验证性至关重要。

  • 防止中间人攻击: 必须确保响应直接来自网关,而不是来自试图拦截或修改传输中数据的中间人。

  • 控制网关本身的 DNS 记录: 传统的 DNS 服务依赖于域名所有者来控制域名记录。这就使得网关本身以及依赖其翻译服务的任何 SNS 域名都容易受到攻击,从而控制域名所有者的凭据。

##在 Oyster 上部署去中心化网关

去中心化网关由以下两部分组成:(i) 用 Nodejs 编写的服务器,用于接受请求并将 SNS 域转换为 IPFS 哈希值;(ii) IPFS 节点,用于使用 IPFS 哈希值查询数据。为了在 Oyster 上进行部署,我们首先创建了一个安装了 Nodejs 和 IPFS 的 docker 镜像,其中包含一个入口点脚本,用于运行 Nodejs 服务器和 IPFS 节点。然后将该 docker 镜像转换为飞地镜像,并将其部署到 Oyster 上。然后使用飞地内生成的 ACME 账户更新 CAA 记录,以锁定仅由飞地提供服务的域。

优点

Oyster 是一个去中心化的安全飞地网络,采用可信执行环境(TEE)技术安全运行代码。TEE 在硬件层面上将在其中运行的代码与主机的其他部分分离开来,使其不会被篡改。IPFS 节点也与网关代码一起在飞地内运行,以确保 SNS 域被正确翻译为其指向的 IPFS 内容。这可确保 SNS 域不可篡改地转换为 IPFS。

第二个挑战是通过 DNS 中 CAA 记录的账户验证来解决的。当通过网关请求 SNS 域名时,浏览器会检查只有这些安全飞地才知道的证书。由于 TEE 的安全特性,这些证书可以在飞地内安全生成,尽管它运行在本来不受信任的第三方主机上。这一过程可确保只有在 "飞地 "内运行的网关才能对请求做出响应。

第三个挑战涉及网关 DNS 记录的控制,可通过 3DNS 等链上域名提供商进行有效管理。链上 DNS 维护可确保 DNS 记录的透明度,只有在验证 TEE 内的正确代码正在处理请求后,才能进行更改。这一严格的流程可防止对 DNS 记录进行未经授权的更改,从而保障网关的可用性。

结论

Bonfida 的 SNS 和 3DNS 等去中心化基础设施的进步有助于使前端访问更加安全可靠。Oyster 无需信任服务器运营商,可在此类架构中发挥核心作用。通过利用 Oyster,Bonfida 等 DNS 服务的网关甚至各种 RPC 都能以可验证的方式运行,确保服务完全去中心化,同时不影响用户体验。

Bonfida 的去中心化网关已经上线。要从浏览器访问 "example.sol "域名,只需在域名后添加".pub",输入 "example.sol.pub "即可访问链接到".sol "域名的 IPFS 内容。该网关有效地解决了去中心化网关的前两个难题,目前正在与 3DNS 合作解决第三个难题。敬请期待进一步更新。

加入我们社区