VIEW THIS AS

Auto mode follows the Route Engine until you choose a viewpoint.

YOU ARE HERE

ROUTE CHECK

CONNECTED TO

WHAT NEXT

Use the canonical route for this room, or HELP if you are unsure.

DAO投票:先核对快照、分母与执行,再判断提案是否成功

Three students in school uniforms work through open books at a classroom table, with textbooks and stationery nearby and study notes on the whiteboard behind them.

English version · 区块链学习导航 · 上一篇

区块链学习 · 文章 BC083

三名学生在教室桌旁一起阅读书本,身边放有课本和文具。
学习场景配图;不代表照片中的学生正在学习区块链。

“百分之七十三投了赞成票”如果没有分母,就是不完整的说法。它可能指赞成与反对这两类表态中的比例,而全部合资格投票权重中,实际赞成的比例小得多。投票通过,也可能尚未改变应用,因为执行还没有发生。

本课重建一次虚构的加权投票,区分持有量与受委托投票权、参与门槛与批准条件,以及计票通过与实际动作。数字足够小,可以手工核对。

练习不建议购买治理代币、加入真实DAO、委托实际投票权或提交交易,也不判断DAO的法律地位。除明确标注的来源比较外,所有权重、程序与时间规则均为虚构。

选择适合你的阅读路线

本篇目录

  • 阅读第1至3节,确定快照与计票规则。
  • 比较第4至7节中的四组投票。
  • 阅读第8至10节,理解权力集中、执行与证据清单。
  • 完成练习,检验自己是否分清不同分母。

返回目录 · 下一节

1. 投票标签不能定义整个程序

DAO通常展开为“去中心化自治组织”,但这个名称并不规定投票公式。它没有说明权重来自代币、成员资格、受托代表,还是其他来源。

名称也不能说明弃权如何处理、是否需要最低参与门槛、平票如何判断,以及谁能执行结果。同一组票,在不同细则下可能产生不同结论。

本课的虚构提案,把应用的报告间隔从十个抽象时间单位改为十五个,不转移资金。这个间隔是否合理,不在练习范围内;我们只检查给定程序是否通过,以及是否生效。

假设提案身份固定,并在各阶段正确关联;所有计入的票都真实、及时且已被接受。这样可以集中讨论分母与权限,而不是密码学验证。

真实评估必须证明这些假设,不能把仪表板标题直接当成证据。

返回目录 · 下一节

2. 先固定投票快照,再进行加总

在提案指定的快照时点,合资格投票权重总计恰好100单位。持有分布为:

  • A持有40单位。
  • B持有25单位。
  • C持有20单位。
  • D持有15单位。

在快照之前,C把20单位投票权委托给B。A、B和D除此之外自行行使其投票权。因此,快照投票权为:A有40,B有45,C为零,D有15。

总量仍是100。委托改变由谁表达这些权重,不会凭空再产生20单位。如果把B的45和C原来的20都当成可独立投出的票,就重复计算了同一份权力。

对于这项提案,快照权重固定。每个有投票权的主体,可以把全部快照权重一次性投给一个类别,也可以不投。本模型不允许部分投票或事后更换选项。

后续持有量转移或委托变化,不改写这项提案的历史快照。这是给定规则,不表示所有投票系统都这样设计。

核对时仍处于Review阶段的ERC-5805,提出了委托与历史投票权查询接口。它说明为什么应区分当前代币余额与较早时点的投票权。本课仅使用这个有限概念,不把该文档当作虚构模型实现接口的证明。ERC-5805

返回目录 · 下一节

3. 定义两个测试与三种票

被接受的票分为赞成、反对、弃权。未投票不等于投了弃权票。

虚构的参与门槛要求:100单位合资格权重中,至少60单位参与。本模型的参与量包括赞成、反对与弃权三类。

批准条件另行计算:赞成权重必须严格大于反对权重。弃权不进入这项比较,平票失败。如果没有赞成或反对票,零不大于零,因此批准条件不成立。

只有参与门槛与批准条件都满足,提案才算计票通过。

规则不靠四舍五入后的百分比决定结果,而是直接比较精确整数。百分比是在总数确定后的解释。

这里有两个相关分母。参与门槛把已计入的参与量与合资格权重比较;赞成比例则可能把赞成与“赞成加反对”比较。两者都不自动等于全部合资格权重中赞成的比例。

应先写清计票规则,再计算。根据想要的结果反推规则,很容易得到误导性的总结。

返回目录 · 下一节

4. 投票A:全体参与,但提案失败

