基于区块链非同质化代币的网课资源订阅模式
作者: 黄德丰
摘要:在新冠肺炎疫情的影响下,为响应疫情防控,网上授课模式尤为火热,在此背景下,存在资源版权被盗,资源存储风险等问题。将以太坊作为区块链底层架构,编写智能合约,用非同质化代币表示订阅,订阅资源服务流程依赖代币原生操作完成。结合IPFS技术有效保障了资源的原创性和完整性。
关键词:区块链;IPFS;以太坊;智能合约;资源订阅;非同质化代币
中图分类号:TP311.13 文献标识码:A
文章编号:1009-3044(2022)25-0139-03
开放科学(资源服务) 标识码(OSID) :
1 引言
随着网络的蓬勃发展,远程教育在很大程度上已转为网络教育[1]。网络使教与学活动产生了时空的分离,教师不再是直接的教育者,教育目标通过网络课程来实现,教学活动围绕着网络课程展开,作为网络教育载体的网络课程,在整个远程教育的发展过程中起着举足轻重的作用[2]。网课流行的同时,盗版问题也是与日俱增。
根据区块链技术的特点,可以与数字版权保护方面完美结合。在确权环节,区块链去中心化分布式账本技术以及独特的时间戳体系,能够解决传统确权方案耗时长、成本高的痛点问题。区块链的不可篡改特性更进一步保护了版权的唯一性[3]。
2 相关技术介绍
2.1 区块链技术
比特币的开发者中本聪[4]于 2008 年整合了前人的相关技术和算法提出了比特币的底层架构——区块链。
区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和数据访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式[5]。
2.2 以太坊技术
2013年VitalikButerin创立了以太坊(Ethereum) , 以太坊的问世标志着区块链2.0的实现。相比于比特币,以太坊解决了在互联网中的可扩展性问题,并能够使用Solidity、Java等高级语言编译智能合约,用户可以实现自己想要的功能。以太坊作为给区块链提供应用服务的平台,可以为大量去中心化应用程序提供新思路,也可以实现不同应用程序之间的有效互动。
2.3 非同质化代币(NFT)
NFT全称为Non-Fungible Token,非同质化代币,是用于表示数字资产的唯一加密货币令牌,具有不可分割、不可代替、独一无二等特性[6]。NFT是相对于同质化代币而存在的概念。同质化代币,即FT(Fungible Token) ,是可以互相替代、可任意拆分的Token。比特币、以太币等长期以来交易的加密资产多数是同质化代币。NFT的主要应用场景逐渐从加密游戏拓展到收藏品、艺术品、域名、身份等领域。
2.4 IPFS技术
IPFS(Inter Planetary File System)星际帝国系统文件,是一个旨在创建持久且分布式存储和共享文件的网络传输协议[7]。它是一种内容可寻址的对等超媒体分发协议。通过对存储文件内容进行处理,为其分配与内容有关的唯一的哈希值。以太坊区块链平台与IPFS可以结合起来,将大数据存储在 IPFS上,将数据哈希值存放在以太坊上,可以很好地解决区块链在数据存储方面的弱点[8]
2.5 智能合约
智能合约(Smart Contract)是一种旨在以信息化方式传播、验证或执行合同的计算机协议[9]。在交易情境下,智能合约利用代码表达、确认并执行各方之间的协议,不需要第三方介入,且交易信息存储上链,可追溯且不可篡改。
3 网课资源订阅方案设计
3.1 系统设计
本文在传统网课订阅模式的基础上,应用了基于NFT的智能合约对网课资源订阅进行管理。因为智能合约是一个抽象化的概念,所以本系统使用了可视化的前端平台,供作者与订阅者使用。
实验采用Solidity语言开发的智能合约,提供资源版权上链,链上交易存证,结合以太坊平台的以太币,实现资源作品上链和版权交易。本节中,以双泳道流程图的方式,详细阐述作品上链阶段和版权交易阶段的流程(见图1) 。
原创作者将作品上传到IPFS中,根据IPFS的工作原理,文件的内容通过密码学算法,统计出文件的哈希值。如果上传的作品,经过计算之后得到的哈希值重复,上传失败。如果没有重复,会用哈希值作为文件在IPFS中的地址。此时,智能合约为作者铸造代表作品权益的NFT。平台将作者的以太坊地址以及哈希值提交给智能合约,智能合约将这些信息上链。至此,资源作品上链阶段完成。
订阅者通过平台提交订阅信息,平台返回给订阅者作品信息以及订阅价格,订阅者通过平台进行订阅。此时,平台将订阅者以太坊账户地址以及订阅的资金提交到智能合约中,智能合约调用方法对提交的金额进行判断,如果订阅资金小于订阅金额时,智能合约将终止交易,通过平台返回订阅失败的信息。如果满足订阅条件,智能合约自动进行交易,为订阅人颁发数字凭证。同时所有交易信息上链。
3.2 智能合约设计
本系统采用了基于NFT的智能合约,通过对订阅状态的管理,实现了去中心化的操作。表1展示了合约中的变量以及用法:
图2展示了本模式下的合约架构,将智能合约与ERC-721合约充分结合。通过订阅者与智能合约交互,实现购买资源等功能。智能合约与资源作者交互,实现激活购买,授权订阅等功能。
4 系统实现
本节主要针对资源版权交易部分,进行系统实现。订阅者通过调用智能合约中的方法进行购买和查询相关信息,资源上传者可以通过调用合约进行授权。
4.1 实验环境
本实验平台操作系统为Ubuntu20.04.3LTS 64位,中央处理器(CPU) 为Inter Core i5-10300H [email protected] ,计算机内存8GB,本系统采用以太坊Truffle框架,Remix编译器,MetaMask以太坊钱包插件,程序设计语言为Solidity0.8.0。
4.2 功能实现
4.2.1 创建课程资源
资源作者在订阅平台创建课程前,平台会对其是否登录以太坊进行判断,如果未登录,则不能创建课程。如果登录成功,作者可以创建课程。创建课程时,平台调用合约中的creatClass函数,实现作者对课程名称、课程介绍、订阅金额、订阅截止时间和发行量的定义。同时,智能合约通过ERC-721合约接口,实现为此课程铸造NFT。算法1给出了创建课程的过程。
算法1 creatClass函数
输入:课程名称name、课程介绍content、订阅金额price、发行量NFTCount、截止时间endtime。
1. require(bytes(_name).length > 0);//课程名称、内容、金额均不为空
2. require(bytes(_content).length>0);
3. require(_price > 0);
4. class Count ++; //每创建一个课程,存放课程数组的数量加1
5. class[class Count] = Class(class Count, _name, _price,_content, _endtime, _NFTCount,msg.sender);//实例化课程数组
6. _mint(msg.sender, NFT);//为此课程铸造NFT
输出:创建成功
4.2.2 实现订阅资源
在用户购买资源时,平台会调用合约中的purchase函数,对输入金额进行判断,满足条件,合约会自动执行购买和扣费操作。同时,合约会根据订阅者的订阅信息,为订阅者生成TokenID,以便后续作者授权操作。算法2给出了订阅资源流程。
算法2 purchase 函数
输入:订阅者地址owner、合约地址sale、支付金额value、NFT的tokenId。
1. if msg.value<price //首先判断支付金额是否大于订阅价格,同时发放的NFT数量不能大于作者的定义的发行量
2. and tokenIdNum > NFTCount
3. return FALSE
4. else
5. ERC721(sale).transferFrom(address(this), msg.sender, tokenIdNum);//为订阅者颁发数字凭证
6. tokenIdNum++;
7. return TRUE;
输出:订阅成功
4.2.3 授权操作
当用户订阅成功之后,平台会对资源作者发起申请授权的请求。合约会对发来的请求进行判断,订阅者的地址以及生成的NFT的ID是否对应。若符合条件,作者通过平台进行授权。算法3给出了授权操作流程。
算法3 activate 函数
输入 订阅者地址owner、订阅者的NFT标识 tokenId、合约地址sale
1. require(_owner = ownerOf(_tokenId))//订阅者的地址与NFT的ID对应
2. require (_getApproved(_tokenId)=sale)//批准作者对NFT的操作
3. safeTransferFrom(_owner, sale, _tokenId)
4. activate(_owner,_tokenId) //批准订阅
输出:已批准
4.2.4 查看交易详情
交易成功后,订阅者可以在页面点击查看详情按钮,触发点击事件。平台通过订阅者的以太坊地址,异步调用合约实例中的方法获取合约地址、作者的以太坊地址、支付的金额以及当前的订阅状态等交易详情信息,并显示在页面上。查询详情结果如图3所示:
4.3 性能分析
以太坊区块链在以太坊虚拟机(EVM) 中运行交易触发代码,以太坊中的开销、转发、储存和运算等都以 gas 为单位表示[10],EVM 中的每一步操作都有一个固定的耗费值,被称为耗费的 gas,gas price 是单位 gas 的价格(用以太币计量) ,实际交易成本的计算方式为二者的乘积[11]。本文的智能合约在本地以太坊网络进行测试,合约构造函数(constructor) 、creatClass、handlePrice、getNFTCount、purchase、cancle、activate、expire以及合约部署花费的消耗量如图4所示。
5 结束语
本文将以太坊、智能合约、ERC-721合约和分布式存储系统IPFS相结合,相比传统的网课资源平台,具有多方面的优势。首先,从资源数据的存储上,传统的网课平台采用数据库的方式,对教学资源进行存储。在本模式下,所有资源均上传至IPFS系统中,由多个节点共同维护。避免了数据库泄露,资源被盗用的风险,保证了资源数据的安全性。其次,在作品确权方面,每个作品都对应区块链上的一个NFT代币,具有唯一的标识,有效避免了版权冲突的问题。此外,利用智能合约与买卖双方进行交易,既避免了第三方平台的介入,也避免了因服务器故障带来的影响。
参考文献:
[1] 夏欧东,章站士,祝火盛,等.关于网络课程开发现状与发展趋势的思考[J].中国教育信息化,2010(13):62-64.
[2] 吴德智.课堂教学的良师益友——校园网[J].教育界(教师培训),2013(1):172-173.
[3] 张海强,杜荣,艾时钟.基于以太坊智能合约的知识产权管理模式研究[J].科技管理研究,2021,41(15):164-169.
[4] Catherine R,Cohen W.TransNets:learning to transform for recommendation[C]//RecSys '17:Proceedings of the Eleventh ACM Conference on Recommender Systems.2017:288-296.
[5] 白鸥,杨燕燕.区块链技术在网络安全综合治理中的应用研究[C]//2019互联网安全与治理论坛论文集.2019:88-93.
[6] 赵子龙.NFT艺术品:风口还是泡沫?[J].艺术市场,2021(6):30-31.
[7] 梁志勇.基于区块链的高校文件存储系统的探究[J].电脑与电信,2018(3):53-54,63.
[8] 郭强.基于区块链的教学资源共享系统的设计与实现[D].曲阜:曲阜师范大学,2020.
[9] 郑伟军,陈鼎,王文华,等.一种基于区块链技术的电力交易方法,装置及系统:CN112132682A[P].20201225.
[10] 杨婷.区块链技术在数字权限管理中的应用研究[D].太原:中北大学,2021.
[11] 王云婷,庞晓琼,陈锦生,等.基于以太坊的数字权限保护系统[J].计算机工程与应用,2022,58(7):129-136.
【通联编辑:梁书】