首页>>资讯>>产业

一文了解 Polkadot 生态 Appchain 协议 Tanssi

2024-03-05 14:39:45 122

随着 Web3 市场格局的变化,新一批的项目正在波卡生态崭露头角!这是一个介绍这些新项目的系列专栏。本文是第一期,我们将介绍 Appchain 基础设施协议 —— Tanssi!


在不断变化的区块链技术领域中,理解和处理各种不同项目的复杂性确实是一项艰巨的任务。这就是这篇概览文章的目的,帮助读者更好地理解这些复杂性,并分享 Tanssi 这一创新的应用链基础设施协议的独特功能,除了分享它如何简化开发者的应用链部署,也阐明了它在更广泛的 Polkadot 生态系统中的关键作用。


Tanssi: 为充分利用 Substrate 打开了一条简易通道


Substrate 已成为开发者的首选框架,因为它能够构建高效且高度可定制的链,其中大多数链都连接到了 Polkadot 网络。这些链通常被称为平行链 (parachains),它们通常选择从 Polkadot 生态系统提供的诸多优势中受益,例如:


共享安全性:为新项目创建坚实的安全基础是一项艰巨的任务。Polkadot 通过分配验证者来验证每个平行链产生的区块,从而处理这一问题。


无分叉升级:Polkadot 的生态系统允许平行链通过简单地提交一种特定的交易类型来设置新的运行规则,无需对网络进行分叉。


XCM 和 XCMP:Polkadot 生态系统提供了一种本地语言 (XCM),平行链可以用它进行通信,以及一种本地传输协议 (XCMP),平行链可以用它交换消息。


然而,使用 Substrate 框架来开发区块链项目并不简单。团队需要经历一个复杂的过程。首先,他们需要在 Polkadot 的插槽拍卖中赢得一个插槽,以获得成为平行链的资格。这通常意味着他们需要提前准备资金或启动一个 Crowdloan 过程,鼓励 Polkadot 用户贡献资金来帮助他们赢得插槽,并通常在项目启动时提供 token 作为回报。对于团队来说,理解和参与这种拍卖机制既有理论上的挑战,也有技术上的挑战。


接下来,你需要制定一个计划来吸引提议区块的节点,这些节点被称为收集人(collators)。收集人的职责是将交易进行分组并生成区块,以此来保证它们所在的平行链的活跃性。为了提高对审查的抵抗力和减少对单个节点在交易处理上的依赖,拥有一个多样化的收集人集合是非常重要的。然而,引入和对这样一个多样化的收集人集合进行性能测试可能会比较复杂和耗时。


最后,虽然 Substrate 确实是一个强大的框架,但其高度的可定制性意味着对新用户来说有一个陡峭的学习曲线。并不是每个人都知道如何驾驭法拉利,即使它是最强大的汽车之一。同样地,没有充分的实践,不是每个人都能充分利用 Substrate 的潜力。这种包括高度定制化的学习要求可能会阻止开发者在 Polkadot 生态系统中构建。


Tanssi 正在努力克服这一系列挑战,目的是为开发者在 Polkadot 生态中提供一个更加顺畅的入门体验,使他们能够更容易地在 Polkadot 生态系统中进行开发。为了实现这一目标,Tanssi 引入了 Appchain 的概念,这是一种特殊类型的模块化平行链,一旦与 Tanssi 连接,就可以使用 Tanssi 共享的收集人(collators),从而为更高效和更具适应性的出块方式和集成过程打下了基础。当一个项目成为 Tanssi Appchain 时,它将能够访问一系列服务、资源和工具这些都旨在最大化资源的利用并提高整个协议的效率。


Tanssi 的开发遵循三个核心原则:


简单性:Tanssi 努力简化将链整合到 Polkadot 生态系统中的过程。目标是让 appchain 开发者专注于链的核心功能,而不是复杂的拍卖流程、基础设施获取或复杂的区块生产激励设计。此外,Tanssi 简化了用 Substrate 构建链的过程,为团队提供了具有基本功能的模板来构建。


安全性:Polkadot 的共享安全模型不仅是创新的 —— 它还是各种区块链生态系统中最成熟的模型之一。Tanssi 充分利用了中继的安全能力,并为 Appchain 提供了等同的安全保证。


去中心化:Polkadot 对去中心化的强烈承诺体现在其共享安全模型和链上治理系统中。Tanssi 旨在将类似的元素纳入协议及其 Appchain,使代币持有者能够积极参与透明和公平的决策过程。


Tanssi 如何运转?


作为一个平行链,Tanssi 拥有独特的能力。它主要设计用于提供区块生产和数据检索服务,从本质上将这些职责与 Appchain 分离。因此,Appchain 只需要专注于构建我们在 Substrate 术语中称之为运行时(runtime)的东西。本质上,运行时包括规定链内状态变化的规则。鼓励全节点和收集人按预期为 Appchain 工作是 Tanssi 的责任!


Appchain 作为“兄弟”平行链的定位


Tanssi 运营设计的一个关键方面是,与 Polkadot 及其平行链之间的“父子”关系不同,Appchain 不会在 Tanssi 之下运行。相反,Tanssi 和 Appchain 将作为“兄弟”平行链运行,Polkadot 中继链作为共同的父链。理解这一点需要洞察中继链中执行槽(execution slots)的功能。


中继链中的执行槽类似于计算机中的 CPU 核心,每个槽一次只能运行一个进程。在 Polkadot 生态系统中,这些槽允许链通过中继链验证者验证其区块,并从中继链的最终确定性共识机制中获益。然而,一个区块必须满足一定的大小和执行时间标准才能获得这种验证。


在 Polkadot2.0 上线前,执行槽有两种订阅模式:平行链(Parachains)和平行线程(Parathreads)。平行链通过赢得前面提到的拍卖,获得对执行槽的长期(在 Polkadot 的情况下是两年)访问权。另一方面,平行线程根据需要在逐块的基础上租用执行槽。


现在回到 Appchain 模型。你能想象如果 Appchain 作为 Tanssi 的子链运行会发生什么吗?它们将共享 Tanssi 的执行槽,这将大大限制它们的性能。相反,如果 Appchain 作为平行链或平行线程,即作为兄弟链存在,它们将拥有自己的执行槽,这样就不会受到其他 Appchain 活动的影响,保证了它们的处理能力。因此,平行线程模型更适合 Appchain,因为它允许 Appchain 根据需求产生区块,更加灵活高效。


Tanssi 在加速开发者采用方面扮演什么角色?


我们已经探讨了创建 Appchain 的模型,但我们还没有详细说明 Tanssi 在部署 Appchain 中的作用。广泛来说,Tanssi 将为 Appchain 提供以下服务:


收集人服务:与 Polkadot 委托验证者以增强安全性类似,Tanssi 将为各个 Appchain 分配区块构建者,并管理适当的区块构建激励,以确保链活动。这创造了所谓的共享生存性 —— 一种抵抗操纵或更改的区块提议保证。


数据检索服务:Tanssi 还将激励每个 Appchain 的数据可检索性,换句话说,就是恢复链的完整历史的能力。这代表了一个范式转变,因为完整的归档节点将获得激励,以保留特定 Appchain 的全面历史。


Templates:鉴于掌握 Substrate 框架的挑战,Tanssi 将提供内置模板。开发者可以根据需要修改这些模板,或直接部署它们。这些模板带有某些强制性共识模块预先安装,确保 Appchain 与 Tanssi 兼容。


索引器/浏览器/钱包集成:Tanssi 节点将具有必要的支持,以与最流行的钱包、索引器和浏览器集成,包括与 EVM 兼容性相关的(Frontier)。


XCM 集成:尽管 XCM 是跨链通信的强大语言,但其设置对于生态系统中的新手来说可能令人生畏。内置模板将已经包括 XCM 支持,可能默认带有一组预定义的连接。


Polkadot 中继链的功能


作为平行链/平行线程(兄弟链),Appchain 可以确保它们的有效性函数(运行时)由中继链进行验证。然而,作为 Tanssi 提供给收集人的激励的一部分,用于生成 Appchain 区块,Tanssi 还必须验证该区块确实是由正确的作者创建的。


这段话的意思是,Appchain 需要能够确认区块的作者身份,为此,它们必须知道 Tanssi 为它们的 Appchain 指定了哪些收集人。如果没有这种确认机制,Appchain 可能会面临 DoS 攻击的风险,即某个随机节点可能会生成无内容的区块,从而破坏链的正常运作。


但是,如果 Tanssi 和 Appchain 是不同的兄弟链,这种机制如何运作呢?解决方案在于中继链,它是所有前述链的共同连接点。中继链保留着生态系统中每个运行链最近的头部信息。在其他元素中,这个头部包含状态根,可以用来验证状态证明。


因此,中继链对于 Tanssi 来说至关重要,不仅仅是为了安全,也是为了状态验证。通过交叉引用头部,Appchain 可以确认一定的 Tanssi 整理者组已经被指派给它们。同时,Tanssi 可以验证一个容器区块的作者是否是预期的那个,并相应地奖励。


