@@ -15,6 +15,295 @@ timezone: UTC+8
1515## Notes
1616
1717<!-- Content_START -->
18+ # 2025-08-19
19+
20+ 用ai整了一个小小的dapp思路
21+ 社区治理 DApp — 72 小时原型蓝图(CivicCell)
22+
23+ 面向黑客松的可落地方案,遵循你的 Rules 与 Workflows:ERC-4337、L2(Polygon zkEVM)、零知识默认隐私、DAO 升级接口、去中心化预言机约束、Gas 峰值≤0.05 ETH/日。
24+
25+ 1 . 痛点扫描(社区治理)
26+
27+ 参与率低:线下会议成本高、投票流程复杂;居民隐私顾虑强(怕被“贴标签”)。
28+
29+ 信息不对称:提案内容不透明、执行难追踪,结果容易被质疑。
30+
31+ Sybil & 拉票:一人多号、团体动员影响公平;匿名表达与反贿选难兼得。
32+
33+ 资金使用不透明:共治经费分配难量化、缺少“资金→结果”的可验证链路。
34+
35+ 落地阻力:过度上链导致成本高、体验差;合规与风险控制缺位。
36+
37+ 2 . 方案概述(CivicCell)
38+
39+ 一句话:为社区提供“匿名但可验证”的提案-投票-验收全流程工具,结合 ZK 身份 + 非转让声誉 与 可追踪资金流,确保低门槛 + 可审计 + 可落地。
40+
41+ 创新点:
42+
43+ ZK 居民证明:基于 Semaphore/Polygon ID 完成“是本社区居民”的零知识证明;不暴露真实身份与住址。
44+
45+ 匿名二次投票(Quadratic Voting):结合声誉上限,既防拉票又体现偏好强度。
46+
47+ 任务凭证 NFT(Task Proof NFT):执行阶段由见证人/多签确认任务完成,生成 SBT/1155 凭证;凭证可作为后续“参与门槛/权重”。
48+
49+ 可验证资金流:国库存于 Safe(多签)+ 时间锁;里程碑通过后按 流式资金(Superfluid 类)/分批拨付。
50+
51+ 乐观验收:UMA/Reality.eth 风格的 乐观争议窗口;若无人挑战,里程碑自动通过。
52+
53+ 3 . 架构(链上/链下混合)
54+
55+ 链上(Polygon zkEVM):Governor 合约 + Treasury(Safe/Zodiac)+ Reputation(SBT/1155)+ VoteAdapter(Semaphore)+ EAS Attestations + Timelock。
56+
57+ 链下:
58+
59+ 提案详情/IPFS 元数据(Pinata/Web3.Storage)。
60+
61+ 事件索引与推送(The Graph/Subgraph + serverless 通知,如 Cloudflare Workers)。
62+
63+ 地理范围校验最小化:仅作“属于小区网段/物业名册”的 离线签名名册,上链为 Merkle Root。
64+
65+ 数据流:
66+
67+ 住户被物业/见证人签名加入名册 → 生成 Merkle Root;
68+
69+ 用户用 ERC-4337 钱包提交 proofOfResidency(ZK 证明 + Merkle 叶子)→ 获得 Reputation SBT;
70+
71+ 发起提案 → IPFS 哈希 + 参数上链;
72+
73+ 投票(匿名群组证明 + 二次投票权重)→ 计票 → 通过进入执行;
74+
75+ 执行按里程碑释放资金;任务完成 → 见证人/仲裁窗口 → 铸造任务凭证 NFT;
76+
77+ 全链路审计通过 Subgraph 可视化。
78+
79+ 4 . 模块设计
80+ 4.1 身份与声誉(ZK + SBT)
81+
82+ ResidencyGroup:社区居民匿名群组(Semaphore groupId)。
83+
84+ ReputationSBT (ERC‑5192):不可转让、可衰减(按块高度或周期线下重算并写入)。
85+
86+ EAS Schema:CommunityResidency, TaskWitness, MilestonePass 等证明。
87+
88+ 核心约束:
89+
90+ 每个身份最多绑定一个活跃 SBT;
91+
92+ 声誉获取来源:投票参与、任务完成、提案通过后的公共物品贡献;
93+
94+ 声誉上限 + 衰减,防“囤积权力”。
95+
96+ 4.2 提案与治理(Governor + Timelock)
97+
98+ 采用 OpenZeppelin Governor 扩展:自定义计票为 Quadratic(√票重),并接入 VoteAdapter。
99+
100+ 提案生命周期:Draft → On-chain Voting → Queue → Execute → Milestones。
101+
102+ 参数:投票期(3–5 天可配置)、提案最小存款(防垃圾)、法定人数阈值(基于活跃 SBT 数)。
103+
104+ 4.3 匿名投票(Semaphore VoteAdapter)
105+
106+ proveMembership: 用户提交 ZK 证明(不泄露地址);
107+
108+ castVoteQF: 消耗票券(由声誉上限换算),以 √权重 计票;
109+
110+ 防重放:nullifier 记录;
111+
112+ 反贿选:提交承诺-揭示可选,或通过 MACI 兼容接口(MVP 采用 Semaphore 简化)。
113+
114+ 4.4 国库与资金释放(Safe + Timelock + 流式/分批)
115+
116+ Treasury:Safe 多签持有;Governor 执行通过 Zodiac 模块化控制器触发。
117+
118+ Milestones:里程碑哈希上链;每个里程碑设 挑战窗口,无挑战自动释放;
119+
120+ 可选 流式支付(Superfluid 类),MVP 先用分批转账。
121+
122+ 4.5 任务凭证 NFT(执行证明)
123+
124+ TaskNFT (ERC‑1155):不同任务类型不同 tokenId;
125+
126+ 铸造条件:见证人(多签/随机选择的居民)通过 EAS 证明 + 合约校验;
127+
128+ 用途:下一轮提案门槛加分/投票权上限提升。
129+
130+ 5 . 技术栈与依赖
131+
132+ 链:Polygon zkEVM 测试网
133+
134+ 账户抽象:ERC‑4337(Bundler + Paymaster,限制额度/白名单方法)
135+
136+ 合约框架:Foundry/Hardhat + OpenZeppelin + Semaphore(circom/snarkjs 预编译电路)
137+
138+ 存储:IPFS(Web3.Storage/Pinata)
139+
140+ 索引:The Graph Subgraph(提案、投票、里程碑)
141+
142+ 前端:Next.js + Wagmi + RainbowKit(AA 兼容)
143+
144+ ZK:Semaphore JS/Go + 预编译电路(MVP 提供固定深度群组)
145+
146+ 治理 UI:headless + 状态机(XState)
147+
148+ 6 . 用户旅程(User Flow)
149+
150+ 入驻:手机号/邮箱登录(仅做会话),钱包自动创建(4337),引导提交居住证明(物业签名的 Merkle 叶 + ZK 证明)。
151+
152+ 浏览提案:按主题/预算排序,查看 IPFS 详情与过往讨论。
153+
154+ 投票:匿名加入群组 → 系统计算可用票券(由声誉上限换算)→ 一键二次投票。
155+
156+ 执行:提案通过后,按里程碑展示进度;居民可提交挑战;
157+
158+ 验收:见证人打分 + 任务凭证 NFT 铸造;自动更新贡献榜与声誉。
159+
160+ 7 . 激励与经济模型(非投机、可持续)
161+
162+ GovPoints(声誉点):不可转让、可衰减;上限随“最近 90 天有效贡献”动态计算。
163+
164+ TaskNFT:可转让性默认关闭(SBT 模式);特定类型可转让但不计声誉。
165+
166+ 社区赞助池:本地商家/物业注资,用于提案奖励与任务赏金;不承诺收益,不涉衍生品。
167+
168+ 反女巫:每个群组成员仅一个活跃 SBT;匿名投票依赖零知识成员证明;入组依赖多方见证/名册。
169+
170+ 8 . 合规与风险控制
171+
172+ 不 ICO、不收益承诺;所有奖励为非金融性质的积分/小额赏金。
173+
174+ 数据隐私:住址与身份仅以 ZK 与 Merkle 证明表达;不上链明文。
175+
176+ DAO 升级接口:代理合约(UUPS/Transparent);升级需 Timelock + 多签批准。
177+
178+ 内容审查:仅技术性过滤垃圾/仇恨提案(链下规则 + 可审计白名单)。
179+
180+ 9 . Gas 优化策略(确保 ≤0.05 ETH/日)
181+
182+ L2 部署;
183+
184+ ERC‑4337 Paymaster 日预算上限 + 白名单方法;
185+
186+ 采用 event + Subgraph,减少重数据上链;
187+
188+ 批量投票提交(批量 nullifier 验证)/Calldata 压缩(CBOR);
189+
190+ 计票权重链下预计算 + 上链 Merkle Root 验证(MVP 可直接上链 √ 运算)。
191+
192+ 10 . 合约接口(MVP 选段)
193+ interface IReputationSBT {
194+ function mint(address to, uint256 score, bytes calldata proof) external; // proof: residency ZK + Merkle leaf
195+ function scoreOf(address user) external view returns (uint256);
196+ function decayUpdate(address user) external; // 可选:周期性衰减
197+ }
198+
199+
200+ interface IProposalCore {
201+ struct Proposal {
202+ address proposer;
203+ bytes32 ipfsHash;
204+ uint256 start;
205+ uint256 end;
206+ uint256 quorum;
207+ uint256 deposit;
208+ uint8 milestoneCount;
209+ bool executed;
210+ }
211+ function propose(Proposal calldata p) external payable returns (uint256 id);
212+ function queue(uint256 id) external;
213+ function execute(uint256 id) external;
214+ }
215+
216+
217+ interface IVoteAdapter {
218+ // Semaphore-based anonymous vote, weight = sqrt(credits)
219+ function castVoteQF(uint256 proposalId, uint256 commitment, bytes calldata zkProof) external;
220+ }
221+
222+
223+ interface ITreasury {
224+ function scheduleMilestone(uint256 proposalId, uint8 index, uint256 amount, bytes32 evidenceHash) external;
225+ function challenge(uint256 proposalId, uint8 index, bytes calldata evidence) external; // 触发仲裁
226+ function release(uint256 proposalId, uint8 index) external; // 无挑战/仲裁通过后释放
227+ }
228+
229+
230+ interface ITaskNFT {
231+ function mintTask(address to, uint256 taskType, bytes calldata witnessAttestation) external;
232+ }
233+ 11 . 前端/页面清单
234+
235+ 首页:进行中提案卡片、预算条、参与入口。
236+
237+ 提案详情:IPFS 内容、投票组件(匿名/二次投票)、讨论(链下存储+可上链快照)。
238+
239+ 创建提案:表单 + 预算分配 + 里程碑配置 + 最小存款提示。
240+
241+ 治理看板:Subgraph 驱动的进度、国库余额、挑战窗口倒计时。
242+
243+ 身份中心:SBT 状态、可用票券、任务凭证列表、贡献曲线。
244+
245+ 12 . 72 小时 MVP 里程碑
246+
247+ T0–T24(后端优先)
248+
249+ 搭建 Foundry/Hardhat;部署 ReputationSBT、ProposalCore(minimal)、VoteAdapter(Semaphore 骨架);
250+
251+ 集成 IPFS 上传;
252+
253+ 4337 钱包接入(测试 Paymaster 封顶 0.02 ETH/日)。
254+
255+ T24–T48(前端 + 流程贯通)
256+
257+ Next.js + Wagmi/RainbowKit;
258+
259+ 提案创建/列表/详情 + 匿名投票(伪电路先行、后切换真实 proof 验证);
260+
261+ Subgraph:提案/投票事件索引;
262+
263+ Safe 国库创建(测试环境)。
264+
265+ T48–T72(验收与演示)
266+
267+ 里程碑与挑战窗口最小实现;
268+
269+ TaskNFT 铸造(见证人假数据/本地签名);
270+
271+ Gas 预算与压测脚本(10–50 并发);
272+
273+ Demo 脚本与演示数据准备。
274+
275+ 13 . 验收标准(Demo Checklist)
276+
277+ 住户能在 不暴露地址 的前提下成功投票;
278+
279+ 提案通过 → Safe 国库执行一笔小额拨付(测试代币);
280+
281+ 完成任务后成功铸造 1 枚 TaskNFT;
282+
283+ 治理看板显示从“提案-投票-执行-验收”的可视化链路;
284+
285+ 日内 Gas 消耗 < 0.05 ETH(以 L2 统计)。
286+
287+ 14 . 备选与降级方案
288+
289+ 匿名投票降级:若 ZK 集成超时,临时改为地址投票 + MACI 接口预留;
290+
291+ 资金释放降级:先用定额分批转账,后续接入流式;
292+
293+ 声誉衰减:MVP 以“滚动窗口上限”替代链上衰减,减少运算。
294+
295+ 15 . 下一步(可直接开工)
296+
297+ 生成社区名册 Merkle Root(用示例账号);
298+
299+ 初始化 Semaphore 群组(depth=20);
300+
301+ 部署最小合约到 Polygon zkEVM 测试网;
302+
303+ 打通前端提案-投票-里程碑释放全链路;
304+
305+ 压测与数据看板。
306+
18307# 2025-08-18
19308
20309听课了解到了Farcaster 是一个去中心化的 社交网络协议,诞生于 2020 年,由前 Coinbase 工程师 Dan Romero 创立。
0 commit comments