思考:使用智能合约和DHT,而不使用中心化后台和数据库的情况下,如何创建数字孪生体?
- 智能合约可以看作是一个计算工具,当作后台使用,可以进行逻辑处理和存储简单的数据。
- DHT可以看作一个文件服务器,用于存储智能合约无法存储的大型数据。
创建数字孪生体的步骤?
- 对称加密(AES_key)数字孪生体的数据,并上传到DHT,并返回DHT_key。
- 创建两个智能合约:
- spec智能合约,用户存放数字孪生体的元数据,包括上面DHT_key。
- auth智能合约,存放数字孪生体的role和permission,并初始化权限设置。
- 将用户的公钥+AES_key加密,并根据用户地址生成访问权限数组,存入DHT。
如何进行访问控制?
我们以查询为例:
- 调用spec合约,查询到需要访问的数字孪生体的合约地址。
- 调用auth智能合约,根据访问用户的地址查询是否拥有访问权限。
- 有权限,则根据spec合约查询数字孪生体的DHT_key。
- 根据DHT_key下载数字孪生体数据集。
- 从DHT上下载访问权限数组,找到自己的数据,私钥解密成AES_key。
- 使用AES_key解密数字孪生体数据。