第一组独立投票如下:

  • A投40赞成。
  • B投45反对,其中包含C委托的20。
  • D投15弃权。

参与量为40加45加15,等于100,满足参与门槛。

但40不大于45,因此批准条件失败,提案没有计票通过。

赞成占赞成与反对合计的40/85,即8/17,约47.06%。赞成占全部合资格权重的40/100,即40%。

D的弃权帮助满足本模型的参与量,但没有增加赞成票。C的委托权重通过B的反对票表达,不另有一张独立的C票。

这也说明参与率不等于批准。全部合资格权重都参与了,变更仍然失败。

不能据此判断提案的技术价值。计票结果只说明给定票数与给定规则如何共同作用。

返回目录 · 下一节

5. 投票B:多数通过,但只有40%的合资格权重赞成

重新使用相同快照,独立选择另一组投票:

  • A投40赞成。
  • B投45弃权。
  • D投15反对。

参与量仍是100,门槛通过。赞成40大于反对15,因此批准条件通过。

决定赞成比例的分母是40加15,即55。40/55化简为8/11,约72.73%。

但合资格权重分母仍是100,其中只有40%投了赞成。

两个百分比在算术上都正确,只是描述不同对象。如果标题写成“全部合资格投票权重的72.73%批准”,就错了。

准确的短结论应是:提案按给定规则通过,赞成40、反对15、弃权45;赞成约占赞成与反对合计的72.73%,占合资格权重的40%。

这不是赞成或批评把弃权排除在多数比较之外,而是要求说明所选公式实际产生什么结果。

返回目录 · 下一节

6. 投票C:有表态者全部赞成,但参与不足

第三组独立投票只有A投40赞成。B和D没有投票,C仍没有独立的快照投票权。

赞成为40,反对与弃权均为零。因为40大于零,批准比较通过。

但参与量只有40,低于要求的60,因此提案计票失败。

在赞成与反对票中,赞成比例是100%;在合资格权重中则是40%。任何一个百分比都不能使参与门槛消失。

不能把未参与的60自动变成弃权票。模型明确区分已记录的弃权票与没有被接受的票。如果未投权重自动计入,给定参与测试就不再是原来的意思。

面对显示很高赞成比例的仪表板,可以同时检查最低参与量是否达到,以及投票期是否结束。

暂时领先也不一定是最终结果。本课案例提供投票期结束后的最终有效票;中途画面需要使用不同描述。

返回目录 · 下一节

7. 投票D:精确边界,以及计票模式为何重要

第四组独立投票中,B投45赞成,D投15反对,A没有投票。

参与量恰好60。规则是“至少60”,因此参与门槛通过;赞成大于反对,批准条件也通过。赞成占赞成与反对合计的45/60,即75%,占合资格权重的45%。

现在只改变参与门槛的计数方式来作比较:假设只有赞成加弃权计入门槛,阈值仍是60。同样一组票,只有45计入门槛,所以失败。

这不是凭空想象的术语差异。OpenZeppelin固定版本的GovernorCountingSimple模块,将赞成加弃权用于参与门槛,并要求赞成严格大于反对来判断投票成功。本课主模型刻意把三类票都计入参与量,因此不能描述成该模块的实现。GovernorCountingSimple v5.4.0

比较支持一个有限结论:只复制“quorum”这样的熟悉词,却漏掉计数方式,可能改变结果。只有阈值数字还不够。

返回目录 · 下一节

8. 委托改变决策路径,不增加总权重

B持有25单位,却控制本提案快照中的45单位投票权。这个差别是本练习的重要部分。

它不表示B拥有C的单位,也不证明C认同B最终投出的每一票。模型只给定委托,没有提供其背后的动机或机构安排。

也不能据此说B独自就能让提案通过。如果B投全部45赞成,其他主体均不参与,参与量只有45,仍达不到门槛。

但B与D合计可以达到60,投票D已经展示了这一点。A与D合计只有55,按照给定参与规则,缺少额外参与就无法使提案通过。

A与B合计85,但两者的选择仍然重要。足以达到参与门槛,不意味着它们一定赞成同一个结果。

这是具体的集中程度分析:识别给定组合能否满足某条件。它不推断账户背后有多少独立个人、他们是否合作,或治理是否具有正当性。

快照证据也很重要。如果当前界面显示B只有25单位投票权,不会自动推翻该提案历史快照使用的45。查询必须对应正确时点。OpenZeppelin固定版本的GovernorVotes模块,通过历史投票权查询取得权重,体现了这个区分。GovernorVotes v5.4.0

返回目录 · 下一节

9. 计票通过之后,还需要执行路径

