- 示例工程
- 区块链
【免费下载链接】Dapp-Learning
Dapp learning project for developers at all stages. Becoming and cultivating sovereign individuals. Nonprofit organization.
导读
本文以 Dapp-Learning 仓库 dao/DID/nft与数字身份随想.md 中的产品设计思考为主线,系统梳理"区块链匿名身份无法授信"这一核心矛盾,并完整展开其提出的基于行为 NFT 聚合链上身份、实现匿名化信用评估的原创方案。文章同时引入仓库内 DID、Idena、iden3/polygonId、SBT 与 NFT 身份验证等源码与文档作为技术佐证,帮助读者理解从"行为标签"到"无抵押信用借贷"的完整设计链路,并掌握可落地的合约实现参考。
一、背景:DeFi 空投热潮下的身份痛点
DeFi 生态曾带来大量空投福利,少则几十美元,多则上万美元。但在"领空投"这件事上,用户长期面临三个痛点:
- 信息不对称:不知道空投信息,也不知道自己是否符合空投条件;
- 查询困难:没有办法一键查询自己所有地址分别有哪些空投可以领;
- 地址切换吃亏:经常换地址的用户,会错过很多符合条件的空投——本来的"老韭菜",却无法享受空投福利。
这些问题的根源,在于链上身份信息的匿名性:所有身份都与公钥地址绑定,而地址可以无限创建、随时切换。对于常换地址的用户,每一次链上行为都留在了过去的地址上,无法跟随自己迁移到新地址。
原文档对此给出一个辩证的判断:这是区块链的匿名特性,它是一种进步;但它同时也阻止了一些传统意义上的授信问题。
二、分散且匿名的链上身份信息:特性与代价
用户在以太坊上的每一次合约交互都会被永久记录在链上,不可更改。但不同用户的使用习惯差异巨大:
- 单一地址用户:所有信息与一个钱包地址绑定,空投或白名单筛选时便于查询,相当于"行为沉淀"集中在一个账户下;
- 多地址用户:地址频繁切换,面对空投和白名单筛选时天然吃亏,历史行为被割裂在多个互不关联的地址中。
现实世界中,每个人的身份都可以用身份证号、手机号、护照等简单标识验证;而在虚拟世界,一个账号很难对应到一个真实的人——一个人可以拥有 N 个虚拟账号,彼此之间完全可以没有联系。
加密世界尤其强调隐私:每一个地址都是独立的,只要拥有私钥就证明对该账号的所有权,但没有人希望把自己的真实身份信息与加密地址联系起来。这种身份信息的分散,导致无法通过一个立体的画像来辨别一个人的具体身份,由此产生一体的两面:
- 好处:匿名性,一个人可以用不同的虚拟身份活在虚拟世界中;
- 坏处:无法进行基于个人信用的授信。
三、现实世界的身份与信用:链上缺失的一环
在现实世界,人们依靠身份标识和各类证明来辨识身份:身份证辨别公民身份、银行卡与资产证明辨别财务状况、社交关系辨别社会地位、购物清单辨别生活习惯。
在社交应用大数据出现之前,一个人在银行借钱大多通过抵押财产,这与 DeFi 的超额抵押在逻辑上高度相似。而对于有一定社会地位的人,可以通过工作证明、工资流水等申请贷款——这是一种信用贷款方式,用户不需要提供抵押品即可借款。
用户行为大数据的普及,让互联网应用能够方便地识别哪些人有偿付能力,从而提供更多无抵押信用借款(例如支付宝的蚂蚁借贷)。但这也同时引发隐私问题——欧洲颁布的 GDPR(通用数据保护条例)就对这类身份信息的过度使用提出了更严格的限制。
反观链上:目前无法直接实现信用借款。在冰冷的钱包背后,我们不知道那是谁;他的所有行为都记录在钱包的交易记录上,但由于地址是分散的,很难知道它们是否属于同一个人。
四、身份信息的价值:从"所见即所得"到"信用授信"
身份信息对一个人的价值,简单说就是:出入可以出入的场所,享受身份所匹配的服务。在互联网世界,有真实信用背书,虚拟身份可以获得更多权限。
而在区块链世界,由于身份匿名化,我们只能验证私钥的控制权——即只能验证当前所见资产的所有权,而无法验证地址背后持有人的偿付能力和身份等级。换言之:
我们只能基于"所见即所得"的资产评估一个账户的偿付能力,无法给予他超过所拥有资产限额的额外服务。
现实世界中,大量借贷是依靠信用的借贷,尤其是企业借款,大部分是信用贷款,体量非常庞大。而链上目前除非依靠第三方现实世界的中介证明(如银行信息证明),否则很难提供信用贷款,也没有很好的方法做信用借贷和信用授权。
原文档据此给出一个量级判断:如果可以实现链上基于信用的身份授信,DeFi 的资产使用量级将会增加几个数量级。这正是后续 NFT 数字身份方案要解决的问题。
五、基于 NFT 的数字身份设计:核心方案
5.1 POAP 的启发:事件证明即身份标签
原文档特别提到POAP这个应用的启发:它把特殊事件做成 NFT,例如 YAM 的投票、参与 YFI 的 fair launch 等。这些 NFT 本质上是"一个人参与一个事件"的证明——持有某个 POAP,就表明持有者参与了对应事件,这是一种可验证的行为凭证。
5.2 行为 NFT:把地址与交易行为做成可验证标签
顺着 POAP 的思路,方案提出:把一个用户地址及其交易行为制作成 NFT。这样的 NFT 实际就是用户的一个"行为标签",并带有身份标记。设计约束包括:
- 只有地址所有人可以生成这个 NFT(限制铸造权限,防止他人冒领);
- 每一个 NFT 都绑定地址信息(与具体地址强关联)。
5.3 授权与聚合:让行为跨地址"跟随"用户
当用户使用新地址时,可以将之前地址生成的行为 NFT授权给新地址。这一授权是基于用户签名的操作,具有不可伪造性——只有持有旧地址私钥的人才能签署授权。
通过这种设置,用户可以使用一个账号聚合自己所有地址的行为 NFT,变相地把所有链上行为聚合到一起。这正是对第一节"地址切换吃亏"痛点的直接解法:行为不再被锁死在历史地址上,而是可以随身份迁移。
5.4 应用场景:从空投查询到信用借贷
项目方可以通过查询 NFT 的方式,识别一个账号所有的历史行为,从而对这个账号形成立体判断。原文档列举的应用包括:
- 空投符合条件的查询——项目方直接按 NFT 持有情况筛选空投对象;
- 白名单设置的查询——参与资格、早期支持者识别;
- 简单的身份符合度验证——验证"是否参与过某事件""是否活跃超过多久";
- 更复杂的用户画像与用户标签建立——聚合跨地址行为,还原完整履历;
- 大胆的尝试:实现无第三方中介的链上信用借贷——基于历史行为评估偿付能力。
5.5 隐私控制:自我授权、选择性披露
为避免身份泄露,方案强调全部行为 NFT 均基于用户自我授权:
- 用户可以选择绑定哪些账号的行为到一个 NFT 中;
- 用户也可以隐藏不想公开的地址;
- 从而在聚合身份的同时,保持对隐私的完全控制。
这一"选择性披露"思想与仓库中 dao/DID/did.md 对去中心化身份(DID)的定义完全一致:DID 通过身份钱包收集经认证机构签发(Issuer)的已验证信息,由用户控制向第三方(如注册新在线服务时)分享哪些信息——例如只出示"已满 18 岁"的证明,而无需透露具体出生日期。
六、匿名化信用借贷的设想:偿付能力评估与风控设计
信用借贷无抵押,因此必须根据所有历史行为计算借款人的偿付能力;同时还要解决最后一道保障——借款人跑路时如何追偿。原文档提出五条具体设计:
- 借贷设置有限期,例如 3–6 个月,控制风险暴露窗口;
- 在链上做借款人的真实身份信息校验,但真实信息只有身份提供方在链上进行加密私密保存,不向任何人公开;
- 只有当借款人未偿付时,才触发系统调用真实身份信息进行追偿(即"违约才解密"的延迟披露机制);
- 如果按期还款,真实身份信息将被销毁——过程中只有借款人自己接触过真实信息,因此不会有任何泄露;
- 未偿付行为可以设立保险基金,通过保险质押奖励来补偿借贷空缺。
这套设计的关键在于把"真实身份信息"作为一种托管密钥:平时完全不可见,仅在违约场景下由系统自动触发解密用于追偿,还款后即销毁。它在"匿名授信"与"违约追责"之间取得平衡,属于对链上信用借贷的早期产品级思考。
原文档也明确表示,这仅是"利用链上数字身份开展信用借贷的假想",基于数字身份还可以衍生出更多玩法。
七、仓库中的技术支撑:从设计构想走向工程实现
Dapp-Learning 仓库在 dao/DID 与 nft 目录下沉淀了与本文构想直接相关的技术资料,可将其视为方案落地的三条技术路径。
7.1 DID 与"人性证明":身份根基
- dao/DID/did.md 给出了去中心化身份(DID)的基本定义:通过身份钱包收集来自认证签发方的已验证信息,由用户掌控分享粒度,实现隐私可控的身份管理;
- dao/DID/idena.md 介绍了 Idena——首个基于民主原则的 Proof-of-Person(人性证明)区块链,通过翻转测试(flip,一种需要语义理解的图灵测试)在无需 KYC、不披露任何个人数据的前提下证明"你是独一无二的人类",并形成 Candidate → Newbie → Verified → Human 的递进身份等级。这为"验证地址背后是真实、唯一的人"提供了无 KYC 的技术路径,与行为 NFT 方案的匿名授信目标互补。
7.2 iden3 / polygonId:可验证声明与零知识证明
dao/DID/polygonid/README.md 详细梳理了 iden3 协议基于 polygonId 的完整 DID 流程,包含 Issuer(签发者)、Holder(持有者)、Verifier(验证者)三角色模型,核心概念包括:
- BabyJubJub 曲线:对 zk 友好,验签可节省大量约束;
- 稀疏默克尔树(Sparse Merkle Tree):可证明数据存在与不存在;
- 三棵树结构:Claims Tree(私有,存 Claim)、Revocation Tree(公开,存撤销记录)、Roots Tree(存历史根);
- 状态:三棵树根拼接哈希上链,作为用户的链上状态;
- 完整流程:初始化(公钥 Claim 决定 did)→ 发放(A 给 B 签发 Claim,用 zk-SNARK 证明状态迁移合法,通过二维码传递认证 JSON)→ 接收(B 用专用钱包构造证明领取)→ 校验(B 向 C 证明"持有 A 的 Claim 且年龄大于 18",zk 证明的私有输入包含 Claim、AuthClaim、Proof、未撤销证明、签名等,公开输入仅包含状态根、常数 18 与当前日期)→ 撤销(把 Revocation Nonce 插入 Revocation Tree 并同步状态根)。
这套机制正是"选择性披露 + 可验证声明"的工业级实现,与本文行为 NFT 方案中"基于签名授权、可验证、可控制隐私"的设计一脉相承。
7.3 SBT 与身份 NFT:不可转让的行为凭证
nft/SBT/readme.md 介绍了SBT(Soulbound Token,灵魂绑定通证):绑定于账户、一旦生成不可交易,可代表承诺、资格、从属关系,作用类似"链上履历表"。一个账户(灵魂)可拥有多个 SBT,个人与组织可相互发行,从而形成"灵魂网络",其典型应用恰包括声誉系统、Web3 信用贷、灵魂空投、灵魂治理——与本文方案高度吻合。
仓库同时提供了可直接运行的示例实现:
- nft/SBT/example/SBT.sol:基于 OpenZeppelin ERC721Enumerable 的
SoulboundToken合约,通过_soulboundTokens映射标记不可转让代币,重写transferFrom与safeTransferFrom三个重载,对灵魂绑定代币直接require拒绝转账,从合约层保证"身份凭证不可交易"; - nft/SBT/example/compile.js 与 nft/SBT/example/deploySBT.js:使用 solc 编译合约、通过 web3 部署并调用
mint为用户铸造 SBT,依赖配置见 nft/SBT/example/package.json(@openzeppelin/contracts@^5.1.0、solc@^0.8.28、web3@^4.14.0,提供npm run compile与npm run deploy脚本)。
此外,nft/Practical-Applications/NFT-Identity-Verification.md 给出了更完整的身份 NFT 合约设计:通过ISSUER_ROLE限制仅授权发行者可铸造、Credential结构体记录主体/签发/过期/状态、verifyCredential提供链上验证接口,并在_beforeTokenTransfer中禁止一切非铸造转账;其配套的 nft/Practical-Applications/examples/identity-verification.js 实现了完整的验证器代码:hasIdentityNFT检查持有、verifyIdentity验证凭证有效性、discloseSelectedInfo实现字段级选择性披露、generateProof让用户对披露信息签名生成可验证证明,第三方通过IdentityProofVerifier.verifyProof验签核验——这几乎就是本文"行为 NFT 聚合 + 选择性披露 + 可验证授权"设想的可直接复用的工程原型。
八、总结:一条从"行为聚合"到"匿名授信"的完整路径
本文所探讨的方案,串起了一条完整的逻辑链:
- 痛点:链上身份匿名且分散,导致空投福利损失、白名单筛选困难、无法基于个人信用授信;
- 方案:把地址与交易行为铸成绑定身份的行为 NFT,基于用户签名授权跨地址聚合,形成可验证、可选择性披露的立体行为画像;
- 应用:空投查询、白名单设置、身份符合度验证、用户画像与标签、乃至无第三方中介的链上信用借贷;
- 风控:有限期借贷 + 违约才解密追偿 + 还款销毁身份 + 保险基金补偿;
- 落地:仓库中的 DID 概念、Idena 人性证明、iden3/polygonId 零知识声明体系、SBT 灵魂绑定合约与身份 NFT 验证器,分别从"身份根基""人性验证""可验证声明""不可转让凭证""工程化验证"五个层面为构想提供了坚实的技术支撑。
作为一份产品设计思考,它最大的价值在于指出了"匿名"与"授信"并非不可调和的矛盾——通过用户自主授权的行为凭证,链上完全有可能建立起既保护隐私、又支撑信用的数字身份体系。
- 示例工程
- 区块链
【免费下载链接】Dapp-Learning
Dapp learning project for developers at all stages. Becoming and cultivating sovereign individuals. Nonprofit organization.
相关推荐
Etherpad 匿名作者令牌 Cookie 服务端化:GDPR PR3 匿名身份加固设计与实现
Etherpad 匿名作者令牌 Cookie 服务端化:GDPR PR3 匿名身份加固设计与实现 导读 本文围绕 Etherpad( docs/superpow
后端协同办公WebSocket前端富文本Dapp-Learning 区块链 DApp 开发学习路线图:从基础任务到 DeFi/NFT/DAO 进阶的完整实战指南
Dapp Learning 区块链 DApp 开发学习路线图:从基础任务到 DeFi/NFT/DAO 进阶的完整实战指南 本篇技术指南以 Dapp Learni
示例工程区块链Dapp-Learning 区块链浏览器完全指南:从链上数据原理到 Mempool.space 实战
Dapp Learning 区块链浏览器完全指南:从链上数据原理到 Mempool.space 实战 区块链浏览器是连接用户与链上世界的透明化数据窗口,也是开发
示例工程区块链
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考