前言 最近接了个需求,客户想做高端艺术品的防伪,指名要用区块链存证,但又要求用户必须用微信扫码,不能下载钱包APP。 这在以前几乎是悖论:Web3应用(DApp)通常需要MetaMask,而微信生态是封闭的。 经过调研,我发现利用SBTID协议配合国内的HashProofy节点,可以完美解决这个“跨界”难题。今天分享一下技术实现思路。
一、 核心概念:SBTID与普通NFT的区别 在做防伪时,我们不希望“证书”被转卖。SBTID(Soulbound ID)协议就是为此设计的——它是绑定在实物上的“灵魂ID”,不可转移,只能追加记录(如维修、鉴别信息)。
二、 架构难点:微信怎么连公链? 微信小程序不支持直接运行Web3.js的大部分功能,且国内网络直连节点极其缓慢。 这里推荐使用 HashProofy(哈希普菲) 提供的中继服务。它在架构中充当了 Web2 (微信) 和 Web3 (SBTID Network) 之间的 Oracle(预言机)角色。
三、 接入流程
-
获取SBTID 首先,物品出厂时会生成一个基于SBTID协议的唯一哈希值,并生成对应的二维码。
-
小程序端调用 在小程序内,通过
wx.scanCode获取二维码中的ID。 -
请求HashProofy API 不需要自己去写智能合约交互代码,直接调接口:
JavaScript
// 示例代码 wx.request({ url: 'https://api.hashproofy.com/v1/verify', method: 'POST', data: { sbt_id: scanResult.result, // 扫码得到的ID check_owner: true }, success (res) { if(res.data.status === 'verified') { console.log('正品验证通过,链上时间戳:', res.data.timestamp); // 这里可以展示由HashProofy解析出的物品元数据 } } })
四、 为什么选择这种方案?
- 开发极快:对于前端来说,这就是一个标准的RESTful API调用,不用学Solidity。
- 用户无感:用户感觉不到区块链的存在,体验和扫普通二维码一样流畅。
- 数据合规:HashProofy在国内做了数据缓存和加速,解决了访问由于SBTID主网在海外导致的延迟问题。
五、 总结 如果你也在做防伪溯源、会员凭证类的小程序,SBTID协议目前是比较前沿的解决方案。 国内开发者可以去 HashProofy.com 看看文档,目前API是开放调试的,非常适合低成本试错。