[0045] 下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0046] 在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
[0047] 在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
[0048] 下面结合具体的实施方式对本发明做进一步的解释说明。
[0049] 实施例1
[0050] 本实施例提供的一种基于区块链的可回收物品溯源方法,其包括如下步骤:
[0051] 步骤1:区块链包括:智能合约流程引擎和规则引擎;
[0052] 智能合约流程引擎用于为商品设定一个销售流程和回收流程;销售流程和回收流程唯一确定的指定某一类商品的合规流程,商品必按照销售流程进行销售,按照回收流程进行回收;
[0053] 将商品自生产商到消费者的过程分成若干个销售环节,销售流程由若干个销售环节构成;
[0054] 将商品自消费者处回收回来的过程分成若干个回收环节,回收流程由若干个回收环节构成;
[0055] 规则引擎用于设定各个销售环节和回收环节操作者的权限;
[0056] 步骤2:在出厂前,在每个商品上粘贴一个复合标签;复合标签包括:一个销售编码和一个回收编码;
[0057] 销售编码为公开码,用于在销售环节中被识别;
[0058] 回收编码为私钥编码,用于在回收环节中被识别;
[0059] 销售编码和回收编码一一对应;销售环节的操作者无法通过销售编码获知对应的回收编码;而智能合约流程引擎可通过回收编码获知对应的销售编码;
[0060] 步骤3:每个销售环节的授权操作者通过销售编码识别商品,记录商品在该销售环节的销售信息,并将该销售信息上传到区块链上;
[0061] 步骤4:智能合约流程引擎解析已经上传的销售环节的销售信息,判断商品各销售环节的销售行为是否符合预先设定的销售流程;
[0062] 智能合约流程引擎只允许符合预先设定销售流程的销售信息记录在区块链的分布式数据库中;
[0063] 步骤5:消费者可通过销售编码识别商品,并在区块链上追溯商品的出厂信息和销售过程,根据比对记录的销售信息与预设的销售流程来判断商品的真伪;
[0064] 步骤6:每个回收环节的授权操作者利用被授权的读取设备或利用私钥读取回收编码,并识别被回收的商品,记录商品在该回收环节的回收信息,并将该回收信息上传到区块链;
[0065] 步骤7:智能合约流程引擎解析被回收商品已经上传的回收信息,并根据回收编码推算出对应的销售编码。
[0066] 智能合约流程引擎根据销售编码在区块链的分布式数据库中查询商品的销售信息,判断被回收的商品是否存在被记录的销售环节,以及判断商品经历的销售过程是否符合预先设定的销售流程;只有存在被记录的销售信息,且商品经历的销售过程符合预先设定的销售流程的商品才能被允许回收、以及将回收信息记录在区块链的分布式数据库中。
[0067] 在每个销售环节,规则引擎解析和判断各个销售环节的扫码设备角色是否符合预设销售规则;以及在每个回收环节,规则引擎解析和判断各个回收环节的扫码设备角色是否符合预设销售规则。
[0068] 复合标签为可被特定设备读取且不可复制的标签。复合标签可以为射频(RFID)标签或者带有IC卡的标签。
[0069] 销售流程为唯一的合规流程,商品必须按照预设的销售流程进行销售,一切不按照预设销售流程流通的商品都属于异常产品,并被认定为造假或伪造产品。不同商品的销售流程和回收流程不同。
[0070] 实施例2
[0071] 本实施例提供的一种基于区块链的可回收物品溯源方法如下:
[0072] 首先设计一种商品(可以回收的产品)的销售、回收流程,两个流程为唯一确定的指定某一类商品的合规流程,所述商品必按照销售流程进行销售,按照回收流程进行回收。一切不按照本流程流通的产品,都属于异常流程,可以认定为在造假或伪造。
[0073] 如图1所示,智能合约流程引擎设定一类商品的流程如下:
[0074] 销售流程为:S→N1→N2→N3→E;
[0075] 回收流程为:E→N3’→N2’→N1’→S;
[0076] 其中,S为生产厂商,E为最终的消费者;N1、N2和N3为销售流程中的三个销售环节;N3’、N2’和N1’为回收流程中的三个回收环节。
[0077] 规则引擎为每个销售环节和回收环节配置一个用户角色以及角色匹配规则(即配置操作者及其权限);每个销售环节或者回收环节,只有符合规则的角色(操作者)才有权限操作该环节,也即只有在该环节授权的用户才拥有在该环节进行溯源数据记录、操作的权限。
[0078] 设计一种具有AB码的复合标签,如RFID标签,或者其他任何可粘贴、可被特定设备读取、不可复制的标签,
[0079] 复合标签包括一个销售编码,例如A码,以及一个回收编码如B码;利用对应的读取设备读取复合标签中的A、B码。A码和B码一一对应。
[0080] A码作为商品的唯一编码,是一个公开吗,在销售流程中被识别,记录销售流程溯源数据上链;B码作为商品的回收编码,该码跟A码唯一对应,但B码作为每一个商品的私钥编码,通过B码可生产A码,但A码无法生成B码,换句话说,在回收环节,可以通过B码获知对应的A码,但在销售环节无法通过A码获知对应的B码。
[0081] B码在商品生产时生成,固化到复合标签中,只有授权的回收环节、被授权的读取设备才可以识别出来。
[0082] 如图2所示,基于区块链的可回收物品溯源方法包括如下步骤:
[0083] ①通过智能合约流程引擎预设销售流程和回收流程,设计的流程模板以智能合约形式上链,利益规则引擎制定各个流程环节的角色权限规则,生成一批AB码,A码对外公开,B码在区块链上保存,不对外公开;
[0084] ②商品出厂时,生产厂商S将具有AB码的复合标签粘贴在商品上,即AB码和物品绑定,复合标签具有防撕、防伪功能,读码设备扫A码,出厂信息上链,链上智能合约流程引擎解析商品当前流程状态是否正确,规则引擎解析执行扫码的设备角色是否符合预设规则;
[0085] ③销售环节N1时读码设备扫A码,环节信息上链,链上智能合约流程引擎解析商品当前流程状态是否正确,规则引擎解析执行扫码的设备角色是否符合预设规则;
[0086] ④销售环节N2时读码设备扫A码,环节信息上链,链上智能合约流程引擎解析商品当前流程状态是否正确,规则引擎解析执行扫码的设备角色是否符合预设规则;
[0087] ⑤销售环节N3时读码设备扫A码,环节信息上链,链上智能合约流程引擎解析商品当前流程状态是否正确,规则引擎解析执行扫码的设备角色是否符合预设规则;
[0088] ⑥最终用户、消费者扫A码溯源溯真,根据区块链上记录的销售流程和预设销售流程比对,判断商品是否是合法、合规商品,是否为厂家真实商品。
[0089] ⑦回收环节N3’时,读码设备扫B码,区块链的智能合约流程引擎自动判断该物品是否有对应的A码,物品预设销售流程与记录的销售流程是否符合,此时只有商品走过了合规的销售流程,才允许回收、记录和上传回收环节N3’的回收信息。
[0090] ⑧回收环节N2’时,读码设备扫B码,区块链的智能合约流程引擎自动判断该物品是否有对应的A码,物品预设销售流程与记录的销售流程是否符合,此时只有商品走过了合规的销售流程,才允许回收、记录和上传回收环节N2’的回收信息。
[0091] ⑨回收环节N1’时,读码设备扫B码,区块链的智能合约流程引擎自动判断该物品是否有对应的A码,物品预设销售流程与记录的销售流程是否符合,此时只有商品走过了合规的销售流程,才允许回收、记录和上传回收环节N1’的回收信息。
[0092] ⑩最终,生产厂商S通过读码设备扫B码,区块链的智能合约流程引擎自动判断该物品是否有对应的A码,物品预设销售流程与记录的销售流程是否符合,此时只有商品走过了合规的销售流程,才允许回收、记录和上传回收信息。
[0093] 以上流程描述了一个在梯级利用和回收管理体系中,明确各相关方的责任、权利和义务的情况下,通过AB码、流程引擎、规则引擎、区块链技术避免不回收、少回收、虚构回收、套回收补贴的方法,真正做到可回收物品可监控、可管理、可记录、可信任的回收管理体系,提高我们国家可再生资源的回收利用率。
[0094] 在本发明中,我们引入了一种复合标签(即AB码标签)和标签读取设备,并且在溯源模型设计中,引入了流程引擎和规则引擎的技术,将流程引擎、规则引擎植入区块链的智能合约中,解决溯源中上链行为不可伪造、上链数据真实可信、溯源数据真实可信、业务流程防伪的问题。
[0095] AB码标签解决可回收商品在销售过程和回收过程中物品的唯一标识、不可伪造上链行为、不可伪造回收行为。流程引擎则严格设定商品销售流程、回收流程,拒绝不符合流程的上链行为、数据记录行为。规则引擎根据预设规则控制流程环节角色和权限,避免未授权的上链行为和数据记录行为,保障数据真实可信。
[0096] 另外,为保证商品信息数据的真实性、在某个时间点上一致性以及快速的统一性,基于区块链的可回收物品溯源方法还包括以下步骤:
[0097] 步骤S1:多个销售环节上的多个服务器和多个回收环节的多个服务器分别作为区块链的核心节点服务器构成一个核心节点集合;
[0098] 两两核心节点之间通过心跳消息方式维护核心节点间的连通,每个核心节点通过能力消息向其他核心节点广播自身的能力信息;
[0099] 步骤S2:核心节点集合设置一个且唯一的现领导人节点;现领导人节点周期性地向所有其他核心节点广播关于核心节点集合的宣告信息,以使所有核心节点维护相同的核心节点集合信息;
[0100] 步骤S3:现领导人节点选出一个符合设定约束条件的核心节点作为备选节点;现领导人节点和备选节点之外的其他核心节点为候选节点;
[0101] 现领导人节点向所有其他核心节点广播备选节点信息,被选作备选节点的核心节点将自身状态置为备选状态;
[0102] 候选节点持续保持准备参加接替现领导人节点的共识算法领导人选举、进而成为许可链中新领导人的候选状态;
[0103] 步骤S4:现领导人检测到预设周期到期时,发出切换消息给备份节点;备份节点收到切换消息,发送切换确认信息给现领导人节点,现领导人节点转变为候选节点,备份节点转换成为新领导人节点,新领导人节点向所有候选节点发送领导人宣告信息;新领导人节点再根据步骤S3选择出新备份节点;
[0104] 步骤S5:如果发生异常事件,备份节点在一定的时间内无法收到现领导人节点的宣告消息,则备份节点自动切换成为新领导人节点;新领导人节点向所有候选节点发送领导人宣告信息;新领导人节点根据步骤2选择新备份节点;
[0105] 步骤S6:候选节点持续监听许可链中的现领导人节点和备选节点的宣告信息,如在设定时间内未监听到现领导人节点和备选节点的宣告信息,一个或多个候选节点将自身状态变更为参选状态进而变更为参选节点;
[0106] 步骤S7:参选节点向许可链中其他核心节点广播自己的选举宣告,所述选举宣告为包括节点能力和节点状态的广告消息,许可链将在参选节点中选出新领导人节点;
[0107] 任何收到选举宣告的核心节点根据所述预先设定策略或规则检查一个参选节点是否适合成为领导人节点,或者检查哪一个参选节点更合适成为领导人节点,进而向每个参选节点回复支持其当选新领导人的确认信息,或者向每个参选节点回复不支持其当选新领导人的拒绝信息,或者向所有参选节点回复投票支持哪个参选节点成为新领导人节点;
[0108] 如果一个参选节点收到候选节点集合中2/3以上数量的核心节点的确认信息,该参选节点自动转换为领导人状态并成为新领导人节点,落选的参选节点自动将自身状态转变为候选状态,转变回为候选节点;
[0109] 新领导人节点检查当前核心节点集合信息,依据步骤2宣告核心节点集合信息,以及根据步骤3选出备选节点。
[0110] 其中,设定约束条件为:按预先设定的策略或规则,选取排在第一位的核心节点为备选节点。例如优先级顺序、加权排队或者根据节点能力信息的得出函数结果。其中节点能力包括CPU速度、内存大小或存储空间大小等。
[0111] 多个销售环节上的多个服务器和多个回收环节的多个服务器根据上述规则随机成为领导人节点,领导人节点发布宣告信息,其他节点根据宣告信息更新分布式数据库的商品线上和线下信息,从而避免个别节点人为或无意导致的信息错误,保证了数据的真实和有效。
[0112] 最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。