跨链治理:DAO如何在多链上进行投票(而不会崩溃)

本文探讨了在多链Web3环境中,DAO如何进行跨链治理,以解决因项目跨多个区块链部署而产生的治理难题。文章介绍了跨链治理的概念、重要性,以及实现跨链治理的关键组成部分,例如跨链消息传递协议和中心辐射型模型,并讨论了在跨链环境中投票模型的变化以及安全挑战。

DAO 不再只存在于一条链上

还记得 Web3 中的一切都发生在以太坊上吗?那时的 DAO 很简单——一条链,一个治理流程,所有事情都在同一个地方发生。你可以提交提案、对其进行投票并执行它,所有这些都来自单个网络上的单个合约。很简单,对吧?

好吧,那个时代已经过去了。

如今,项目正在跨多个区块链进行部署——以太坊主网、Arbitrum 或 Optimism 等 Layer 2、Polygon 等侧链,甚至像 Cosmos 或 Solana 这样完全独立的生态系统。DAO 也不再只停留在一个链上。他们的代币、他们的资金库和他们的社区都在分散。

这就引出了一个问题:如何管理一个跨多个链存在的 DAO?

这就是跨链治理试图解决的问题。

什么是跨链治理?

让我们保持简单:

跨链治理是一种允许 DAO 管理跨多个区块链的提案、投票和执行的系统。

你不需要每个人都将代币桥接到以太坊才能投票。相反,人们可以从他们所在的任何链上与治理进行交互。即使社区分散了,DAO 仍然保持统一。

在实践中,这意味着同步存在于不同链上的智能合约之间的投票、消息和决策——并且安全地做到这一点。

这有点像经营一家全球性公司。你在五个国家设有办事处。每个人都说不同的语言,使用不同的软件,但仍然需要对相同的公司政策进行投票。这就是 DAO 在多链世界中面临的挑战。

为什么跨链治理很重要

它不再只是一个“锦上添花”的东西——它正变得至关重要。

Web3 已经进入了多链时代。任何严肃的项目要么已经存在于多个网络上,要么计划很快扩展。但是,如果你的 DAO 治理仅锁定在其中一个网络上,则会出现一些问题:

  • 碎片化:除非他们进行桥接,否则其他链上的用户无法投票,而大多数人都不想这样做。
  • 不平等:只有一条链上的代币持有者才能获得治理权。这不是很去中心化。
  • 运营混乱:提案可能会在链之间重复,或者完全被社区的一部分忽略。

跨链治理将每个人置于一个决策伞下,而无需强迫用户移动代币或跳过障碍。

所以,是的,这很重要。

它是如何运作的(无需过于技术化)

让我们将其分解为几个部分。有一些移动的部分,但是一旦你了解了它们是如何组合在一起的,一切就都有意义了。

1. 跨链消息传递

为了使任何这些工作正常进行,你需要一种让不同区块链上的智能合约相互通信的方式。他们本身并不能做到这一点。

因此,你使用跨链消息传递协议——例如 WormholeLayerZeroChainlink CCIP。这些是中继链之间信息的桥梁或“信使”。

例如,如果有人在 Optimism 上投票,则该投票需要传输回以太坊主网,DAO 在那里统计结果。消息传递协议处理了这个问题。

有些比其他的更去中心化,有些更快或更便宜。这里的权衡取舍非常重要。

2. 中心辐射模型

大多数跨链的 DAO 都使用一种称为中心辐射模型的结构。

  • 中心是一条主链(通常是以太坊),核心治理逻辑位于其中——这是创建提案、计算投票和执行结果的地方。
  • 辐射是其他链——例如 Arbitrum、Polygon 等——用户可以在其中与轻量级合约进行交互以进行投票。

以下是通常的工作方式:

  • 有人在中心链上提交提案。
  • 辐射链上的代币持有者在本地投票。
  • 这些投票(通过跨链消息传递)被转发回中心。
  • 中心聚合所有内容,检查投票的有效性,并执行决策。

这使治理在逻辑上保持集中,但在参与方面保持分散。

3. 投票聚合和验证

这部分内容变得非常技术化——而且很微妙。

一旦投票从不同的链上进入,DAO 就需要:

  • 确认投票是真实的,即从有效的辐射合约发送的。
  • 确保没有人两次投票(通过重放消息或利用跨链的代币余额)。
  • 准确反映投票权,基于代币持有量,这些代币可以被桥接、包装、质押,或者只是存在于不同的钱包中。

这并非易事。出错会导致投票操纵、不公平的结果或彻底的治理失败。

概念代码示例:伪代码中的中心合约

