Spark Program | Dular —— 结项报告
1 结项评价 / Final Evaluation
完成日期 / Completion Date:2026-09-17
1.1 评价摘要 / Evaluation Summary
Dular 在星火计划资助周期内完成了从"移动货币场景的稳定币钱包"概念到真实用户试点的完整闭环。开发者 duongja 以 Fiber Network 为结算层,先后交付了手机号身份注册与 OTP 验证系统、公开的 phone → Fiber pubkey 查询 API、基于 Safaricom Daraja 生产凭据的 M-Pesa STK Push 入金流程、经 Africa’s Talking 模拟器完整测试的 USSD 界面,并在委员会架构质询后主动完成了一次关键的方向升级——从托管账本(operator-ledger)架构转向 Fiber 原生的自托管移动 Web 钱包:用户密钥在浏览器本地生成并以 PIN 加密保存,手机号绑定用户自有的 Fiber 身份,手机号转账与标准 Fiber 发票收发(含非 Dular 外部钱包)均直接经 Fiber 结算。
项目最终完成 30 名真实用户试点,收集 23 份结构化反馈,并以 53 项自动化测试、公开验证 API 与链上交易证据构成完整可复核的交付链。作为 Spark 2026 年度顶格资助($2,000)项目之一,Dular 为 Fiber 生态沉淀了一套面向移动货币市场的可参考实现,以及一份关于"真实用户如何与 Fiber 交互"的一手数据。
需要如实说明:项目的结项申请较预期晚两个月,中期曾出现周报中断与短暂失联;委员会按《Spark Program: Mini-Grant Initiative》第 3.3 条结项政策启动最后跟进程序后,开发者及时回归、补齐全部结项材料,并在最终评估中展现出足够的努力与值得肯定的交付表现。委员会据此批准结项,同时已要求开发者在其个人结项报告中向社区正式说明延期原因并分享经验。
1.2 主要成果 / Key Achievements
技术交付:Fiber 原生的自托管移动支付钱包 / Technical Delivery: A Fiber-Native, Self-Custody Mobile Payment Wallet
- 身份层:OTP 手机号验证(Africa’s Talking)+ 数据库支撑的 phone → Fiber pubkey 注册表,公开查询 API 可供任何人低成本复核;
- 出入金:M-Pesa STK Push 生产环境入金,存款通过支付用户浏览器钱包签发的精确 Fiber 发票完成结算,不经内部账本;出金的 Fiber 侧已实现(浏览器验证并支付运营方发票,后端含 payout 跟踪、对账与退款处理);
- 自托管架构:Fiber 通过 Fiber WASM / fiber-js 直接运行在移动浏览器中,用户的 Fiber 与 CKB 密钥在设备本地生成、以钱包 PIN 加密存储,Dular 不托管用户私钥;
- Fiber 互操作:手机号支付解析收款方注册的 Fiber 身份后直接经 Fiber 结算;支持标准 Fiber 发票的创建与支付,可与非 Dular 外部 Fiber 钱包互收互付;支持二维码与支付链接分享;
- 工程质量:53 项自动化测试覆盖 Fiber 路由、发票、支付、通道、钱包身份绑定、出入金状态与退款路径,lint 与生产构建全部通过。
真实用户试点:30 名用户、57 笔成功 Fiber 支付 / Live Pilot: 30 Onboarded Users and 57 Successful Fiber Payments
- 试点规模:30 名用户完成注册,23 份结构化反馈;
- 链上/通道数据:31 条通道、57 笔成功 Fiber 支付、32 笔完成的出入金订单;每条通道记录附带 funding tx hash 与浏览器链接,每笔 ramp 订单关联脱敏验证记录;
- 评分结果(n=23,满分 5 分):入门体验 3.96、存款 3.70、转账 3.96、可靠性 3.39;19/23 表示愿意再次使用,7 人未遇到任何问题;
- 反馈聚类:STK/流动性提示文案、发票过期与二维码边界情况、斯瓦希里语覆盖、恢复短语备份、PIN 命名。
可复核的验证体系 / A Reproducible Verification Trail
- 公开验证端点:
/api/health、/api/verification/pilot、/api/registry/lookup?phone=...可直接 curl 复核; - 参考多跳支付证明:Fiber payment hash
0x20fd6c4a…e4a9e2,对应通道 funding tx0xefdb791a…68e9e39与0x6156f3a8…b6a79c; - 链上资产合约:FundingLock
0x6c67887f…fa6d7c,RUSD0x1142755a…677d21a; - 全部里程碑验证材料(含 USSD 模拟器会话 CSV、试点反馈 CSV)随仓库公开。
知识沉淀:面向 Fiber/CKB 建设者的一手经验 / Knowledge Output: First-Hand Findings for Fiber/CKB Builders
- 开发者基于试点撰写了《Dular: What mobile money users taught us building on Fiber》(t/10717),分享关于"loops vs wallets"、缺失的身份层、真实利润空间与离线收款问题的思考,委员会认可其对生态的参考价值。
1.3 创新点与价值 / Innovation & Value
把 Fiber 翻译成移动货币用户的语言 / Translating Fiber into the Language of Mobile Money Users
非洲、东南亚与拉美约 14 亿人依赖移动货币作为主要金融基础设施,承受 6–9% 的跨境手续费与 1–3 天的结算周期。Dular 没有要求这些用户理解十六进制地址、Gas 与助记词,而是用他们已熟悉的交互——手机号转账、M-Pesa 入金、USSD(功能机)——把 Fiber 的即时低成本结算能力包装进去。这是 Fiber 能力"产品化"的一次真实验证。
委员会质询驱动的架构升级 / A Committee-Question-Driven Architecture Upgrade
项目初期采用托管账本架构:内部转账走应用账本,Fiber 仅作为外围结算层。委员会成员(@Hanssen)与社区成员(@ebubedev)围绕用户资产主权、watchtower 托管、通道流动性与外部互操作提出连续追问后,开发者没有防守,而是把这作为方向升级的契机,主动转向 Fiber WASM 自托管架构,并补齐了外部 Fiber 发票收发——使 Dular 与 Fiber 网络的关系从"弱关联"变为"原生互操作"。这次转向是本项目最有价值的产出之一。
试点数据揭示的真实摩擦 / Real Frictions Revealed by Pilot Data
入门(3.96)与转账(3.96)的高分证明"手机号 + PWA"的抽象方向成立;可靠性(3.39)与反馈聚类则指出了下一阶段的真实战场:流动性提示、发票过期策略、本地语言覆盖与备份引导。这类数据只有在真实用户、真实法币通道上才能获得。
需要如实说明的边界 / Boundaries, Stated Honestly
B2C 出金的生产执行仍受 Safaricom 发起方凭据(initiator credential)问题限制;USSD 因加密服务需专用码、成本超出预算而停留在模拟器阶段;RUSD 为封顶的测试网试点资产而非生产货币;反馈覆盖 23/30,样本规模有限,不构成统计学意义上的用户研究结论;结项材料提交较预期延迟约两个月。
2 评审过程 / Review Process
本项目的评审贯穿立项前预审、Pending、执行验收三个阶段,委员会与开发者围绕验证方式、资金口径、架构方向与沟通纪律进行了多轮深入互动。
2.1 立项前预审 / Pre-Approval Review
提案于 2026-04-26 提交。委员会成员 @zz_tovarishch 当日完成预审,提出四项要求:
- 增加 How to Verify 章节:以低成本、可复现的方式验证手机号注册表、M-Pesa STK Push/B2C 流程与 30 人试点数据的真实性(公开 URL、交易哈希、录屏或可交互的沙盒均可)——这是最重要的一项补充;
- 将预算升级为逐项明细:Daraja API 费用、Africa’s Talking USSD 按会话计价、试点 KES 浮动金、测试者激励与人力估算;
- 明确 100% CKB 发放口径(当期不再提供 USDI 选项);
- 前置说明两项执行风险:Safaricom Daraja 生产审批周期、Africa’s Talking 共享码对加密服务的限制。
开发者次日即完成修订,并确认 Daraja 生产凭据已就位。
2.2 Pending 阶段 / The Pending Stage
2026-04-29,委员会将提案定为 Pending(非否定),要求补齐两类"可验证凭据"并纠正一处口径表述:
- 通过私信提交 Daraja 生产环境凭据的可视化证据(委员会内部尽调,不公开);
- 在主楼直接给出现有 multi-hop RUSD 支付的可核验证据(Fiber payment hash、路由 hop 公钥、通道 funding tx),并说明 Fiber payment hash 与 CKB L1 浏览器的对应关系,避免误读;
- 按 Spark 口径重写"CKB 发放与汇率风险"表述:审批时点按参考汇率锁定 CKB 总额,后续按约定 CKB 数额执行,不随发放日价格重新折算,汇率风险由申请方承担。
开发者于 2026-05-07 完成全部修订并私信提交凭据。2026-05-20,委员会正式批准提案:资助 $2,000 USD(100% CKB,按 0.001420 CKB/USD 折合 1,408,451 CKB),双方约定每周四 17:00 UTC 前在帖内文字同步,提案锁定为验收基准。次日公布项目金库地址并发放首笔启动资金(20%,281,800 CKB)。
2.3 执行与验收 / Execution and Acceptance
里程碑 1:手机号身份 + M-Pesa 入金 / Milestone 1: Phone Identity + M-Pesa Deposit Ramp(2026-06-05 提交)
交付 OTP 验证、数据库支撑的公开注册表、生产 Daraja STK Push 入金与 Fiber 结算贷记,并公开托管 API 与全部验证材料。B2C 出金因 M-Pesa Org Portal 发起方密码设置入口不可用而受阻,开发者与 Safaricom 开发者关系团队持续沟通解决。因首份报告以 Google Docs 提交且未开放权限,委员会要求将主要内容直接发布在 Nervos Talk——此后所有报告均直接帖内发布。
里程碑 2:USSD 界面(模拟器测试)/ Milestone 2: USSD Interface(2026-06-11 提交)
完整菜单(查余额、手机号转账、收款详情、发起入金、PIN 设置)经 Africa’s Talking 模拟器测试通过,会话记录 CSV 提交仓库存证。
架构质询与方向调整 / Architecture Scrutiny and the Approved Pivot(2026-06-15 ~ 07-23)
@Hanssen 连续追问内部转账是否经 Fiber、用户 watchtower 如何托管、能否与非 Dular Fiber 用户互操作;@ebubedev 进一步就花费授权、运营商不可用时的资产恢复、通道流动性与通道开设策略提出系统性问题。同期开发者披露:Africa’s Talking 对加密服务要求专用 USSD 码而非提案预算的共享码,成本超出本期预算,USSD 生产化不可行。
2026-07-12,开发者提出方向调整:放弃 USSD 作为下一阶段主测试通道,转向移动 Web/PWA + Fiber WASM(fiber-js)的自托管架构——用户设备本地生成并加密保存密钥,手机号绑定用户自有 Fiber 身份,支持外部 Fiber 发票收发。2026-07-17,委员会经审慎评审后有条件批准:以"出入金功能持续正常运行"为前提,接受里程碑调整,资助金额不变。2026-07-23,开发者提交 Fiber Web 实现完成报告:新架构全部落地,53 项自动化测试通过,存款路径可用且经 Fiber 结算,出金 Fiber 侧已实现;@Hanssen 次日确认法币入金通道保持正常(“Absolutely 100%”)。
失联与回归 / Silence and Return(2026-08-12 ~ 09-08)
8 月中旬开发者称"本周收尾,一切顺利"后进入长时间静默。委员会于 2026-08-26、09-02 两度联系未果后,依据结项政策第 3.3 条发出最后跟进:若 2026-09-13(周日)前无正式回复或进展更新,将按程序终止项目并停止剩余资助。开发者随即回归,说明因服务器配置与未预料的错误处理路径导致交易证据保存失败、运营节点断连,正在重做流程;并于 2026-09-08 提交完整结项报告(30 名用户、23 份反馈、全部验证端点与证据链接)。
最终评估 / Final Evaluation(2026-09-10 ~ 09-17)
委员会完成全部材料评审,认定开发者付出了充分努力、交付表现值得肯定,于 2026-09-17 批准结项;同时要求开发者在其个人结项报告中正式说明超过两个月延期的原因并向社区分享经验。开发者在结项阶段另发表的 Fiber 建设者经验文章(t/10717)获得委员会认可。
3 资金发放详情 / Funding Details
资助总额 $2,000 USD,100% 以 CKB 发放(审批时点参考汇率 0.001420 CKB/USD),总额 1,408,451 CKB。
- 项目金库(多签)地址:ckb1qrg6n7rh4mfltcruh8zjkcdtjmgx7fg2u6yre3ls5fprmvyhdlyzzqgmrw6q4f2tahs6qv588764w9dhuts09gqry34sp
- 开发者收款地址:ckb1qyqvw6dpjrle0e4w8cjemehg2nyvym4l99uqzexgpp
| 发放 / Installment | 比例 / % | 金额 / Amount | 交易哈希 / Tx Hash |
|---|---|---|---|
| 第一次 / 1st(启动) | 20% | 281,800 CKB | 0xbbafcdb1903b6db53befc7bcc14283a0f70ea07db4c3c01356d2177ea527c084 |
| 第二次 / 2nd(里程碑 1/2) | ≈30.65% | 431,800 CKB | 0x40fa021f0c8c3fe735051e419c24f5c88985d191ee9c363cb662919e465620ee |
| 第三次 / 3rd(里程碑 3 阶段) | ≈28.4% | 400,000 CKB | 0x26ea40585bb2fc5e0b918940d7a14760180f73efcd21cb455a83943198dbf724 |
| 第四次 / 4th(结项尾款) | 49.37% | 695,399 CKB | 0x30bc50ce75052d3a04565b476366eebd96f61f011bdce48e18b8223b977a932b |
特别说明: 第三笔款项发放时,因委员会使用的多签钱包出现故障,委员会临时使用个人钱包垫付完成支付,但由于 @xingtianchunyan 的工作失误,第三笔垫付的 400,000 CKB 和部分额外准备金 584 CKB 在结项款项中被重复发放。
4 星火计划委员会复盘 / Spark Committee Reflection
本项目是 Spark 2026 年顶格资助项目之一,也是流程要素最完整的项目之一——预审、Pending、有条件方向调整、里程碑验收、催更与最后跟进、结项评估全部走通。委员会从中提取三条可复用经验。
经验一:严肃的技术质询是项目升级的杠杆,而不是对抗 / Rigorous Technical Questioning Is a Lever for Upgrade, Not an Adversarial Act
本项目的最大价值增量并非来自初始提案,而是来自委员会与社区连续的架构质询。Hanssen 关于"用户资产是否真正经由 Fiber"的追问和 ebubedev 关于流动性与资产恢复的系统性问题,直接促使项目从托管账本升级为 Fiber 原生自托管架构——如果没有这轮质询,Dular 大概率会以"又一个托管钱包"的形态平庸结项。这提示委员会:评审环节提出"不好回答的问题"不是为难开发者,而是 Spark 资助能为项目提供的最独特的价值之一;同时也提示未来的申请者:把质询当作免费的技术顾问,而不是需要应付的关卡。
经验二:第三方生产依赖必须在立项预算阶段完成尽调 / Third-Party Production Dependencies Must Be Cleared at Budget Time
本项目两个主要受阻点都来自外部生产依赖:Daraja B2C 的发起方凭据问题、Africa’s Talking 对加密服务改用专用 USSD 码的定价政策。前者在预审阶段已被点名(预审明确要求说明 Daraja 生产审批风险),后者则完全出乎双方意料,直接导致一个里程碑降级为"模拟器交付"。委员会将把"第三方生产依赖清单"(供应商、生产准入条件、定价档位、凭据获取路径)列为涉及外部服务集成类提案的立项必查项——这类风险在写提案时用一封邮件就能确认,拖到执行期就会变成里程碑事故。
经验三:结项政策需要分级执行——先关怀、再提醒、后期限 / The Completion Policy Works Best as a Graduated Ladder
项目后期两个月的静默是本项目最接近终止的时刻。委员会的动作分三级:先是表达关怀的询问(“希望你和团队一切顺利”),然后是说明责任的正式提醒,最后才是援引第 3.3 条、附明确期限的最后跟进。从事后看,这套分级动作既守住了对公共资金的责任底线,也为开发者留住了回归的通道——最终项目带着完整交付和真实试点数据结项,而不是以终止公告收场。需要同时指出:静默本身已对项目造成实质损耗(结项延迟约两个月、社区可见度下降),定期同步不是形式义务,而是项目资产的一部分。委员会已要求开发者在其个人结项报告中正式复盘这段经历,供后续项目引以为戒。
5 星火计划委员会洞见 / Spark Committee Insights
引言:Fiber 的第一批真实用户,可能不是加密用户 / Introduction: Fiber’s First Real Users May Not Be Crypto Users
Dular 的试点规模不大——30 名用户、57 笔支付、23 份反馈——但它是 Fiber Network 第一次以"移动货币"的形态被真实用户触摸。委员会在此基础上,结合项目的一手数据,尝试回答一个更高层面的问题:Fiber 走向真实经济的路径可能长什么样。
5-1. 移动货币用户不需要"另一个加密钱包",需要说移动货币语言的 Fiber / Mobile Money Users Don’t Need Another Crypto Wallet — They Need Fiber That Speaks Mobile Money
14 亿移动货币用户的核心痛点是费率(跨境 6–9%)、时效(1–3 天)与封闭生态(M-Pesa 与 MTN MoMo 互不相通),而不是"缺少自托管"。Dular 的入门 3.96 分证明:当 Fiber 被包装成"手机号转账 + M-Pesa 入金"时,非加密用户可以无门槛上手。对 Fiber 生态的启示是直接的:支付协议的采用不取决于协议多优雅,而取决于它能否嵌进目标市场已有的金融习惯里。东非的 M-Pesa、东南亚的 GCash、拉美的 Pix——每一个现成习惯都是 Fiber 可以借力的入口。
5-2. 身份层是 Fiber 支付栈缺失的中间件 / The Identity Layer Is the Missing Middleware of the Fiber Payment Stack
Dular 的 phone → pubkey 注册表解决了一个 Fiber 原生协议刻意不解决的问题:人是记手机号的,不是记公钥的。开发者在其经验文章中把这一点总结为"缺失的身份层",委员会深表认同。这类注册表在工程上并不复杂,但它是发票、二维码、联系人支付一切上层体验的地基,且天然适合作为公共品建设——本次交付的公开查询 API 已经展示了它作为生态共享组件的可能形态。后续若有项目将身份层标准化(含隐私保护与可移植性设计),其生态价值可能超过任何一个单独的钱包应用。
5-3. 从托管到自托管:UX 抽象与资产主权可以分阶段兼得,但不能停在中间 / From Custodial Ledgers to Self-Custody: UX Abstraction and Asset Sovereignty Can Be Sequenced — but Not Left Halfway
Dular 的演进路径(托管账本原型 → 自托管 Fiber WASM 钱包)对支付类项目有普遍参考意义:用托管架构快速验证 UX 是合理的工程选择,但托管账本必须被视为过渡形态而非终态——用户在运营商不可用时的资产恢复能力、与外部网络的互操作性,是"建在 Fiber 上"这句话成立的底线。Fiber WASM / fiber-js 让浏览器本地运行 Fiber 钱包成为现实,"移动货币的交互 + 自托管的资产"这对曾经矛盾的目标,现在在技术上是可兼得的。评审同类项目时,委员会建议把"终态架构中用户密钥由谁持有"作为必答题。
5-4. 对后续 Fiber 支付类项目的三条建议 / Three Recommendations for Future Fiber Payment Projects
- 立项层面,把外部生产依赖的尽调写进提案。 供应商的生产准入条件、定价档位与凭据路径,应与预算表一并提交;USSD 专用码这类"一封邮件就能问清"的信息,不应成为里程碑级别的意外。
- 验证层面,真实试点数据必须与演示数据分口径报告。 Dular 的 23 份真实反馈(含 3.39 的可靠性低分)比任何精心挑选的演示都更有价值——低分指出了流动性提示、发票过期、本地语言这些只有真实用户才会撞上的问题。
- 架构层面,尽早明确自托管终态与互操作承诺。 内部账本可以作为 UX 抽象层存在,但外部 Fiber 发票收发与用户资产独立恢复能力应作为支付类项目的标准交付项。
5-5. 一个"小规模"的试点,为什么值得顶格资助 / Why a “Small” Pilot Deserved the Maximum Tier
有人会问:30 名用户、测试网资产,为什么配得上 $2,000 顶格?委员会的回答是:Spark 资助的不是用户数量,而是可验证的路径探索。Dular 把一个没人验证过的命题——“Fiber 能否服务移动货币市场”——变成了有架构、有代码、有链上证据、有真实评分、有失败教训的公共知识。它验证了手机号身份层的可行性,暴露了 USSD 与法币出金的真实成本结构,留下了 23 份来自目标市场的一手反馈,并把经验文章写给了整个生态。这些资产的复用者不是 Dular 自己,而是下一个做支付的开发者、下一个写提案的申请者,以及评审席上的我们自己。
6 总结 / Conclusion
Dular 在星火计划资助周期内完成了承诺的核心交付,并在委员会的架构质询后完成了一次超出原提案范围的方向升级——从托管账本原型成长为 Fiber 原生的自托管移动支付钱包,以 30 名真实用户的试点验证了这一方向。项目后期的沟通中断与结项延期是明确的瑕疵,委员会已按结项政策完整记录并要求开发者公开复盘;但瑕不掩瑜,最终交付的工程质量、真实试点数据与知识沉淀,使本项目成为 Fiber 生态"支付落地"方向上迄今为止最完整的参考实现之一。
对 Spark 而言,本项目的更大价值在于它完整走通了一条路径:预审设立可验证标准 → Pending 锁定凭据与口径 → 质询驱动架构升级 → 有条件批准方向调整 → 分级执行结项政策。这条路径上的每一个环节,都将成为后续项目的参照。
最终交付物链接 / Final Deliverable Links
- 线上应用 / Live Application: https://dular.vercel.app/
- 代码仓库 / Repository: GitHub - duongja/Dular · GitHub
- 演示视频 / Demo Video: https://drive.google.com/file/d/1hXxypmNm4XjIZ_kuNxm2WrnZ7srVx0PZ/view?usp=sharing
- USSD 模拟器演示 / USSD Simulator Demo: https://drive.google.com/file/d/1RTkMGAZYImQK6vziX8Scy2EaTxhRUDtc/view?usp=sharing
- 试点反馈数据 / Pilot Feedback Data: 仓库
verification/milestone-3/pilot_feedback.csv - 参考多跳支付证明 / Reference Multi-Hop Proof: Fiber payment hash
0x20fd6c4a9d9e207420b4f55b4ae095eee9840fca1678afc89f9065298fe4a9e2;通道 funding tx0xefdb791ac44ba1af435ae2b22f5572862519865990185d3c0d0cd5bd068e9e39、0x6156f3a8f46063d529f74df2a40407fc79ac70322615d2e862875eedf2b6a79c - 开发者经验文章 / Builder Findings: 《 Dular: What mobile-money users taught us building on fiber 》
xingtian
On behalf of the Spark Program Committee