基于区块链的评价机制存储模型
2023-02-10范海龙
赵 姣,赵 则,范海龙
(江苏大学计算机科学与通信工程学院,江苏镇江 212013)
近年来随着区块链技术的高速发展以及文献[1]的发布,区块链技术在各行各业的落地实践已经展开。伴随着外卖市场的火爆,信用评价问题也日益尖锐。不少商家为牟取利益,雇人刷单、刷评,严重阻碍外卖电商的发展。
各个行业面临着信用危机,但是现有的基于传统数据库的系统还存在着不小的问题,集中的数据库只记录当前的信息,不跟踪以前记录的信息,这就导致一旦信息被篡改,将无法溯源。并且传统数据库没有去中心化,还需要一个集中管理人员(机构),这意味着可以付出很小的代价来贿赂中心人员(机构)从而篡改信息。
因此,利用区块链的去中心化、分布式、匿名性等特点,创新性地提出了一种结合智能合约技术进行数据过滤的存储和共享方案,该方案可以在保护用户隐私的情况下将用户对商家的评价哈希上链并实现安全透明的数据存储及共享。其立足区块链底层技术,将区块链不可篡改、不可伪造及可溯源的特性用于外卖评价机制行业,对即将上链的数据进行过滤,使已上链的数据难以被篡改,让所查询到的数据得到可信度验证。鉴于提出的模型所需,选择支持智能合约的以太坊平台进行开发。
1 相关工作
1.1 基于评价机制的研究
基于评价信任机制来说,国内外目前对于各平台评价机制的研究[2-4]也不在少数。其中,文献[3]提出的建立于区块链技术基础上的共识信任可在疫情隔离期间提高了公共服务与市场交易的可获得性、可持续性和便利性;文献[4]则对比现有信任评价机制的优点与不足,设计了基于雾计算模式的新型信任评价模型,并对其进行了验证。
1.2 基于区块链平台的研究
自从2016 年,工业和信息化部发布了《中国区块链技术与应用发展白皮书》以来,我国对于区块链的各种应用研究[5-8]也相继展开。其中,文献[6]提出了一种基于区块链的中草药质量安全管理模型,通过利用区块链的不可篡改、可追溯等特性整合中草药的生产、加工、交易等流程并进行管理。文献[7]利用Hyperledger Fabric 以及哈希算法等技术解决了教育领域数据“上链”的可信问题,实现了安全高效的数据共享,对该项目具有较大指导意义,但其是在Hyperledger Fabric 上实现的,而基于该项目需要加入自写智能合约的特性,选择了以太坊平台,它不像Hyperledger Fabric 平台有很高的模块集成性,而是更加灵活可编译。另外还有文献[8]发表了区块链的隐私保护方法,对该文有较大帮助。
2 模型方案
2.1 模型架构
该文拟搭建一个基于区块链技术的评价存储共享平台。该平台分为四个层,分别是应用层、合约层、区块层和数据层。其中应用层又包含三个模块:消费者模块、商家模块和管理员模块。合约层则是负责数据上链前对数据进行筛选过滤,先从源头提高评论数据的有效性和可信度。区块层(区块链体系结构如图1)则负责将评论信息(包括顾客信息、商家信息、顾客实时可信赖值、评论内容)的哈希值上链,利用区块链去中心化、分布式、可溯源等特性可以有效抵挡数据篡改等网络攻击。数据层则是存储具体评论内容的地方,能在收到用户的查询请求时,将所查询结果的哈希值与链上哈希值进行对比验证,结果的一致性可以确保被分享的数据是真实有效的。整体模型架构如图2 所示。
图1 区块链体系结构图
图2 整体模型架构图
应用层中的消费者模块设计有注册、上传评论和查询功能。商家模块可以实现注册、查询功能。管理者模块则是负责整个系统平台的运营维护以及负责保管作为区块链备份的数据库的运维。其中,在消费者上传评论前,引入了智能合约技术[9-10],消费者的评论必须满足合约中事先写好的约束条件,才能被顺利上链。
合约层中计划部署的合约如下:
1)当上传的评论中含有敏感词或大量重复字词时,合约将其定为无效评论,不予上链。
2)当顾客上传的评论超过规定字数时(假设为100),合约判定评论无效,不予上链。
3)每当顾客成功发表一条评论,合约启动,更新当前用户的可信赖值。
区块层中的每个区块即一条评论,整个区块的数据包括用户信息和评论内容所生成的哈希值。又由于区块链本身的特性,确保了区块链上的数据几乎是不可篡改的,这也就保证了链上数据的有效性和完整性[11]。但由于哈希运算是一项不可逆的过程,只能通过验证哈希值来确定数据是正确有效的。所以又在评论通过智能合约筛选时,把有效数据拷贝到了数据库中,以便用户查询。
数据库层中,当用户申请查询某家店的历史评论时,数据库接到请求会返回对应的评论,但是在展示给用户前,数据库中返回的结果都需要进行哈希运算,并与对应区块链上的哈希值进行对比,如果对比结果一致,则说明数据无误,可被分享给用户;如果结果不一致,则说明数据库中的数据已被篡改,评论无效[12]。
2.2 数据筛选
在该项目平台中,理论上认为可以在上链前把评价机制事先部署在智能合约上,由智能合约自动完成每个区块上评价信息的筛选过滤,从而保证链上数据的可信度[13]。其中,在评价机制中,规定一个可信赖值T。
在平台上注册时间更长、成功评论次数更多、每次成功评论的字数相对更多、均单消费更多的用户能得到更多的信赖值,表明该用户的评价是更值得推荐和信赖的。并将这些因素通过加权方式计算出一个具体的可信赖值T,用户评价可信赖值表如表1 所示。
表1 用户评价可信赖值表
用户可信赖值T=T1+T2+T3+T4。假设当每次评价信息上链前,智能合约都会自动计算出当前时刻该用户的可信赖值,可信赖值T高的用户评价会被更多的人看到,以此提高评价的可信度[14]。
2.3 数据上链
文中采用哈希存证方式进行数据上链,以便于在用户查询时,与数据库中存储内容的哈希值作比较,验证信息是否真实可信。由于区块链的公开透明性以及上链数据中包含有用户的个人数据,所以采用哈希存证方式上链。利用哈希算法的不可逆性以及区块链的防篡改性,可以有效防止个人隐私数据的泄露以及评论信息被篡改,大大提高了数据的安全性和真实性。
2.4 数据验证
用户查询评论并可验证所得信息是否真实有效,其具体步骤如下:
1)用户登录,并输入商家名进行查询,发送查询请求。
2)从数据库中查询到有关商家历史评论。
3)将数据库中查到的数据进行哈希运算,假设得到哈希值a。
4)提取区块链中对应数据的哈希值b,如果a=b,则验证数据有效完整,可共享;如果a≠b,则说明数据库被篡改,以区块链数据为准。用户查询模块模拟流程如图3 所示。
图3 用户查询模块模拟流程
2.5 相关算法
1)用户注册
用户注册时只需要填写自己的以太坊地址和用户名,系统会自己记录下注册时间以及序号,并把用户信息保存在用户数据表中,确保每一个用户名都可以映射到对应的地址上。同时调用isExistUserAddress和isExistUsername 函数,判断用户地址和用户名是否已经存在/注册。若存在,则调用createUser 函数创建用户并把用户信息保存到列表中。此外,还设置了findUserAddressByUsername 函数,可以通过用户名来查找其地址,进而通过findUser 函数来获取用户的所有注册信息,其目的在于对某些不当言论进行追溯,正式使用时会将电话号码加入注册信息,使溯源更为真实。商家注册的流程基本一致,不再赘述。
2)评价机制
最重要的部分是评价机制,首先设置了顾客和商家两个简单的结构体,只需要包括他们各自的地址和用户名,接着设置评论结构体,主要由三个字段组成:来源地址、目的地址、评论内容。它在用户和商家间建立了联系,并允许用户添加评论给商家,用户可以调用newAssess 函数发布评论,也可以使用viewAssess 函数查看所有评论。
3 实验与分析
3.1 实验进程
1)创建新用户,创建用户数据流向表如表2所示。
表2 创建用户数据流向表
2)通过用户名检索对应地址信息,检索地址信息数据流向表如表3 所示。
表3 检索地址信息数据流向表
3)写新评论(来源地址、目的地址、评论内容),新评论上链数据流向表如表4 所示。
表4 新评论上链数据流向表
3.2 创新性分析
该文提出的平台评价存储模型与传统的数据库相比,在安全性方面有了很大推进,如下:
1)在区块链技术中,如果有结点想对区块链发起攻击(篡改信息),那么其必须至少掌握全链51%的算力,这使得链上数据的防篡改性能大大提高,也就确保了用户发表的评论信息真实有效。其次,该模型运用的哈希存证上链方式,利用哈希算法的不可逆性及唯一性,可在数据被共享时再一次验证其真实有效性。
2)利用智能合约自动进行数据上链前的筛选,并且计算出个人信用度量值,实时更新在个人信息中,可以帮助平台高效推荐优质评价。
4 结束语
区块链技术的去中心化、分布式和防篡改性等特性让它能很好地应用于数据的存储与共享等方面。该文提出的基于区块链技术的外卖平台评价机制模型也可以应用于一般平台。它利用了区块链的特性和智能合约[15]对评价信息的自动过滤筛选,从个人来讲,能更好地保护用户的个人隐私以及时刻提醒用户个人信用的情况;从平台来讲,能帮助平台更好地运营,帮助客户从大量评价中选出更优结果[16]。当然,该文提出的模型在可信赖值的计算上还有待改善,理论上还有比之更高效可信的算法模型。