让我们看一个中心合约如何运作的基本示例。这不是生产代码,但给出了一个粗略的想法:

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract CrossChainDAOHub {
    struct Proposal {
        string description;
        uint256 yesVotes;
        uint256 noVotes;
        bool executed;
    }
    mapping(uint256 => Proposal) public proposals;
    uint256 public nextProposalId;
    // Create a proposal
    // 创建一个提案
    function propose(string calldata desc) external returns (uint256) {
        proposals[nextProposalId] = Proposal(desc, 0, 0, false);
        return nextProposalId++;
    }
    // Cast vote received from another chain
    // 投出来自另一个链的投票
    function castVote(uint256 proposalId, bool support, uint256 votingPower) external {
        Proposal storage p = proposals[proposalId];
        require(!p.executed, "Already executed");
        if (support) {
            p.yesVotes += votingPower;
        } else {
            p.noVotes += votingPower;
        }
    }
    // Finalize and execute a proposal
    // 最终确定并执行提案
    function executeProposal(uint256 proposalId) external {
        Proposal storage p = proposals[proposalId];
        require(!p.executed, "Already executed");
        require(p.yesVotes > p.noVotes, "Not enough support");
        // Execute the decision (logic omitted)
        // 执行决定(省略逻辑)
        p.executed = true;
    }
}

这是“中心”逻辑。投票将使用中继器或桥从辐射链转发过来,并且 castVote 将更新状态。你将需要大量的额外逻辑来验证消息、防止重复和验证来源。

真实示例:MultiGov

一个正在研究此问题的真实系统是 MultiGov

它是一个跨链治理平台,可以:

  • 让 DAO 在中心链上创建提案
  • 允许代币持有者从任何连接的网络进行投票
  • 聚合选票并处理所有链上的执行

使用 MultiGov 的 DAO 不必从头开始构建整个基础设施。它仍在不断发展,但它是该领域更有希望的实现之一。

投票模型及其在跨链环境中的变化

大多数 DAO 使用代币加权投票——你的影响力与你持有的代币数量成正比。但是在多链世界中,这会很快变得混乱。

代币可能存在于:

  • 同时在多个链上
  • 以包装或桥接的形式
  • 锁定在质押合约中

你不能再只检查某人在一条链上的钱包——你必须聚合跨多个网络的数据。

一些 DAO 通过以下方式解决此问题:

  • 使用 Snapshot 进行链下投票(基于跨链的代币快照)
  • 稍后使用脚本或 safe 在链上执行结果

这并不完美,但在许多情况下,它更节省 gas 且用户友好。

需要注意的安全性和挑战

跨链治理打开了新的大门——但也带来了新的攻击面。

以下是可能出错的地方:

  • 桥漏洞:许多跨链系统依赖于桥,这些桥通常是数百万美元漏洞利用的目标。
  • 重放攻击:如果消息未经过适当验证,则可以重复使用它们以倾斜投票计数。
  • 代币余额错误:错误读取用户的代币持有量可能导致高估或低估投票数。
  • 延迟:跨链消息可能会延迟,导致提案在不完整的数据下最终确定。
  • 中继器中心化:某些协议依赖于受信任的中继器,这些中继器可能成为中心故障点。
  • 用户体验:复杂的钱包交互、桥接费用和不熟悉的流程会阻止参与。
  • 法律灰色地带:跨多个司法管辖区运营的 DAO 可能会面临不同(且相互冲突)的法规。

所以,是的,有很多需要考虑的事情。安全审计和可靠的架构是不容谈判的。

何时跨链治理是一个不错的选择?

在以下情况下它有意义:

  • 你的协议已跨多个链部署
  • 你的社区在不同的生态系统中很活跃
  • 你希望你的 DAO 保持去中心化和包容性
  • 你可以使用可靠的互操作性工具

在以下情况下,它可能不值得:

  • 你是一个处于早期阶段的项目,拥有一条链和较小的范围
  • 你的用户群集中在单个网络上
  • 你没有开发资源来处理复杂性
  • 可用的桥风险太大或不成熟

与 Web3 中的大多数事物一样,时机和规模很重要。

DAO 治理不可避免的未来

跨链治理不仅仅是一种趋势——它是 DAO 的发展方向。

随着 Web3 生态系统的不断扩展,治理系统也需要随之发展。如果你的 DAO 想要真正去中心化,它必须包括所有人,无论他们在哪条链上。

也就是说,进行跨链并非易事。你正在用简单性换取灵活性——并且你需要准备好处理增加的风险、复杂性和基础设施开销。

从小处着手。谨慎选择工具。审核一切。并确保用户体验不会很糟糕——因为治理只有在人们真正参与时才有效。

多链未来已经到来。适应的 DAO 将是生存下来的 DAO。

  • 原文链接: medium.com/@ancilartech/...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
ancilartech
ancilartech
江湖只有他的大名,没有他的介绍。