CN115205042A - 一种基于区块链和访问控制的化妆品产品溯源系统及生成方法 - Google Patents
一种基于区块链和访问控制的化妆品产品溯源系统及生成方法 Download PDFInfo
- Publication number
- CN115205042A CN115205042A CN202210876238.5A CN202210876238A CN115205042A CN 115205042 A CN115205042 A CN 115205042A CN 202210876238 A CN202210876238 A CN 202210876238A CN 115205042 A CN115205042 A CN 115205042A
- Authority
- CN
- China
- Prior art keywords
- product
- user
- information
- data
- transaction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Software Systems (AREA)
- Finance (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Data Mining & Analysis (AREA)
- Accounting & Taxation (AREA)
- Development Economics (AREA)
- Computing Systems (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Linguistics (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开一种基于区块链和访问控制的化妆品产品溯源系统及生成方法,系统用户通过应用层与系统进行交互,服务层负责处理应用层的业务请求,并连接以太坊客户端进程以及使用CP‑ABE算法加解密数据;区块链层负责提供代码逻辑、以太坊客户端交互和数据存储,确保存储的数据不会被篡改。在本发明的溯源系统中,生产商登记产品信息,发生交易后由卖方写入交易信息,购买产品的用户和产品生产商可以对产品进行源头追溯和去向追踪,保证了产品交易各环节公开透明,同时便于生产商和系统管理员对卖出的不合格产品进行召回处理。
Description
技术领域
本发明涉及区块链技术领域、化妆品商业领域,具体涉及基于区块链技术的化妆品溯源系统、基于属性基加密的访问控制。
背景技术
随着国民经济快速增长,国民对美妆产品的需求日益加大,巨大的市场前景催生出一批仿冒日化品。仿冒日化品对人体危害极大,商家售卖仿冒日化品扰乱市场秩序、损害消费者权益、危及企业品牌形象。欠管理的销售网络带来了权责不清、产地难溯源等诸多问题。为有效解决上述问题,建立可靠的追溯体系是必不可少的;
传统供应链的溯源系统存在信息不透明、数据易篡改、安全性差、相对封闭、溯源链不完整等弊端,对产品的追踪要依赖于中介机构或公司来收集信息,这种中心化的数据收集方式存在信息被篡改的可能,需要采用更可靠、安全的技术解决这些问题;
区块链是一种将数据区块有序连接,并以密码学方式保证其不可篡改、不可伪造的分布式账本技术,最主要的特征是去中心化,在一定程度上保证了数据安全和结点安全,使区块链具有不可篡改的特性。去中心化还意味着数据记录操作权利下放到每一个网络结点上,使区块链具备开放性。目前区块链技术也已经在电子发票、疫苗管理和虚拟货币等多个和人民生活息息相关的领域得到应用;
在区块链上的所有数据均公开透明,带来隐私问题,因此私有数据在上链前需要加密处理。而在商业体系下,企业数据需要内部共享,不同企业之间存在合作关系,企业内不同岗位的员工对于数据的查看权利也不同,传统的一对一密码体系已经不再适用,需要一种能实现一人加密、多人解密的密码体系。
发明内容
本发明的目的在于解决现有技术中存在的不足,提供一种基于区块链和访问控制的化妆品溯源系统,同时实现数据的访问控制。
为了实现上述目的,本发明提供以下技术方案:
本发明所提供的溯源系统,系统架构分为应用层、服务层、区块链层;
所述应用层为PC端的前端Web页面,为主要的功能入口,用于向用户提供交互页面和显示系统功能,功能包含:用户注册、用户登录、产品生产信息录入、产品生产信息完善、产品交易信息录入、产品生产、交易信息查询、产品交易去向链、溯源链生成、用户评价、用户管理、产品管理;
所述服务层分为以太坊接口模块、数据加解密模块;
所述以太坊接口模块是前端的处理逻辑,负责处理前端业务请求、连接以太坊客户端进程、发送交易上传数据、生成用户属性集并发送至授权机构以生成用户属性私钥、将明文与访问策略或将密文和属性私钥发送至数据加解密模块;
所述数据加解密模块是本地的加解密算法,负责根据访问策略、系统公钥来将明文加密,根据用户属性私钥将密文解密,以及向以太坊接口模块发送加密后的密文以及解密后的明文;
所述区块链层分为智能合约模块、以太坊客户端、区块链网络;
智能合约模块是实现系统功能的程序部分,提供定义用户、产品、交易信息以及各类信息的结构体,提供实现用户注册、登录、产品信息录入、查询等功能的函数,提供存储映射关系键值对的映射结构,以及提供发送交易上传数据时触发事件的定义和触发条件;
所述以太坊客户端是用户与区块链直接交互的平台,以特定的端口号运行进程。部署合约的用户首先在以太坊客户端创建账户、挖矿获得一定数量的以太币,之后进行智能合约的部署,溯源系统中的其他账户的都要遵循合约的规定;
系统的以太坊接口模块提供发布交易函数,交易数据经过哈希处理、共识之后,形成新区块存储数据,新区块链入区块链;
所述区块链网络负责存储数据,存储的数据具有公开透明、不可篡改、去中心化、安全等特性;
作为一种实施方式,前端开发采用HTML5语言开发;
作为一种实施方式,以太坊接口模块采用javescript语言开发,其中连接以太坊客户端进程的工具为web3.js,通过HttpProvider连接本地运行的以太坊客户端进程;
作为一种实施方式,以太坊客户端采用Go-Ethereum,在此基础上搭建以太坊私有链,私有链搭建时需要指定端口或使用默认端口,以供以太坊接口模块连接;
作为一种实施方式,数据的加解密算法采用python的Charm库所提供的CP-ABE算法;
本发明所提供的溯源系统,系统参与者包括系统用户与可信的授权机构;
所述系统用户为使用溯源平台的各用户。系统用户可以作为数据提供者、数据查询者、数据管理者,账户类型具体分为原料提供商、生产商、分销商、经销商、零售商、运输商、消费者、系统管理员;
在产品供应链中,起点包括原料提供商、生产商,中间流通包括分销商、经销商、零售商、运输商,终点包括消费者、分销商、经销商、零售商;
属于一个企业的用户组成分为主体用户和其他用户,主体用户代表整个企业,只有一个账户,账户类型根据企业具体性质来决定;一个企业进行产品生产或发生交易时,产品生产信息、交易信息的录入由主体用户来执行;其他用户属于消费者,进行产品交易时,交易数据不会记录到主体用户的信息中;
所述可信的授权机构负责生成系统公钥、系统主密钥、用户的唯一标识、用户属性私钥,以及对用户标识和属性私钥进行管理,其中系统公钥和系统主密钥为公开信息;
系统用户有以下需求:所有用户都可以查询产品生产信息、个人账户信息;各商家可以对企业内部数据进行管理;在产品交易中,账户类型为生产商或销售商家可作为交易卖方,生产商作为产品供应链起点,不规定作为交易买方,销售商家可从生产商批发产品和从其他商家调货,可以作为买方,消费者属于买方;系统管理员、原料提供商、运输商不参与产品交易;系统管理员可以查询管理系统内所有的数据、限制和解除用户的权限;
所述销售商家为分销商、经销商、零售商;
所述属性分为类型属性Type、企业属性Com、部门属性Sec、岗位属性Post,属性集合定义层级为:类型层、企业层、部门层、岗位层,岗位属性Post作为属性集中的最细粒度属性;
本发明所提供的溯源系统,业务流程包括:系统初始化、用户注册、产品生产、产品交易、数据加密、产品信息查询、产品溯源查询、产品去向查询、产品交易信息查询、数据解密、用户评价、产品与用户管理;
系统初始化环节:可信授权机构负责系统初始化,生成系统公钥与系统主密钥;
用户注册环节:系统用户在以太坊客户端创建账户,在前端页面填写账户信息;可信授权机构将账户地址进行哈希运算得到用户标识;系统根据账户信息,生成用户属性集,将其发至授权机构,生成用户属性私钥,并将其存储至账户信息中;
产品生产环节:生产商接收订单并登记产品信息,原材料采购的部门完善产品原材料信息,产品加工、检验、包装的负责人在完成工序后写入相应信息,对于商业机密数据,首先进行属性基加密,之后以密文形式作为写入信息;
产品交易环节:交易卖方接收订单,联系运输商,登记订单数据,对交易私密数据进行属性基加密;系统修改买卖方库存与交易记录;
数据加密环节:加密数据由数据加解密模块实现,根据访问策略与系统公钥,加密明文;
产品信息查询环节:用户输入产品标识,进行产品信息的查询;对于加密的私有数据,用户使用自己的属性私钥进行解密,属性满足密文所设访问策略,则可以查看私密信息,反之,只能查看公开信息;
数据解密环节:解密数据由数据加解密模块来实现,根据属性私钥将密文解密;
产品溯源查询环节:系统根据溯源起点和产品标识,追溯产品整个交易流程,生成产品的溯源链。其中只有系统管理员和购买该产品的用户有权查询;
产品去向查询环节:系统根据生产商和产品标识,探寻产品整个交易流程,生成产品的去向链。其中只有系统管理员与该产品的生产商有权查询产品去向;
产品交易信息查询环节:在查询到产品的溯源或者去向链后,用户根据链的买卖双方、交易日期以及产品标识,查询该产品对应的交易记录,查看详细的产品交易信息,对于私密数据,属性满足策略则可查看;
用户评价环节:用户购买产品之后,可对产品进行评价,评价信息会记入系统,所有评价信息均公开,系统管理员可根据负面评价信息来联系商家,对产品进行召回、处理;
产品与用户管理:平台的系统管理员可以查询系统一切用户、产品的全部信息,并定时查看用户评价,对用户和产品进行管理;
所述环节顺序没有统一的规定,只要存在用户、产品与产品交易,以及用户拥有权限,就可以随时使用系统的各功能模块;
所述系统的节点在统一管理员的管控下进行网络加入与退出操作,一个节点可以在客户端创建不同账户,扮演多种角色;
本发明的有益效果:利用区块链网络中数据去中心化、不可篡改、可溯源的性质,在技术层面上解决化妆品供应链中各环节信息不公开、溯源链不完整、难确责等问题;同时利用CP-ABE算法,实现企业内和企业间的数据共享。在提高产品信任度、生产流通效率的同时,促进了化妆品行业的发展;
与现有技术相比,本发明的优点有:数据去中心化、信息不可篡改,保证信息完整性、可靠性;设置私有数据的访问策略,实现加密者自主选择数据信息共享对象,符合实际场景需求;系统为溯源用户与生产商提供完整的溯源链与去向链,使得产品从生产、流通、再到售卖全过程的透明化,不仅追溯产品“前世”,还能查询产品“今生”;管理员可以通过用户评价,可对产品进行召回、处理,用户也可通过产品的好评和差评,选择心仪的商家和产品。
附图说明
图1为本系统的系统架构图
图2为本系统的业务流程图
图3为本系统的访问结构树形表达
图4为本系统的溯源链分支图
图5为本系统的去向链分支图
具体实施方式
下面对本发明技术方案进行详细说明,但是本发明的保护范围不局限于所述实施例;
如图1-2所示,本发明的基于区块链和访问控制的化妆品溯源系统,业务流程如下:
系统初始化环节:基于密文策略的属性基加密算法CP-ABE需要预先生成如下系统参数:系统公钥PK、系统主密钥MSK;过程如下:
S1:可信的授权机构负责系统初始化,授权机构选取安全参数k和系统属性集U,输出系统公钥PK和系统主密钥MSK;算法描述为:
Setup(k,U)→(PK,MSK);
S2:授权机构选取一个素数p,以及一个p阶循环群G1,g为G1的生成元,双线性映射e:G1×G1→G2,函数表示:e(a,b)=c,其中a∈G1,b∈G1,c∈G2,G2为p阶循环群,从阶数为p的素数域Zp中随机选择两个素数α,β∈Zp,以及从循环群G1中随机选取集合其中下标{1,2,3,...,u}表示属性集U中对应的属性标号,输出的系统公钥与系统主密钥对(PK,MSK)为:PK={g,e(g,g)α,gβ,h1,h2,h3,...,hu},MSK=gα;
文中所述“调用”函数的执行主体为以太坊接口模块;
用户注册环节:系统用户需要在以太坊客户端和前端进行注册,过程如下:
S1:系统用户在以太坊客户端创建账户Account,账户有唯一地址Address,地址由账户的私钥Private Key通过一系列算法所得到,以此作为用户身份信息;
S2:可信的授权机构使用安全散列算法将Address进行哈希运算,得到用户的唯一标识GID;
S3:系统用户在前端页面选择所创建账户的地址Address,对用户信息进行填写和选择,用户信息包括填写用户名、企业、部门、岗位、具体地址,选择内容为账户类型,包括0:原料提供商,1:生产商,2:分销商、经销商、零售商,3:运输商,4:消费者,5:系统管理员;
智能合约定义注册函数、用户结构体、仓库结构体、交易信息结构体、用户集、注册事件,过程如下;
S1:调用注册函数,检查账户是否已注册或者用户名是否已存在,是则以“失败”触发注册事件,不允许注册,否之允许注册;
S2:以太坊接口模块根据用户所填账户信息,生成用户属性集[类型,企业,部门,岗位],经过以太坊接口模块处理得到用户属性集合S={x1,x2,x3,...xn},并将其发送至授权机构;授权机构选择随机参数t∈Zp,并根据属性集合S和主密钥MSK生成用户属性私钥SK,算法描述为KeyGen(MSK,S)→SK,生成的属性私钥SK为:
其中α、β中为系统初始化阶段随机选取的素数,g为系统初始化阶段所取的p阶循环群G1的生成元,hx∈{h1,h2,h3,...,hu},其中x∈S,{h1,h2,h3,...,hu}为系统初始化阶段随机选取的集合;
S3:注册函数根据用户所填信息和属性私钥,创建新的用户结构体对象,初始化用户信息,并存储用户对象至用户集中;
用户结构体的内容包括用户信息、属性私钥、表示用户已注册的标识、用户可使用系统功能的权限标识、个人仓库和销售、购买记录、仓库键值、销售键值、购买键值,键值负责定位仓库或记录的最新位置;个人仓库是仓库结构体集合,销售、购买记录是交易信息结构体集合;
所述初始化包括将用户所填基本信息、生成的属性私钥赋值给新的用户对象,并将注册标识、权限标识置1,仓库、记录定位键值设置为0,表示目前用户没有产品库存、交易记录;
属于一个企业的用户组成分为主体用户和其他用户,主体用户代表整个企业,只有一个账户,账户的角色类型为0/1/2/3,根据企业具体性质来决定;主体用户的用户名和企业为企业名,部门属于该企业的总管理类部门,岗位属于管理部门的总负责人岗位;产品发生交易,交易信息登记或者生产商登记产品等均由对应主体用户来操作;一个企业中产品的增加或减少,记录在主体用户的库存中;
企业的其他用户属于该企业的员工,类型为4;他们属于该企业某岗位的员工,但不代表整个企业,属于个人消费者,购买产品的操作不会录入企业主体用户的记录中;部分员工的属性满足访问策略,有权查看和增加产品信息;
产品生产环节:系统用户注册类型为“生产商”的用户,该用户为企业的主体用户,有权进行生产信息登记,对于其他类型用户,前端不提供登记信息功能,过程如下:
S1:生产商接收订单之后,将一类产品进行登记,在前端页面输入基本信息,包括产品名称、产品编号、生产批号、生产商、登记时间、生产许可证号和产品数量,以(产品编号,生产批号,生产商)或(产品名称,生产批号,生产商)为产品标识;
S2:负责原材料采购的部门根据产品标识,定位产品以登记产品原材料信息,包括原材料名称与提供商;
S3:产品进行加工、检验、包装:每完成一道加工工序,相关负责人根据产品标识定位产品,记录工序;检验完成后,由检验负责人写入产品保质期、检验过程与负责人;包装时,包装盒上的信息以系统内该产品的对应内容为标准,包装结束后,录入包装负责人信息,产品生产完成;
以上过程涉及到的商业机密数据,如关键技术等,需要通过属性基加密处理后再录入;
工序指的是原材料录入、加工、检验、包装的每一步过程;
工序记录包括工序名、负责人、细节,细节可以是关键技术或其他信息;
原材料信息在工序记录的体现:工序名对应原材料名,细节对应原材料提供商;
智能合约定义生产函数、生产完善函数、产品结构体、工序结构体、产品集、生产事件,过程如下;
S1:登记产品时调用生产函数,创建产品对象,检查用户的权限标识,有权使用系统功能则继续;无权则以“失败”触发生产事件;
S2:生产函数将产品基本信息写入新的产品对象,其中包括填入合作企业名称,将产品存入产品集;
S3:生产完善函数负责完善产品信息:函数由企业主体用户调用,首先检查用户权限,然后检查用户名(即企业名)是否在产品的合作企业集中,全部通过则将工序记录写入产品;否则以“失败”触发生产事件;
在步骤S1中,产品内容包括基本信息、工序记录、交易记录、交易键值、工序键值,后两者用于定位交易记录和工序记录当前的最新位置,工序记录是工序结构体集合,交易记录是交易信息结构体的集合;以及包含合作企业集,生产商允许这些企业的主体用户对产品信息进行完善;
所述销售商家是指分销商、经销商与零售商;
产品交易环节:用户为生产商或销售商家时可以作为交易卖方,其中生产商作为产品供应链的起点,不规定作为交易买方,销售商家可从生产商批发产品和从其他商家调货,可以作为买方,消费者属于买方。过程如下:
S1:交易卖方接收订单,联系运输商,登记部分订单数据,订单数据包括产品标识、买卖双方、交易日期、产品数量、产品价格、运输商和物流联系人,其中交易日期由系统自动生成,交易卖方不需要用户输入,系统会自动将用户Address作为交易卖方;
S2:登记的订单数据中,包含交易私密数据,例如产品价格,卖方可对其设置访问策略,将其加密;
智能合约定义交易函数、交易事件,过程如下:
S1:系统接收订单数据,调用交易函数:首先查看用户权限,然后查看用户类型是否满足买卖双方的类型规定,其中之一不通过则以“失败”触发交易事件;
S2:以上条件全部通过,则函数根据产品标识和卖方的仓库键值,遍历查找卖方的账户库存,找到产品,则将订单中的产品数量需求与仓库中的产品数量进行比较:数量大于需求,更新产品数量,新数量为原数量减去需求量;数量等于需求,则直接删除产品在库存的记录,表示此记录对应产品全部卖出;数量小于需求,则库存不足,交易失败;如果在库存内未找到对应产品,同样交易失败;交易失败时,以“失败”触发交易事件;
S3:交易成功,则函数修改买卖双方账户的库存,为买方加入一条新的库存记录,以便于当买方作为卖方时,函数能够在其库存中查找产品;
S4:函数修改卖方的销售记录和买方的购买记录,添加新的记录,记录内容即交易信息结构体的内容为所有的订单数据;
S5:函数修改产品的交易记录,添加新记录,内容为订单数据,由于交易记录属于产品结构体,订单数据和产品结构体本身都包含产品标识,因此这里不必在记录中重复写入产品标识;
数据加密环节:加密数据由数据加解密模块实现,过程如下:
S1:加密者设置访问策略,在前端页面的选项框中选择数据解密者的身份条件组合,并输入明文m;
S2:以太坊接口模块将访问策略转换为访问字段L,并将访问字段L和明文m发至加解密模块;
S3:加解密模块将访问字段L转换为LSSS访问结构,将加密算法Encrypt所需参数输入到加密函数,算法描述为:Encrypt(m,PK,(M,ρ))→CT;
所述输入参数为:明文信息m,系统公钥PK和LSSS访问结构(M,ρ),其中M是l×n矩阵,Mi矩阵中的第i行,i∈[1,2,...l],ρ是将Mi映射到属性的函数,记为ρ:{1,2,...,l}→{1,2,...,u};
其中α、β为系统初始化阶段随机选取的素数,e为系统初始化阶段选取的双线性映射关系,g为系统初始化阶段所取的p阶循环群G1的生成元,hρ(i)∈{h1,h2,h3,...,hu},其中i∈{1,2,3,...,l},{h1,h2,h3,...,hu}为系统初始化阶段随机选取的集合;
S5:加密完成后,加解密模块将密文CT发回至加密者;
如图3所示,访问策略设置如下:加密者允许A企业内部的B部门C岗位和B’部门的员工查看数据,以及允许D企业E部门全体员工查看数据,同时允许系统管理者查看数据,设置策略时分别对每种条件进行选择或填写;
产品信息查询环节:用户通过输入产品标识,进行产品信息的查询;
智能合约定义产品信息查询函数,函数根据产品标识,从产品集中定位产品,将产品信息返回到前端页面;
对于一些加密的私有数据,用户使用自己的属性私钥进行解密,如果属性满足密文所设访问策略,则可以查看私密信息,反之,只能查看公开信息;
公开信息一般为产品名、产品编号、生产商账户、生产批号、产品原材料信息、生产许可证号、登记时间、生产日期、保质期、加工、检测、包装的部分信息;
私密信息一般为产品数量,以及加工、检测的关键技术;
数据解密环节:解密数据由数据加解密模块来实现,过程如下:
S1:以太坊接口模块将解密者将属性私钥SK与密文CT发至加解密模块,加解密模块将参数输入至解密函数,解密算法描述为:Decrypt(CT,SK)→m;
输入参数为:关于访问策略(M,ρ)的密文CT,以及关于用户属性集S的私钥SK,设定义I={i:ρ(i)∈S},目标向量为(1,0,...,0),如果用户属性满足访问矩阵(Mi)i∈I,则能找到一组向量{wi}i∈I,使得满足解密条件。其中
解密计算式为:
其中α、β为系统初始化阶段随机选取的素数,e为系统初始化阶段选取的双线性映射关系,g为系统初始化阶段所取的p阶循环群G1的生成元,K、L、Kρ(i)为属性私钥SK的一部分,Ci、Di、C'为密文CT的一部分,t为生成属性私钥SK时所选择的随机参数,s为加密时的秘密共享密钥,为加密时的秘密共享密钥份额;
S2:解密完成后,加解密模块将明文m发至解密者;
产品溯源查询环节:产品溯源即系统根据溯源起点和产品标识,追溯产品整个交易流程,生成产品的溯源链。其中只有系统管理员和购买该产品的用户有权查询该产品的溯源链;
系统管理员查询时,需要输入产品标识和溯源起始位置,起始位置即购买该产品的用户;普通用户查询时,只需输入产品标识,系统根据当前登录的用户Address,自动向溯源函数输入溯源起点;
智能合约定义产品溯源函数、结点结构体,结点内容包括执行交易的用户地址Address,以及该用户与下一个结点交易的交易日期,调用函数过程如下;
S1:调用产品溯源函数,输入参数为产品标识和交易买方。函数判断第一个条件:用户权限是否满足,第二个条件:查询用户是否是购买该产品的用户,第三个条件:查询用户是否是系统管理员,三者之一不满足,则执行失败,在前端提示用户;
S2:在上述第一个条件满足的前提下,判断第二个和第三个条件是否满足,满足其一,则函数根据产品标识和买方购买记录键值,在买方账户的购买记录中查找。找到第一条记录后,将记录中的卖方作为新的买方,再次调用产品溯源函数,递归查找卖方对应的购买记录,从中再找到新的卖方作为买方,继续查找,直到追溯到生产商为止;第二个和第三个条件均不满足,则执行失败;
S3:账户中关于该产品的购买记录不止一条时,函数遍历查找下一条记录,以该记录为起点,继续进行递归查找,查找完一条溯源链后,回归到溯源的起点或其他带有交易分支的结点,重复操作;
S4:如此进行回溯查找,直到所有的溯源链生成完毕;
如图4所示,溯源链包含以下特征:
溯源链包含多个结点,自左向右,最左边结点表示溯源起点,结点与结点间的关系为买方与卖方,最右边结点为该产品的生产商,即溯源链源头;
在生产商诚信的前提下,产品生产后,在系统中必定存在该产品信息,生产商会将自家生产的产品销售至其他商家,其他商家的库存将新增记录,除此之外,库存记录无法被手动更新,即不存在伪造库存记录的现象,因此所有用户库存中的产品均为属于本系统的生产商生产的产品,一次溯源中,所有溯源链的源头均为该产品的生产商,不会出现源头是销售商家、生产商未知的现象;
查找过程中,函数首先将溯源起点的地址Address以及购买记录的交易时间写入第一条链的起点结点,找到第一个卖方时,将卖方的地址Address写入第一条链的第二个结点,查找卖方的购买记录,找到后将记录的交易时间写入第二个结点,同时将记录的卖方写入第三个结点,以此类推;
最后生成的溯源链中相邻的两个结点既能表示一次交易的买卖方,且由于左边结点存储本次交易的日期,因此还能表示交易的时间;
产品去向查询环节:产品去向即系统根据生产商和产品标识,探寻产品整个交易流程,生成产品的去向链。其中只有系统管理员与该产品的生产商有权查询产品去向;
系统管理员查询时,需要输入产品标识和生产商名,生产商为生产该产品的企业;生产商查询时,只需输入产品标识,系统根据生产商的地址Address,自动向去向函数输入去向起点;
智能合约定义产品去向函数,调用函数过程如下;
S1:调用产品去向函数,输入参数为产品标识和交易卖方,第一次调用函数时,交易卖方为生产商。函数查看用户权限、判断查询去向链的用户是否是该产品的生产商,或者是系统管理员,三者之一不满足,则执行失败,在前端提示用户;
S2:上述第一个条件,以及第二个或第三个条件满足,则函数根据产品标识和卖方销售记录键值,在卖方账户的销售记录中查找。找到第一条记录后,将记录中的买方作为新的卖方,再次调用产品去向函数,递归查找买方对应的销售记录,从中再找到新的买方作为卖方,继续查找,直到新的买方销售记录中不存在该产品时为止;
S3:账户中关于该产品的销售记录不止一条时,函数遍历查找下一条记录,以该记录为起点,继续进行递归查找,查找完一条去向链后,回归到去向的起点或其他带有交易分支的结点,重复操作;
S4:如此进行回溯查找,直到所有的去向链生成完毕;
如图5所示,去向链具有以下特点:
去向链也包含多个结点,自左向右,最左边结点表示去向起点即生产商,结点与结点间的关系为卖方和买方,最右边结点为去向链终点;
查找过程中,函数首先将去向起点的地址Address以及销售记录的交易时间写入第一条链的起点结点,找到第一个买方时,将买方的地址Address写入第一条链的第二个结点,查找买方的销售记录,找到后将记录的交易时间写入第二个结点,同时将记录的买方写入第三个结点,以此类推;
最后生成的去向链中相邻的两个结点既能表示一次交易的卖方、买方,且由于左边结点存储本次交易的日期,因此还能表示交易的时间;
产品交易信息查询环节:用户查询产品的交易记录,即查看详细的产品交易信息,过程如下:
S1:智能合约定义交易信息查询函数,用户在查询到产品的溯源或者去向链后,将链中相邻结点的买卖双方、交易日期以及产品标识作为函数的参数输入,调用函数;
S2:函数首先判断用户权限,通过则根据产品标识,在产品集中定位产品,然后通过买卖方、交易日期和产品交易记录键值,在产品的交易记录中查找,并将找到的信息返回至前端;
对于交易信息中隐私数据,根据查询信息的用户属性私钥来进行解密,满足访问策略则可以查看,不满足则不能查看;
用户评价环节:用户购买产品之后,可对产品进行评价,评价信息会记入系统,所有评价信息均公开:
智能合约定义评价函数、评价结构体、评价集、评价事件,评价结构体内容为评价用户、产品标识、评价内容、评价对象、等级与评价时间,评价对象是售卖该产品的商家,等级包括五个星级,表示用户对产品的满意度。过程如下;
S1:用户输入产品标识、评价内容、选择等级,系统自动生成评价时间,并以当前用户的地址Address为评价用户,以上述内容为参数,调用评价函数;
S2:函数首先判断用户权限,权限通过则创建新的评价对象,将参数作为内容写入对象,并将对象存入评价集;
S3:权限不通过,则以“失败”触发评价事件;
产品与用户管理环节:系统管理员可以查询系统一切用户、产品的全部信息,并定时查看用户评价,根据评价的等级,对用户和产品进行管理;
智能合约定义管理用户函数,系统管理员通过此函数来限制特定用户的权限:
函数输入参数为用户名和管理方式,管理方式分为限制权限和解除限制;若为限制权限,则函数将用户的权限标识置0;否则为解除限制,则将权限标识置1;
所述函数判断用户权限,即为函数查看用户的权限标识是否为1;
除了上述所有的函数所提供的功能外,以太坊接口模块通过调用智能合约定义的函数、结构体、映射关系等,可以在前端的逻辑部分实现以下功能:
对于用户:显示本账户的全部信息,包括基本信息、库存、购买和销售记录;显示评价信息列表和评价信息等,用于个人或企业信息查询;
对于系统管理员:在前端页面列出用户列表、产品列表、评价信息列表,查看列表项对应内容;查询并显示所有账户、产品的全部信息,例如查询特定账户的库存记录,或者特定产品的工序记录等;
当函数以“失败”触发事件时,前端会给用户相应提示;
所有将数据存入区块链的函数被调用成功时,以“成功”触发事件,前端给用户相应提示。
Claims (9)
1.基于区块链和访问控制的化妆品溯源系统,其特征在于:系统架构分为应用层、服务层、区块链层:应用层为PC端的前端Web页面,为主要的功能入口,用于向用户提供交互页面和显示系统功能;服务层分为以太坊接口模块、数据加解密模块,负责处理前端页面请求、加解密数据;区块链层包括智能合约模块、以太坊客户端以及区块链网络,用于提供代码逻辑、部署合约以及存储数据。
2.根据权利要求1所述的基于区块链和访问控制的化妆品溯源系统,其特征在于:所述应用层具体包括:用户注册、用户登录、产品生产信息录入、产品生产信息完善、产品交易信息录入、产品生产、交易信息查询、产品交易去向链、溯源链生成、用户评价、用户管理、产品管理。
3.根据权利要求1所述的基于区块链和访问控制的化妆品溯源系统,其特征在于:所述服务层具体包括:
以太坊接口模块:负责处理前端业务请求、连接以太坊客户端进程、发送交易上传数据、生成用户属性集并发送至授权机构以生成用户属性私钥、将明文与访问策略或将密文和属性私钥发送至数据加解密模块;
数据加解密模块:采用CP-ABE算法,负责根据访问策略、系统公钥来将明文加密,根据用户属性私钥将密文解密,以及向以太坊接口模块发送加密后的密文以及解密后的明文。
4.根据权利要求1所述的基于区块链和访问控制的化妆品溯源系统,其特征在于:所述区块链层包括:
智能合约模块:提供实现系统功能的程序,包括提供定义用户、产品、交易信息以及各类信息的结构体,提供实现用户注册、登录、产品信息录入、查询功能的函数,提供存储映射关系键值对的映射结构,以及提供发送交易上传数据时触发事件的定义和触发条件;
以太坊客户端:作为用户与区块链直接交互的平台,以特定的端口号运行进程,部署合约的用户首先在以太坊客户端创建账户、挖矿获得一定数量的以太币,之后进行智能合约的部署,溯源系统中的其他账户的都要遵循合约的规定;
区块链网络:负责存储数据,存储的数据具有公开透明、不可篡改、去中心化、安全特性。
5.根据权利要求1所述的基于区块链和访问控制的化妆品溯源系统,其特征在于:还包括系统参与者:系统用户与可信的授权机构;具体包括以下内容:
系统用户:为使用该溯源平台的各用户,可以作为数据提供者、数据查询者、数据管理者,具体分为原料提供商、生产商、分销商、经销商、零售商、运输商、消费者、系统管理员;
在产品供应链中,起点包括原料提供商、生产商,中间流通包括分销商、经销商、零售商、运输商,终点包括消费者、分销商、经销商、零售商;
可信的授权机构:负责系统初始化,生成用户的唯一标识GID、系统公钥PK、系统主密钥MSK,以及根据用户属性,生成用户的解密密钥SK,对(GID,SK)进行管理,其中系统公钥PK、系统主密钥MSK为公开信息。
6.根据权利要求1所述的基于区块链和访问控制的化妆品溯源系统,其特征在于:应用层前端页面采用HTML5语言编写;服务层的以太坊接口模块的前端的处理逻辑采用javascript语言编写,与以太坊客户端进程连接的接口采用web3.js工具包,数据加解密模块使用python的Charm包提供的CP-ABE算法;区块链层的智能合约采用solidity语言编写,编译采用solc工具,以太坊客户端采用Go-Ethereum搭建以太坊私链。
7.根据权利要求1所述的基于区块链和访问控制的化妆品溯源系统生成方法,其特征在于:具体步骤如下:
(7.1)系统初始化环节:可信授权机构生成系统公钥与系统主密钥;
(7.2)用户注册环节:系统用户在以太坊客户端创建账户,在前端页面填写账户信息;可信授权机构计算用户标识GID;系统生成用户属性集,发至授权机构生成用户属性私钥,并将其存储至账户信息中;
(7.3)产品生产环节:生产商接收订单并登记产品信息,原材料采购的部门完善产品原材料信息,产品加工、检验、包装的负责人在完成工序后写入相应信息,对于商业机密数据,首先进行属性基加密,之后以密文形式作为写入信息;
(7.4)产品交易环节:交易卖方接收订单,联系运输商,登记订单数据,对交易私密数据进行属性基加密;系统修改买卖方库存与交易记录;
(7.5)数据加密环节:加密数据由数据加解密模块实现,采用CP-ABE算法,根据访问策略与系统公钥,加密明文;
(7.6)产品信息查询环节:用户输入产品标识,进行产品信息的查询;对于加密的私有数据,用户使用自己的属性私钥进行解密,属性满足密文所设访问策略,则可以查看私密信息,反之,只能查看公开信息;
(7.7)数据解密环节:解密数据由数据加解密模块来实现,根据属性私钥将密文解密;
(7.8)产品溯源查询环节:系统根据溯源起点和产品标识,追溯产品整个交易流程,生成产品的溯源链。其中只有系统管理员和购买该产品的用户有权查询;
(7.9)产品去向查询环节:系统根据生产商和产品标识,探寻产品整个交易流程,生成产品的去向链。只有系统管理员与该产品的生产商有权查询产品去向;
(7.10)产品交易信息查询环节:在查询到产品的溯源或者去向链后,用户根据链的买卖双方、交易日期以及产品标识,查询该产品对应的交易记录,查看详细的产品交易信息,对于私密数据,属性满足策略则可查看;
(7.11)用户评价环节:用户购买产品之后,可对产品进行评价,评价信息会记入系统,所有评价信息均公开,系统管理员可根据负面评价信息来联系商家,对产品进行召回、处理;
(7.12)产品与用户管理:平台的系统管理员可以查询系统一切用户、产品的全部信息,并定时查看用户评价,对用户和产品进行管理。
8.根据权利要求7所述的基于区块链和访问控制的化妆品溯源系统生成方法,其特征在于:所述属性分为企业属性Com、部门属性Sec、岗位属性Post、类型属性Type,属性集合定义层级为:类型层、企业层、部门层、岗位层,岗位属性Post作为属性集中的最细粒度属性。
9.根据权利要求7所述的基于区块链和访问控制的化妆品溯源系统生成方法,其特征在于:所述访问策略是由属性、访问结构组成的访问控制结构,其中访问结构为线性秘密共享方案LSSS,实现安全多方计算协议。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210876238.5A CN115205042A (zh) | 2022-07-25 | 2022-07-25 | 一种基于区块链和访问控制的化妆品产品溯源系统及生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210876238.5A CN115205042A (zh) | 2022-07-25 | 2022-07-25 | 一种基于区块链和访问控制的化妆品产品溯源系统及生成方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115205042A true CN115205042A (zh) | 2022-10-18 |
Family
ID=83583430
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210876238.5A Pending CN115205042A (zh) | 2022-07-25 | 2022-07-25 | 一种基于区块链和访问控制的化妆品产品溯源系统及生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115205042A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116385031A (zh) * | 2023-06-07 | 2023-07-04 | 山东科技大学 | 一种基于大数据和多数据源的数据溯源方法 |
-
2022
- 2022-07-25 CN CN202210876238.5A patent/CN115205042A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116385031A (zh) * | 2023-06-07 | 2023-07-04 | 山东科技大学 | 一种基于大数据和多数据源的数据溯源方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Liu et al. | A blockchain-based framework of cross-border e-commerce supply chain | |
CN109165966B (zh) | 一种基于区块链的电商平台评价管理系统 | |
CN109035014B (zh) | 数据交易系统 | |
CN109829824B (zh) | 一种基于区块链技术的商品交易信息共享方法 | |
Ali et al. | A review of the key challenges of non-fungible tokens | |
CN111177253A (zh) | 基于身份数字认证的电力大数据保护方法及系统 | |
CN109643300A (zh) | 在提供产品和/或服务的应用程序中维护用户隐私的系统和方法 | |
Yang et al. | A reliable e-commerce business model using blockchain based product grading system | |
CN111340590B (zh) | 一种基于电子商务的协同作业方法及其分布式转售平台 | |
CN111339550A (zh) | 一种基于区块链技术的评论信息可信化方法 | |
CN113268773A (zh) | 一种个人数据交易系统及方法 | |
Wei | Blockchain-based data traceability platform architecture for supply chain management | |
CN115205042A (zh) | 一种基于区块链和访问控制的化妆品产品溯源系统及生成方法 | |
CN113657609B (zh) | 基于区块链与联邦迁移学习的数据管理方法及系统 | |
CN116777476A (zh) | 基于公钥可搜索加密的药品可信溯源方法 | |
CN115204873A (zh) | 一种基于区块链的开放大数据交易撮合方法及系统 | |
CN109690516A (zh) | 一种向用户提供产品和/或服务而不损害其隐私的基于软件的开关 | |
Karumanchi et al. | Blockchain enabled supply chain using machine learning for secure cargo tracking | |
CN107786546A (zh) | 一种基于私有链的红酒防伪溯源系统 | |
Parvathi et al. | Secured blockchain technology for agriculture food supply chain | |
WO2022270551A1 (ja) | Nft情報管理システムおよびnft情報管理プログラム | |
Nasih et al. | Blockchain technology impact on the maritime supply chain | |
WO2021249208A1 (zh) | 采用码链区块的数字货币模型、方法、系统及装置 | |
Shittu et al. | Smart supply chain management with attribute-based encryption access control | |
Bhole et al. | Allocation and Tracking of Public Funds using Blockchain |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |