本文介绍了Soul Bound Token(SBT)的概念及其在身份验证中的应用,重点讨论了如何构建一个基于SBT的身份认证系统。文章详细介绍了项目的动机、应用场景以及代码的实现步骤。最终,作者提供了关于如何在BuildBear平台上创建和部署智能合约的详细指南。
灵魂绑定代币(Soul Bound Token,SBT): 属于特定地址的代币,与你的特定地址相连。你无法转移或出售它!你只能撤销这个代币,或者将它归还给发行它的账户。
灵魂绑定物品的概念,一旦被拾取,就不能被转移或出售。
灵魂绑定物品的目的在于保持兴趣和兴奋感。
POAP 是一个优秀的示例,如果它可以是灵魂绑定的 NFT,效果会更好。我首次实现灵魂绑定代币是使用 EIP4973, 这是代码。还有其他方法, 这个 是我发现的一个伟大的库,它包含我认为与灵魂绑定代币相关的一切。
我们可以利用灵魂绑定代币构建很多应用程序,其中之一是:
链上验证在 Web3 中变得必不可少(特别是在 DeFi、DAO 和治理中),不仅政府需要其用于监管目的,还需要协议来将满足特定条件的用户列入白名单。这创造了对链上地址验证的必要性,以进行代币转账(例如,稳定币提供者检查目标地址的黑名单实体,DAO社区的有限效用代币,等等)。最终,现有提案基于一个可信的实体创建链上/链下的签名以管理白名单,因此不是去中心化协议。为了在一个去中心化的社区中尽可能地做到为所有类型的客户带来好处,使用a16z 的不可为恶许可证(Can’t Be Evil Licenses)让该社区遵循由创作者选定的一组规则和协议。
而且,你可以称这个项目为 代币网关(token gateway)。许多项目/协议已经使用代币网关,以允许不同类型的用户访问不同的内容。
(A) 本地设置
你可以从这里克隆教程库:Github,然后进入 SBT-Auth 文件夹。
(B) 安装
代码在本地系统上设置完成后,你需要确保安装所有依赖项,使用 npm i
或 yarn install
,具体取决于个人偏好。
(C) 理解代码
不可为恶许可证(Can’t Be Evil Licenses)
在 NFT 空间,许可证是重要的。
NFT 许可证帮助定义 ERC-721 非同质化代币的拥有者和与 NFT 一起工作的艺术家和创作者的权利。NFT 许可证的设计旨在平衡两个问题:
继续这一道路,我们可能会遇到一些法律误解。
“你拥有 NFT。而由于你并不拥有版权,因此使用权授权给你……”
真正的问题是:我们希望如何在构建于开放源代码环境中的区块链中定义所有权?a16z 通过引入不可为恶许可证解决了这个问题,开放源代码的许可证,这里 是 GitHub 库。有六种许可证,在这个项目中我使用了 PUBLIC(CBE_CC0) 许可证,只是为了实现它,项目可以根据其用例选择一种或多种许可证。
新用户:
用户将通过他们的姓名和信息进行注册。用户将铸造一个灵魂绑定 NFT,后者将作为验证证明。智能合约将使用 addressOfUser、nameOfUser、informationOfUser 创建一个哈希。这个哈希与灵魂绑定 NFT 的 tokenID 关联。
现有用户:
如果用户已经注册,他们将能够访问该平台。如果没有,他们会被重定向到注册。在智能合约中,我们使用灵魂绑定 KYC 证明进行验证,以确保没有用户能够绕过 SBT。
另一个检查方法:
我们可以向用户提供哈希。在登录时,我们将要求哈希作为输入进行登录。然后我们将检查用户的 tokenID 是否与映射的哈希相同。
我还没有实现这一点,但该功能应该看起来是这样的:
// 预计的功能代码
(D) 部署智能合约:SBKYC.sol
为了部署以及为了我们的演示,我们将把智能合约部署在 BuildBear → buildbear.io
在 BuildBear 上创建一个私有测试网 🐻❄️(你问为什么是 BuildBear?看看这里: 哪里 Localhost 失败 和 使用 BuildBear 测试网的分析赢得 Web3 黑客马拉松 )
我们已经从 BuildBear 获得了我们的 RPC 并更新了我们的 .env
文件以配置 RPC 端点。
我们已经将 hardhat.config.js
更新为如下:
要部署你的智能合约,运行命令 npx hardhat run scripts/deploy.js --network buildbear
。
一旦你运行上述命令,智能合约应该已成功部署,你的终端将提供智能合约已部署的地址,如下所示:
(E) 与我们的智能合约进行交互
💡 奖金,你可以与我的合约进行交互,感谢 BuildBear!!! (有关 BuildBear 的好处的更多信息, 在这里 , 在这里 和 在这里 )
复制生成的地址,然后转到你版本的 BuildBear Explorer。你可以访问我的:BuildBear | Explorer。我的合约部署在 0x563e58726B6eDa7bfC1e13F645af4D1C11DAC702
,因此我的合约可在 这里 找到。
让我们开始处理灵魂绑定 KYC 合约。为此,请转到上述页面上的合约选项卡,在那里你将看到“读取合约( Read Contract )”和“写入合约( Write Contract )”的选项。要找出有关合约的详细信息,如拥有者和余额,你可以转到 读取合约。但我们将首先转到 写入合约 页面并创建自己的用户。
我使用智能合约的注册功能创建了我的账户。
你可以使用这个 链接 查看这个交易。这个交易是成功的,这意味着我已成功创建了账户,现在我可以使用这个账户进行登录。
在交易中,你可以转到“追踪( Trace )”选项卡,逐步分析你进行的整个交易。它显示你调用了哪些功能,以及因此触发的事件。
我们可以通过登录合约验证账户是否已创建。为此,让我们再次转到 读取合约 选项卡。在那里,只需输入你用来创建账户的地址,你将能够进行登录。
这是一个关于如何使用灵魂绑定代币创建自己的授权系统的基础教程。我希望你能理解并创建自己的系统。
通过 BuildBear,我能够与你分享我的交易并允许任何人,包括你,与合约进行交互。是的,你实际上可以在我列出的合约中提议一个交易 →
在这里使用我的私人水龙头获取你所需的原生代币,并请随时发起交易给我 →
https://ethindia.faucet.buildbear.io/Straight_Nien_Nunb_04eaabb2
如果在实现智能合约时遇到任何困难,请在评论中告知我们,我们将帮助你解决。对于任何其他反馈或建议,请随时在评论区与我联系。
要了解更多关于 BuildBear 的信息,请阅读 文档。
从 这里 获取上述 GitHub 代码。
如果你赞赏我们所做的,请在 Twitter 上关注我们,并如果还没有的话,加入 Telegram 群组。
如果你喜欢我们的工作,请给我们一个掌声 👏 并分享这篇文章。
谢谢。
作者:
Arpit Kumar ( Twitter || Linkedin)
- 原文链接: medium.com/buildbear/fin...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!