如何构建无服务器 DApp?了解 EthSign 的 Web3 技术栈实践

在架构去中心化的前提下,DApp 开发者同样需要合适的 Web3 协议栈,充分利用已经成熟的基础设施作为功能模块。

撰文:闫欣, 项目负责人

⻓期看,加密世界会分为完全中心化和完全去中心化两半,前者会积极拥抱监管,扮演好加密世界与传统世界间的桥梁;而后者会保持破坏力,不断地扩张加密世界的领地。能够在这两大阵营中找准定位的会成为赢家,输家会将时间浪费在左右摇摆中。

EthSign 3.0 技术栈

去中心化是一个过程,或者说一个方向。项目的治理在初期必然是由开发团队主导的,而后逐渐建立社区和生态、完善激励规则,更加去中心化。而技术架构则应该追求在一开始就尽可能去中心化。这样会帮助开发者及时认识到去中心化在技术上带来的限制,比如低吞吐量、难以抵抗女巫攻击等;架构的去中心化并不意味着所有的应用都需要搭建自己的节点网络,从 P2P 通信做起。为了避免重复劳动,我们应该构建一个合适的 Web3 协议栈,充分利用已经成熟的基础设施项目作为功能模块,搭建出我们需要的功能 (这也是我们开发团队名字 Buildblock 的由来)。

如何构建无服务器 DApp?了解 EthSign 的 Web3 技术栈实践