使用投票B的通过结果,另做执行练习。投票在第8小时结束,最终计票已确定,但应用的报告间隔仍是十。

第10小时,获批提案成功进入队列,等待期为24小时。第34小时开始符合时间要求,但时钟到达这一刻并不表示已经执行。

给定执行规则要求:确切的排队提案、未取消状态、等待期结束,以及有权限的执行者E。假设目标对象其他条件继续满足。

基准情形中,E在第36小时成功执行。被接受的结果状态显示间隔为十五。这个观察才证明模型中的实际效果。

在独立变式中,有权取消的G在第33小时取消排队提案。它不能在第34小时执行。投票通过仍是历史事实,但没有产生预期参数变更。

在另一个独立变式中,没有权限的X在第35小时尝试执行。尝试失败,间隔保持十,原本符合条件的操作仍待处理。这不证明E以后也无法执行。

“通过、排队、就绪、取消、执行完成”是不同状态。一张计票图不能证明全部状态。OpenZeppelin固定版本的TimelockController展示了独立的操作状态与角色检查,但本模型的时间与完整工作流均为虚构。TimelockController v5.4.0

返回目录 · 下一节

10. 报告应让别人能够重算

简洁的结果报告,应标明提案、快照、合资格总量、委托关系、最终票数、参与门槛公式与批准公式。

然后分别说明决定与执行状态。在投票B通过但尚未执行时,“计票通过;赞成40、反对15、弃权45;尚未证实执行”,比“DAO已经改变间隔”更准确。

使用百分比时,在旁边标明分母。使用投票者数量时,要说明指地址、受托代表、机构还是个人。本课三个有权投票的地址,不证明背后是三个独立的人。

应记录未参与权重,不要隐藏它;记录快照时点,不要用当前持有量替代;记录是投票期的最终结果,还是中途观察。

最后,程序成功与决定本身的质量应分开。一场算术完全正确的投票,仍可能选择无益的设置;一次成功执行,也可能产生投票者未预料的后果。本练习不认证这些更广泛的问题。

返回目录 · 下一节

11. 练习与答案

练习一:委托算术

B能否投45,C再独立投20?

不能。C的20已计入B的快照权重,再加一次会把100单位合资格总量错误计成120。

练习二:误导性的分母

有人把投票B宣传为“合资格选民的72.73%赞成”。应如何修正?

分母应是赞成与反对的合计权重。全部合资格权重中的赞成比例是40%,并应附上确切最终票数。

练习三:一致赞成但缺少参与

只有A投40赞成,100%的有表态票都赞成,能否通过?

不能。虽然批准比较成功,但没有达到60单位参与门槛。

练习四:包含边界

B投45赞成,D投15反对。是否还差一个单位?

不差。参与量恰好60,而规则包含边界,因此计票通过。

练习五:不同计数模式

同样的票,如果门槛60只计算赞成加弃权,会怎样?

只有45计入,所以参与门槛失败。多数比较仍然成功,但必须同时满足两个条件。

练习六:较小组合

A与D都投赞成,能否单独达到门槛?

不能,两者合计55。意见一致不能克服参与量不足。

练习七:等待期结束

通过的提案在第10小时排队,等待24小时。如果没有执行,第34小时能确认的间隔是多少?

仍是十。操作已符合时间条件,参数却尚未改变。

练习八:通过后取消

G在第33小时有效取消。这会抹除历史投票,或把间隔设为十五吗?

两者都不会。历史上计票通过仍有记录,但排队动作已取消,间隔保持十。

返回目录 · 下一节

12. 常见问题

一个代币一定等于一票吗?

本课没有这种普遍假设。模型明确规定权重单位与委托关系,真实系统需要检查其具体机制。

弃权等于没有投票吗?

在本模型中不是。弃权是被接受的选项,不投票不贡献参与量。

委托会转移所有权吗?

本模型转移的是表达投票权重的能力,不是基础单位的所有权。其他权利需要单独证据。

提案通过就会自动执行吗?

只有真实机制确实产生这种效果才可以这样说。本例把排队、等待与获授权执行设为独立条件。

计票正确就证明治理公平吗?

不能。它验证给定程序的算术,公平性、独立性、法律权限与决定质量仍是其他问题。

返回目录 · 下一节

13. 资料来源与延伸阅读

资料核对日期为2026年10月12日。票权分布、门槛、报告间隔与时间均为虚构教学假设。

可靠的投票总结,应让另一名读者从同一快照重建两个测试,再继续追踪获批行为,直到能够说明应用是否真的发生了改变。

返回目录