# web3理念下的年龄认证产品架构设想

By [Kiar.T](https://paragraph.com/@kiar-t) · 2022-06-13

---

🔘试图解决的问题：

在web3互联网世界，如何在/保护隐私、/去中心化存储的理念下，验证用户的年龄以提供适合的内容？

🔘说在前面的话：

作者非开发技术人员，此产品架构设想仅从需求和功能出发，未考虑技术可实现性，也未全面调研市场是否已有类似产品。如有相似的产品，欢迎告知。

🔴想要实现的功能：

通过一个【年龄验证网站】

1.  当创作者需要分发有年龄限制的内容时，确保用户是否成年或符合年龄要求；
    
2.  用户可以在需要验证的时候，可以通过一个简单的操作（相较于提交身份证明ID并后台验证）来证明自己的年龄满足要求；
    
3.  **没有**一个中心化的商业平台或机构（包括提供验证服务的服务商）掌握用户的身份信息，即用户的账户地址与真实人类的信息是分离的；
    
4.  在用户违法违规时，第三方可以通过验证服务商获取用户信息，并停止后续验证服务。
    

🔴产品说明：

🔻大逻辑——

1.  【钱包地址1】通过身份验证**随机**加入一【钱包群组n】；
    
2.  【钱包群组n】内用户全部符合“成年人”的年龄要求；
    
3.  当【钱包地址1】需要验证其年龄时，只需提交他属于【钱包群组n】的证明；
    
4.  当【钱包地址1】因违法违规时，第三方发起查询需求并提交理由，【钱包群组n】超半数用户匿名签名同意后，可获取【钱包地址1】的身份信息。
    

🔻【钱包地址1】与【钱包群组n】

*   【钱包地址1】提交申请年龄身份验证服务后，先**随机**分配一个【钱包群组n】；随机分配的目的在于避免线下有组织的用户组成一个互相包庇的群组；
    
*   【钱包群组n】判定加入的条件完全公开；
    
*   【钱包群组n】包含一个【公钥n】，在群组生成时由计算机按算法随机生成，**任何人包括【年龄验证网站】后台都无法获取**；
    
*   【钱包地址1】分配群组后，上传本人身份信息，经【公钥n】**加密后**，由计算机自动验证，如和政府机构的数据库进行比对或图形识别后判定年龄；
    
*   判定【钱包地址1】年龄符合【钱包群组n】的要求，【钱包地址1】即成功加入；
    
*   【钱包群组n】内的用户无法查看彼此的身份验证信息；
    
*   用户上传的身份验证信息，经过加密后，利用IPFS分布式存储；
    
*   【钱包群组n】应是符合某条件（如年龄成年）的全部用户的子集；群组的用户数既要足够多，以增加匹配的随机性，防止用户之间包庇；又要保证群组的数量足够多，以保证数据的安全性和计算的效率。盲猜一个群组包含几千-几万用户时最优；
    

🔻【钱包地址1】在需要验证用户年龄时

*   【钱包地址1】的年龄验证结果，如是否成年，由【年龄验证网站】保存
    
*   第三方可申请获取【钱包地址1】的同意查询其在【年龄验证网站】上的验证结果
    
*   【钱包地址1】签名同意第三方查询，则第三方获取验证结果
    

🔻必要时，第三方如何获取【钱包地址1】的身份信息

*   由于用户涉嫌违法违规行为时，第三方需获取【钱包地址1】上传的身份验证信息；
    
*   第三方在【年龄验证网站】提交查询申请，并附带具有信服力的理由；
    
*   由【年龄验证网站】将申请和附带证据发送至【钱包群组n】的全部地址，并发起区块链投票，有且只有超过半数地址同意后，【公钥n】才执行解密，将【钱包地址1】的身份验证信息解密；
    
*   投票过程，由于无法保证群组内其他地址接收信息以及做出投票动作的时效，可设置群组内的投票权重，根据钱包地址的活跃度分配投票权重，避免投票人数不足导致无法及时解密的情况。
    

🔴结语

web3开启了一个保护用户隐私与资产的新时代，去中心化也许美好，也许更艰难，人类互相信任的问题不是简单就可以解决的。

这个验证架构设想肯定也有很多BUG，希望有更厉害的大家，从架构、技术来一起解决这个问题。

---

*Originally published on [Kiar.T](https://paragraph.com/@kiar-t/web3)*