3.0 是一个电子签名平台,用户可以通过手中已经掌握的私钥 (钱包) 或通过邮箱、手机号码、Twitter 等社交媒体账号生产的私钥对特定文件进行签署,并将数字签名和相关操作记录一并保存在链上,而被签署的协议文件则会在加密后被存入去中心化存储网络中。基于以上功能,我们将用到的功能模块分为三层 (顺便一提,Multicoin 很早之前画了一个更加全面通用的 Web3 协议栈图(复制链接打开:https://multicoin.capital/2019/12/13/the-web3-stack-2019-edition/),如果您有兴趣可以对照着看):

终端用户,与保存在用户手中的去中心化身份进行交互。我们把这层分为私钥管理和身份管理两块,前者主要是软硬件钱包和身份映射协议,帮助用户管理私钥并用私钥签名。Torus 和 Fortmatic 是专⻔用于 Web2 用户接入的身份映射协议,可以通过用户已有的 Email、 Google、Facebook、Twitter 等账户为其生产公私钥对。

如何构建无服务器 DApp?了解 EthSign 的 Web3 技术栈实践

身份管理协议引入一层身份到地址的映射关系,用户可以在身份不变的情况下更换地址。我们已经集成的 是目前最主流的域名系统,它可以将一个域名解析为不同链上的不同地址、Email 甚至一个图像 Avatar。我们可以肯定越来越多的组织和个人会参与这一体系,并以域名作为公开的身份标志。

如何构建无服务器 DApp?了解 EthSign 的 Web3 技术栈实践

链上链下交互,负责链上链下之间的互相访问。这一层对于存证类应用的用户体验非常重要,用户在习惯传统互联网的上传下载传输速度之后使用完全去中心化应用的体验无异于在习惯支付宝转账 之后使用区块间隔十分钟的比特币。这一层按照数据传输方向可以分成两块, 和 分别满足了多数应用做两个方向上的主要需求。 中在 EthSign 中,链上到链下的数据查询的需求最为普遍。用户在登录 dApp 后,一般情况下网⻚需 要快速遍历整个区块链。然而,这一过程并非我们习惯的那么方便,: 如果直接与节点 rpc 通信, 这一过程需要至少数分钟而且数据流中断出错的概率较高。我们与 The Graph 建立了 紧密的合作(复制链接打开:https://medium.com/ethsign/decentralized-data-queries-ethsign-using-subgraphs-via-the-graph-for-real-time-blockchain-indexing-74133abe103f),通过在不同链上建立 Subgraph,我们可以在几秒钟之内完善上述过程。链上信息到链下到另一场景是通知推送,例如 Alice 在链上指定 Bob 为签署人,而 Bob 在真实世界中毫不知情,需要搭建一个信息推送服务,将相关事件及时通过短信或者邮件推送给相关方。The Graph 投资的 EPNS 是一个解决方案,与之并驾⻬驱的还有 Alchemy,但如果无法满足 EthSign 相关多链的需求,我们也可能自己在 The Graph 上搭建一个类似的服务。 Chainlink 是链下信息上链的任务承担者。新推出的 Chainlink 2.0(复制链接打开:https://chain.link/whitepaper) 进一步拓展了预言机的具体用例,其中的关键组件 Keeper Network 即将上线,EthSign 的新产品 Smart Agreement 已经开始使 用 Kovan 测试网上的 Chainlink Keeper 来监测特定事件并自动触发合约执行。

去中心化网络,是 Web3 应用的基石。与 DeFi 不同,多数 Web3 项目都会同时使用智能合约区块链和存储型区块链。大量的 Metadata 需要被存储到存储网络中,然后将索引存回智能合约中。 关于智能合约平台,现在多链体系已经基本成型,兼容 EVM 的区块链也在努力兼容 Metamask、The Graph、Chainlink 等配套设施 ; 不同链在多链以太坊生态内天然的形成不同分片, EthSign 不做区别地全部部署以增加更多用户覆盖。EVM 生态内留存着最多的智能合约范本、函数库和各种生态项目,可组合性给了我们充分的想象空间:Superfluid 的流支付或者 Ampleforth 的 Rebase 这些只可以发生在链上的创新将会通过 EthSign 接入真实世界中!关于存储网络,IPFS 在 Crypto Art、Metaverse 等有大量 Metadata 存储需求的场景中占据了主导地位,相关的基础设施最多,但其上仍然缺乏一个非常好的激励层来保障文件的稳定存储。Filecoin 拥有众多的节点,但仍然只能提供一段时间的存储,无法与链上「永久存储」的需求适配。 提供的永久存储特性逐渐受到了很多项目的⻘睐,但如何在智能合约区块链和存储区块链之间去中心的互相操作仍然需要更多组件,这一领域正在⻜速发展。EthSign 正在同时使用 IPFS 和 Arweave, Arweave 推出的 节点插件(复制链接打开:https://arweave.medium.com/arweave-ipfs-persistence-for-the-interplanetary-file-system-9f12981c36c3) 将允许一份文件同时存储在两个网络之上,一方面在 IPFS 上便于检索,另一方面通过 Arweave 提供持续性。EthSign 上所有的协议和链下数据都会默认用这种方法存入这两个网络,之后我们也会接入 Filecoin 和 Skynet 为用户提供更多选择。

如何构建无服务器 DApp?了解 EthSign 的 Web3 技术栈实践

Web 3 应用的时代正在到来

EthSign 3.0 搭建在上述灵活且实用的技术栈之上,完全没有服务器,项目的运维成本不会随着用户数增加而增加。另一方面,由于业务逻辑和数据都不保存在服务器之上,开发者需要适应这个框架。在以太坊上,新的智能合约无法覆盖旧合约,也就是说,开发者部署新版本实际上与老版本并行。当用户用新版本检索过去交互过的协议时,我们必须保证新版本的前端也会索引之前合约中存储的数据。EthSign 3.0 采用了可升级的智能合约,使开发者在保留用户数据的前提下单纯对合约逻辑进行升级。这个特性对任何正式发布的产品都至关重要——用户数据不到万不得已的情况下绝对不能有丢失。诸如此类,Web3 应用开发是一个尚未被充分讨论的话题,随着基础设施的成熟,市场的目光很快将很快投向这一领域。

内容搜集自网络,整理者:BTCover,如若侵权请联系站长,会尽快删除。

(0)
BTCover的头像BTCover
上一篇 28 8 月, 2021 11:08 上午
下一篇 28 8 月, 2021 11:07 上午

相关推荐