这只是利用状态证明可以开发的一系列功能的开始。最近,Polytope 介绍了一种新的消息交换原型,它利用跨平行链的状态证明,而不需要通过中继链路由消息。


Tanssi 及其 Appchain 运作的实际示例


让我们概述 Tanssi 中用于区块作者验证的方法。例如,假设 Tanssi 有六个不同的收集人,标记为 A 到 F。收集人 A、B 和 C 正在为 Tanssi 链本身产生区块,而一个 Appchain 已经被 Tanssi 分配给收集人 D、E 和 F。


我们将从两个不同的角度解释这个过程:


场景 1:Tanssi 需要识别每个 Appchain 中最新区块的作者。


场景 2:Appchain 需要运行一个作者验证过程,因此,它们需要知道 Tanssi 已经指定哪些收集人来收集它的区块。


场景一:Tanssi 中的 Appchain 作者验证


下图说明了以下步骤:


收集人 D 为 Appchain 产生一个区块,并将其公钥注入到区块头中。


中继链接受这个区块,并将其头部存储在自己的状态中。


Tanssi 中的收集人 A 有义务在构建区块的过程中包含来自中继的 Appchain 的最新头部。这个过程是强制性的,意味着收集人不能绕过它。


从插入的头部中检索到的收集人 D,被认定为容器区块的最新作者,并相应地获得奖励。

1.png

场景二:Appchain 中的收集人分配


下面的图形说明了这里概述的步骤:


收集人 A 为 Tanssi 生成一个区块。


中继链接受这个区块,并将其头部存储在自己的状态中。


Appchain 中的收集人 F 需要嵌入来自中继的 Tanssi 的最新状态根。这个步骤也是强制性的,整理者不能避免它。


通过其 Tanssi 链嵌入节点,收集人 F 还能够将收集人分配纳入 Appchain。Appchain 负责通过存储证明验证这些数据的真实性。


现在,收集人 F 可以展示其构建区块的能力,因为它被包含在 Tanssi 分配给 Appchain 的收集人列表中。

1.png

未来展望


Tanssi 的开发是一个充满挑战的项目,需要一些时间来完成和微调。尽管如此,近期有两个主要里程碑目标,即测试网和一个稳固的社区。


第一步:测试网


获取用户和开发者的早期反馈非常重要,因此计划在未来几个月推出测试网的第一个版本。尽管这个初始测试网不会包含所有之前描述的功能,但它应该为完善目前正在开发的组件提供一个坚实的基础。具体来说,测试网的第一个版本将集中于:


Appchain 作为平行链:尽管最终目标是在平行线程模型中实现,但这个功能仍在 Parity 开发中。在测试网阶段,将假设 Appchain 是平行链,未来将在它们足够成熟时增加对平行线程的支持。


模板:测试网启动时将提供两个模板:一个简单的模板,能够执行代币转移;以及一个兼容 EVM 的模板,支持 Metamask。未来将支持更多模板,或者团队也可以部署自己的模板。


收集人分配:第一个版本的测试网不会包含区块构建者的轮换功能。这是一个计划在未来测试网版本中实现的功能。目前,收集人将保持其 Appchain 分配,除非 Appchain 被取消注册。每个 Appchain 分配的收集人数量将由一个特定模块(配置模块)来调节,该模块还将确定 Tanssi 所需的最小收集人数量。


共识协议:使用的共识协议将是 Aura,其中收集人以循环方式提议区块。所有之前描述的状态证明机制将被实现,以确保在 Tanssi 和 Appchain 中准确地验证作者身份。


Tanssi 成功的关键:社区参与


在构建 Tanssi 时,社区参与的价值绝对至关重要。开发者和其他社区成员的反馈将在完善协议的细节、确保其满足用户需求并持续发展方面发挥重要作用。此外,Tanssi 的收集人 —— 其基础设施的重要组成部分 ——将从网络中表现出强烈兴趣并展示所需技术能力的人员中挑选出来。


Tanssi 的增长和影响力也与其社区的积极参与密切相关。随着新成员的加入和现有成员的深入参与,他们的热情和倡导将产生连锁反应,吸引更多个人和团体加入 Tanssi。这个不断壮大的社区将提供持续创新所需的动力和思想多样性。


为了认可社区所扮演的重要角色,Tanssi 计划在未来几周宣布一系列激动人心的计划。这些举措旨在鼓励积极参与、促进合作,并为成员提供影响项目方向和增长的途径。通过一种互惠关系,Tanssi 的成功将与其社区的活力和承诺密切相关。

声明:本网站所有相关资料如有侵权请联系站长删除,资料仅供用户学习及研究之用,不构成任何投资建议!