Skip to content

Commit 640d6a3

Browse files
committed
Add study notes for 2025-08-19
1 parent 1749230 commit 640d6a3

1 file changed

Lines changed: 289 additions & 0 deletions

File tree

slucifersz.md

Lines changed: 289 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)