# 残酷学分!为了部落! 我们在做什么(一句话) **残酷学分**:把“残酷共学”的活动积分上链,做成有团队协作增益与退出惩罚的游戏化积分系统。 ### 核心要点 - **打卡用途**: 仅用于判定是否淘汰(当周缺勤>2 次淘汰),不直接给分。 - **积分来源**: 学员提交“完成学习任务”获取 **$IDO/$WEDO**,不同活动有不同基础分 $p$,例如分享学习笔记 40 分、参加一次晚会 5 分等。 - **发行方式**:学员在 Tally 表单自主提交记录 -> Webhook -> 服务器用私钥调用合约:给个人铸造 `IDO`,给团队金库记账 `WEDO`(不乘 L)。 - **分配机制**: 日常入账时,个人拿 $p$ $IDO;团队池拿 $p\times a$ 记为 `WEDO`。任意在籍成员可发起 `Withdraw`,按当前团队 $L_i$ 将 `WEDO` 转为 `IDO` 并“均分”给所有幸存成员(成员可随时 `claim`)。 - **团队增益 $L_i$**: 由“$当前在籍人数 R/初始人数 N0$”与平台阶段系数 $S$ 决定:$L_i(S, R)=S\times\big(L_{min}+(L_{max}-L_{min})\times\frac{R}{N_0}\big)$。 - **退出惩罚**: 被淘汰/离队后,不再参与后续 `Withdraw` 的均分;仍可领取淘汰前已累计的 `IDO`。 - **结算与领取**: 采用合约内“可领取”模型(非 Merkle)。成员可随时 `claim` 自己的累计 `IDO`。 - **公平与竞争**: 限制团队人数上限(建议 6),主榜看“人均分红”,辅榜看“当前 L 和团队总分”。 ### 经济规则(双代币简述) - **团队规模上限**:6(建议 4–6),初始编制记为 $N_0$,当前在籍(未淘汰)人数为 $R$。 - **活动积分(审核通过即入账)**: - 个人:$p \times \alpha$ → 铸造 `IDO` 给个人 - 团队池:$p \times (1-\alpha)$ → 记为 `WEDO`(不乘 L) - **`Withdraw` 转换**:按 $L_i(S,R)$ 将团队 `WEDO` 转为 `IDO`,并“按在籍人数均分”给幸存成员。 - **倍数 $L_i$ 的决定**(两种等价表现,选其一即可): - 线性版(推荐,最简):$L(R)=L_{min} + (L_{max}-L_{min}) \times \frac{R}{N_0}$ 建议:$L_{min}=1.0,\ L_{max}=1.5$,并乘以平台阶段系数 $S$(由管理员按周配置)。 - **淘汰与资格**:打卡仅决定是否淘汰(例如一周缺勤>2 则淘汰),淘汰即时减少 $R$ 并失去分红资格;新加入可设 24–72h 冷静期后计入 $R$(防刷)。 - **分红结算**:在你设定的结算时点(天/周/月均可,与规则独立),未淘汰成员参与,按“结算期内个人活动分占比”瓜分团队池。 - **排行榜(凸显凝聚与竞争)**: - 主榜:人均分红排行(规模无关,更公平) - **辅榜:当前 $L(R)$ 排名、团队总分/人均总分** 例子:$N_0=6$,当前 $R=5$,且 $S=1$ → $L=1.0+(1.5-1.0)\times 5/6=1.4167$。 成员提交活动 $p=20$:个人得 16 `IDO`;团队池 + $20\times 0.2=4$ `WEDO`。若随后 `Withdraw` 10 `WEDO`,则转为 $10\times 1.4167=14.167`IDO` 并按当下幸存人数均分。 ### 退出处理(简化) 针对成员被残酷淘汰,团队分红池的再分配机制: - 被淘汰后不再参与后续 `Withdraw` 的均分;仍可领取淘汰前已累计的 `IDO`。 - 不再设“退出再分配池”,均分逻辑在每次 `Withdraw` 时即时体现。 ### 上链与成本(务实落地) - 链选型:直接用测试网(Sepolia)演示。 - 交互成本:每次打卡都上链。采用“链上可领取”模式: - 每天打卡与团队池分摊先在后端/数据库记账,并调用合约入账 `IDO/WEDO`。 - 任意成员可在合适时点发起 `Withdraw`,将团队 `WEDO` 转为 `IDO` 并累积到个人可领取额度。 - 前端直接 `claim` 领取(极低 gas,体验好)。 - 代币模型: - MVP 用可转移 ERC20(OpenZeppelin),便于展示余额与排行榜。 - 如果担心投机,可后续引入“不可转移积分 + 可转移治理/纪念凭证”的双代币架构(迭代再做)。 ### 智能合约最小集合(MVP) - IDOToken(ERC20) - 由经济合约铸造给个人,体现最终积分与排行。 - WEDOToken(ERC20) - 记录团队累积份额,仅在 `Withdraw` 时按 $L_i$ 转为 `IDO`。 - TeamManager - `createTeam` / `join` / `eliminate`(维护在籍人数 R、编制 N、参数 L_min/L_max,事件化变更)。 - TeamEconomy(分配器) - `creditPersonalIDO` / `creditTeamWEDO` / `withdraw` / `claim`。 - 采用“每幸存者累计分红”记账,成员可随时领取。 说明:详细机制、公式与接口以 [docs/tokenomics-v2.md](./tokenomics-v2.md) 为准;本文件仅作简要概述。 ### 后端与防作弊 - 扫链缓存各种事件,方便前端显示。 - 数据来源:MVP 先支持“人工打卡 + 轻量证明”(截图/地理位置/打卡任务链接),管理员抽查;Hackathon 重点是机制演示。 - 防刷建议:(不需要) - 限制每日打卡上限与最小间隔。 - 活跃天数门槛参与分红(见上)。 - 行为分析:同 IP/同设备多号、极端节律等简单阈值拦截。 - 后续可对接 GitHub/GFit/Apple Health/Notion 等真实数据源。 ### UI/交互建议(高可玩且易实现) - 圆桌总览(一个页面放多个小组): - 中心:队旗、团队名、当前 L;旁边展示“本周团队池总量、已分发、未认领”。 - 周围:成员头像环形排布。悬停显示“本周贡献、可领取分红、最近打卡时间”。 - 右侧活动流: - “谁在什么时候获得了多少积分”“当前 L 变化(有人退出/加入)”“本周分红 Top 3”。 - 领奖入口: - 顶部“本周可领取 X 代币”,点击弹出 Claim 面板(展示 Merkle 详情+交易 Hash)。 - 细节动效: - 成员打卡时,中心冒出粒子飞向该成员与团队池,传达“L 倍 + 分红”的心智。 ### 路线图(Hackathon 三步走) - Day 1:定参数($L$、$α$、活跃阈值)、完成 UI 原型、做本地记账和活动流。 - Day 2:实现周度分红计算与 Merkle 生成、部署测试网合约、(前端完成 Claim)。 - Day 3:打磨可视化、加退出降杠杆、加入最小防刷规则、准备 Demo 数据与讲解脚本。 ### 关键指标(Demo 展示用) - 团队留存率、成员活跃率(7 日内打卡 ≥ N 的比例) - 团队池分红参与率、平均领取时延 - 单人贡献带动的“团队新增积分倍数”(p→p×L 的直观图) - 退出事件对 L 的影响与团队活跃的联动图 # 前端展示文案(可直接用) - 顶部信息区(圆桌中心) - 标题:团队「{teamName}」 - 副标题:当前在籍 {R}/{N0}|团队增益 L={L} - 说明:活动积分按“个人 80% + 团队池 20%×$L(R)$”结算;$L(R)$仅由在籍人数决定 - 成员头像悬浮卡片 - 名称:{memberName} - 个人积累:{personalPoints} 分(可领取 {claimablePersonal}) - 团队分红(主池):预计 {expectedTeamShareMain} - 退出再分配(均分):预计 {expectedExitPoolShare} - 最近活动:{lastActivityName} +{p} 分 - 状态:{statusTag}(在籍/淘汰/冷却中) - 活动流(时间线) - {time} {memberName} 完成「{activityName}」,个人 +{p×0.8},团队池 +{p×0.2×L}(L={L},在籍 {R}/{N0}) - {time} {memberName} 退出,未领取个人积分已销毁,团队份额将于下次结算均分给在籍成员 - {time} 在籍人数变化:{prevR} → {R},L:{prevL} → {L} - {time} 结算完成:主池按贡献分配,退出再分配池已均分 - 侧栏统计卡片 - 团队池(待分配):{teamPoolPending} 分 - 退出再分配池:{exitPoolPending} 分(下次均分) - 本周在籍成员:{R} 人 - 人均预估分红:{avgProjected} 分 - 结算/领取弹窗 - 标题:领取分红 - 你的分配: - 主池(按个人贡献):{mainShare} 分 - 退出再分配(均分):{exitShare} 分 - 合计:{totalClaim} 分 - 按钮:领取到我的账户 - 退出确认弹窗 - 标题:确认退出团队? - 提示:你未领取的个人积分将被销毁,你的团队分红份额将被均分给剩余成员。 - 次要提示:退出后 {rejoinCooldownHours} 小时内不可加入任何团队。 - 按钮:确认退出 / 取消 - 加入受限提示 - 团队已满:该团队已满员({N0}/{N0}),请选择其他团队 - 冷却中:你仍在冷却期(剩余 {hoursLeft} 小时),暂不可加入新团队 - 空状态与异常 - 暂无活动记录:完成一项活动以点亮团队环 - 无在籍成员:团队待重建,当前 L=1.0 - 你已淘汰:当周缺勤已超过 2 次,暂不参与分红 - 排行卡片(切换主/副榜) - 主榜:人均分红排行(更公平) - 副榜:当前 L 排行|团队总分排行 ---
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up