【技术实现步骤摘要】
一种NFT流通数据的权限控制方法及装置
[0001]本申请涉及区块链
,尤其涉及一种NFT流通数据的权限控制方法及装置。
技术介绍
[0002]NFT(Non
‑
Fungible Token,非同质化代币)是一种基于区块链技术的契约的数字化凭证。
[0003]目前,NFT是以太坊(Ethereum)用以代表独特物品所有权的介质,NFT可以把诸如艺术品、收藏品、甚至房地产等物品资源化。当前以太坊上多数NFT市场将合约下的NFT资源授权给NFT市场指定的地址后,缺少授权后的权限管理机制,存在非常严重的安全隐患。
技术实现思路
[0004]本申请实施例提供了一种NFT流通数据的权限控制方法及装置。所述技术方案如下:第一方面,本申请实施例提供了一种NFT流通数据的权限控制方法,所述方法包括:步骤S1:服务器接收客户端发起的指令;步骤S2:所述服务器判断指令类型,若是NFT资源授权指令,执行步骤S3,若是授权回收指令,执行步骤S5;步骤S3:所述服务器对所述NFT资源授权指令进行合法性验证,若验证通过,则调用智能合约NFT资源授权接口并执行步骤S4,否则,返回错误信息并执行步骤S1;步骤S4:所述服务器判断从所述NFT资源授权指令中获得的被授权地址是否为目标地址,若否,则向智能合约中增加第一数据结构,完成NFT资源授权并记录授权日志,执行步骤S10,若是,记录错误日志并执行步骤S1;步骤S5:所述服务器对所述授权回收指令进行合法性验证,若验证通过,则对所述授权回收指令进行广播,并 ...
【技术保护点】
【技术特征摘要】
1.一种NFT流通数据的权限控制方法,其特征在于,所述方法包括:步骤S1:服务器接收客户端发起的指令;步骤S2:所述服务器判断指令类型,若是NFT资源授权指令,执行步骤S3,若是授权回收指令,执行步骤S5;步骤S3:所述服务器对所述NFT资源授权指令进行合法性验证,若验证通过,则调用智能合约NFT资源授权接口并执行步骤S4,否则,返回错误信息并执行步骤S1;步骤S4:所述服务器判断从所述NFT资源授权指令中获得的被授权地址是否为目标地址,若否,则向智能合约中增加第一数据结构,完成NFT资源授权并记录授权日志,执行步骤S10,若是,记录错误日志并执行步骤S1;步骤S5:所述服务器对所述授权回收指令进行合法性验证,若验证通过,则对所述授权回收指令进行广播,并根据预先存储的智能合约地址查询智能合约执行码,执行步骤S6,否则,返回错误信息并执行步骤S1;步骤S6:所述服务器利用预先存储的目标地址的公钥对所述授权回收指令中的授权回收事务进行签名验证,若验证通过,执行步骤S7,否则,返回错误信息并执行步骤S1;步骤S7:所述服务器从所述授权回收指令中获取附加资源量以及所述目标地址拥有的NFT资源量,根据所述附加资源量校验所述目标地址拥有的NFT资源量是否充足,若充足,则执行步骤S8,否则返回错误信息并执行步骤S1;步骤S8:所述服务器判断从所述授权回收指令中获得的被授权地址是否为所述目标地址,若否,则按第一预设方式对所述第一数据结构进行修改,完成授权回收并记录授权回收日志,执行步骤S9,若是,记录错误日志并执行步骤S1;步骤S9:所述服务器按所述附加资源量对所述目标地址拥有的NFT资源量进行扣减,生成对应的授权事件并记录授权回收日志,执行步骤S10;步骤S10:所述服务器将处理指令时生成的信息同步给同一区块链上的其他服务器,执行步骤S1。2.根据权利要求1所述的方法,其特征在于,所述步骤S2还包括:若是历史数据流通次数获取指令,执行步骤S11,若是附加资源量获取指令,执行步骤S12,若是历史授权数据获取指令,执行步骤S13,若是NFT资源量获取指令,执行步骤S15;步骤S11:所述服务器从本服务器上运行的当前节点的状态数据中获取所述目标地址的历史数据流通次数,并将所述历史数据流通次数下发给所述客户端,执行步骤S1;步骤S12:所述服务器从所述当前节点的状态数据中获取附加资源量,并将所述附加资源量下发给所述客户端,执行步骤S1;步骤S13:所述服务器对所述历史授权数据获取指令进行合法性验证,若验证通过,执行步骤S14,否则,返回错误信息并执行步骤S1;步骤S14:所述服务器从所述当前节点的状态数据中获取所述目标地址的历史授权事件,遍历所述历史授权事件获取历史授权数据,将所述历史授权数据下发给所述客户端,执行步骤S1;步骤S15:所述服务器对所述NFT资源量获取指令进行合法性验证,若验证通过,执行步骤S16,否则,返回错误信息并执行步骤S1;步骤S16:所述服务器从所述当前节点的状态数据中获取所述目标地址的历史NFT资源
流通事件,遍历所述历史NFT资源流通事件确定所述目标地址拥有的NFT资源量,将所述NFT资源量下发给所述客户端,执行步骤S1。3.根据权利要求2所述的方法,其特征在于,所述遍历所述历史授权事件获取历史授权数据,将所述历史授权数据下发给所述客户端,包括:解析所述历史授权事件并对解析后的所述历史授权事件进行去重处理,获得去重后的历史授权事件;从所述去重后的历史授权事件中提取单个授权事件,并判断所述单个授权事件的智能合约地址以及被授权地址是否已保存为历史授权数据,若未保存,则校验所述被授权地址的当前状态,若是授权状态,则将所述智能合约地址以及所述被授权地址对应保存为历史授权数据,若是未授权状态,则继续从所述去重后的历史授权事件中提取下一单个授权事件进行判断;以及若已保存,则继续从所述去重后的历史授权事件中提取下一单个授权事件进行判断;当遍历完所述去重后的历史授权事件时,将保存的全部历史授权数据下发给所述客户端。4.根据权利要求2所述的方法,其特征在于,所述遍历所述历史NFT资源流通事件确定所述目标地址拥有的NFT资源量,将所述NFT资源量下发给所述客户端,包括:根据预先存储的智能合约地址查询智能合约执行码;基于所述智能合约执行码确定智能合约类型,若是第一合约,则解析所述历史NFT资源流通事件并对解析后的所述历史NFT资源流通事件进行事件去重处理以及资源编码去重处理,获得第一去重结果;从所述第一去重结果中提取单个NFT资源流通事件,并判断所述单个NFT资源流通事件对应的拥有者是否为所述目标地址,若是,则判断所述单个NFT资源流通事件的资源流通量是否已保存为历史资源流通数据,若未保存,则将所述资源流通量保存为历史资源流通数据,若已保存,则继续从所述第一去重结果中提取下一单个NFT资源流通事件进行判断;以及若否,则继续从所述第一去重结果中提取下一单个NFT资源流通事件进行判断;当遍历完所述第一去重结果时,基于保存的全部历史资源流通数据计算获取所述目标地址拥有的NFT资源量,将所述NFT资源量下发给所述客户端。5.根据权利要求2所述的方法,其特征在于,所述遍历所述历史NFT资源流通事件确定所述目标地址拥有的NFT资源量,将所述NFT资源量下发给所述客户端,包括:根据预先存储的智能合约地址查询智能合约执行码;基于所述智能合约执行码确定智能合约类型,若是第二合约,则从所述历史NFT资源流通事件中获取目标类型的NFT资源流通事件并解析,对解析后的所述目标类型的NFT资源流通事件进行事件去重处理以及资源编码去重处理,获得第二去重结果;从所述第二去重结果中提取单个NFT资源流通事件,并获取所述单个NFT资源流通事件对应的合约中的剩余资源量,判断所述剩余资源量是否大于零,若是,则将所述剩余资源量作为所述目标地址拥有的NFT资源量下发给所述客户端并结束遍历,若否,则继续从所述第二去重结果中提取下一单个NFT资源流通事件获取剩余资源量进行判断,直至遍历完所述第二去重结果中的全部NFT资源流通事件;以及
当所述第二去重结果中各NFT资源流通事件对应的合约中的剩余资源量均等于零时,向所述客户端返回所述目标地址不存在NFT资源响应。6.根据权利要求2所述的方法,其特征在于,所述步骤S13包括:所述服务器通过所述历史授权数据获取指令中的签名数据计算触发所述历史授权数据获取指令的拥有者公钥,利用所述拥有者公钥对所述历史授权数据获取指令进行签名验证,若验证通过,执行步骤S14,否则,返回错误信息并执行步骤S1。7.根据权利要求1所述的方法,其特征在于,所述步骤S2还包括:若是NFT资源铸造指令,执行步骤S2
’‑
1,若是NFT资源流通指令,执行步骤S2
’‑
4;步骤S2
’‑
1:所述服务器对所述NFT资源铸造指令进行合法性验证,若验证通过,则调用智能合约NFT资源铸造接口并执行步骤S2
’‑
2,否则,返回错误信息并执行步骤S1;步骤S2
’‑
2:所述服务器解析所述NFT资源铸造指令获得待铸造资源,判断所述待铸造资源是否已铸造,若否,则向所述智能合约中增加第二数据结构,完成NFT资源铸造并记录铸造日志,执行步骤S2
’‑
3,若是,记录错误日志并执行步骤S1;步骤S2
’‑
3:所述服务器将步骤S2
’‑
1至步骤S2
’‑
2生成的信息同步给同一区块链上的其他服务器,执行步骤S1;步骤S2
’‑
4:所述服务器对所述NFT资源流通指令进行合法性验证,若验证通过,则调用智能合约NFT资源流通接口并执行步骤S2
’‑
5,否则,返回错误信息并执行步骤S1;步骤S2
’‑
5:所述服务器解析所...
【专利技术属性】
技术研发人员:麻宝华,陆舟,
申请(专利权)人:飞天诚信科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。