(区块链溯源) 基于Hyperledger Fabric 区块链的产品溯源( 化妆品 )

吃可爱长大的小学妹 提交于 2020-08-09 11:15:07

1. 技术背景

随着互联网的普及,网络购物的优点更加突出,网购与海购成为了越来越多消费者的选择。但是消费者们对于所购买的产品是否安全合格并不了解,诸如化妆品、食品等产品的质量会直接影响到消费者的身体健康状况,产品由产地输送至消费者手中的运输过程中会经过很多环节,任何一个环节出了影响产品质量的问题都会最终对消费者产生危害; 此外,很多消费者维权意识薄弱,在需要合理赔偿时由于相关证据不充分而只能放弃。综上,如何实现对产品由产地运输到消费者手中的运输过程进行有效监督和 高效追溯,成为本领域技术人员亟待解决的技术问题。

2. 业务流程

  1. 购物运营方为每个产品生成对应的私钥A和私钥B,并基于预先构建的区块链网络,将私钥A分发至产品的购买方进行存储,将私钥B分发至产品的供货方进行存储;购物运营方将基于私钥A加密生成的公钥PA和基于私钥B加密生成的公钥PB在区块链网络中进行广播,以使供货方将公钥PA和公钥PB存储于产品的包装上;由产品流经的每一个物流节点将产品的物流流转信息通过公钥PA和公钥PB分别加密存储至区块链网络中; 由购买方通过私钥A或者由供货方通过私钥B从区块链网络中对产品的物流流转信息进行溯源查询。
  2. 产品流经的每一个物流节点将产品的物流流转信息通过公钥PA和公钥PB分别加密存储至区块链网络中步骤之前,方法还包括: 由购物运营方对欲承运产品的物流方进行可信度验证; 若物流方为可信物流方,则通过购物运营方的运营平台生成产品的物流订单,并写入区块链网络,以使得归属于物流方的多个物流节点根据物流订单运输产品; 若物流方为不可信物流方,则拒绝物流方承运产品。
  3. 由产品流经的每一个物流节点将产品的物流流转信息通过公钥PA和公钥PB分别加密存储至区块链网络中步骤之前,方法还包括: 供货方发出产品时,将产品的产品信息和发出地的定位信息通过公钥PA加密上传至区块链网络。
  4. 物流流转信息包括用于描述产品到达物流节点的产品到达信息。
  5. 物流节点若在接收到产品时确认产品出现损坏,则将对应的产品损坏信息通过公钥PA和公钥PB分别加密存储至区块链网络。
  6. 基于产品损坏信息,由通过购物运营方的运营平台向购买方提供多个处理请求,以供购买方进行选择; 由购买方将在多个处理请求中选中的处理请求通过公钥PB加密存储至区块链网络。
  7. 物流流转信息还包括用于描述物流节点发出产品的确认信息,确认信息包括产品发出操作标识和产品的GPS定位信息,方法还包括: 验证GPS定位信息是否符合预设要求,若否,则对区块链网络存储的确认信息进行标识以作为物流节点所属的物流方的失信记录,此时若购买方或供货方拒绝产品继续发出,则将对应的拒收请求存储至区块链网络。
  8. 购买方在接收到产品后,将用于指示是否确认收货的收货信息通过公钥PB加密存储至区块链网络。
  9. 购买方将产品的使用评价信息通过公钥PB加密存储至区块链网络; 供货方通过其存储的私钥B从区块链网络上查询并解密获取产品的 物流流转信息及产品的使用评价信息。
  10. 系统包括:
    私钥生成模块:用于购物运营方为购买方与供货方要交易的产品生成私钥A和私钥B;
    私钥分发模块:用于购物运营方基于预先构建的区块链网络,将私钥A分发至购买方进行存储,将私钥B分发至供货方进行存储;
    公钥生成模块:用于购物运营方基于私钥A加密生成公钥PA,并基于私钥B加密生成公钥PB;
    公钥广播模块:用于将公钥PA和公钥PB在区块链网络中进行广播,以使供货方将公钥PA和公钥PB存储于产品的包装上;
    信息存储模块:用于由产品流经的每一个物流节点将产品的物流流转信息通过公钥PA和公钥PB分别加密存储至区块链网络中;
    信息溯源模块:用于由购买方通过私钥A或者由供货方通过私钥B从区块链网络中对产品的物流流转信息进行溯源查询。





3. 具体细节

  1. 购物运营方为每个产品生成对应的私钥A和私钥B,并基于预先构建的区块链网络,将私钥A分发至产品的购买方进行存储,将私钥B分发至产品的供货方进行存储。可以根据产品的唯一标识码和由随机数生成器生成的随机数分别生成产品的私钥A和私钥B。
  2. 购物运营方将基于私钥A加密生成的公钥PA和基于私钥B加密生成的公钥PB通过区块链网络进行广播,以使供货方将公钥PA和公钥PB存储于产品的包装上。 其中,可以将私钥A经过非对称加密算法生成公钥PA,将私钥B经过非对称加密算法生成公钥PB。供货方可以接收广播在区块链网络中的公钥PA和公钥PB,并将公钥PA和公钥PB结合条形码或二维码或RFID标签或NFC标签等方式存储于产品的包装上。
  3. 由产品流经的每一个物流节点将产品的物流流转信息通过公钥PA和公钥PB分别加密存储至区块链网络中。其中,物流流转信息包括用于描述产品到达物流节点的产品到达信息;物流流转信息还包括用于描述物流节点发出产品的确认信息,确认信息包括产品发出操作标识和产品的GPS定位信息。产品流经的每一个物流节点可以从产品的包装上读取到公钥PA和公钥PB,并将产品的物流流转信息通过公钥PA加密生成的第一密文以及将产品的物流流转信息通过公钥PB加密生成的第二密文分别存储至区块链网络中。由产品流经的每一个物流节点可以在其终端上通过运行Encrypt函数,将公钥PA作为Encrypt函数的输入对产品的物流流转信息进行加密,生成第一密文,并通过运行Encrypt函数,将公钥PB作为Encrypt函数的输入对产品的物流流转信息进行加密,生成第二密文。由于第一密文是通过公钥PA进行加密生成的,而能够解密第一密文的私钥A是由购买方进行保管,使得其他用户无法直接访问到产品的物流流转信息;同时,由于第二密文是通过公钥PB进行加密生成的,而能够解密第二密文的私钥B是由供货方进行保管,也使得其他用户无法直接访问到产品的物流流转信息,因此能够确保产品的物流流转信息的隐私性、安全性。
  4. 由购买方通过私钥A或者由供货方通过私钥B从区块链网络中对产品的物流流转信息进行溯源查询。由购买方通过私钥A解密区块链网络中存储的第一密文,得到第一密文或者由供货方通过私钥B解密区块链网络中存储的第二密文,以实现对产品的物流流转信息进行溯源查询。购买方可以通过在其终端上执行Decrypt函数,将私钥A作为 Decrypt函数的输入对从区块链上获取到的第一密文进行解密。当解密成功后,即可获取到产品的物流流转信息;供货方可以通过在其终端上执行Decrypt函数,将私钥B作为Decrypt 函数的输入对从区块链上获取到的第二密文进行解密。当解密成功后,即可获取到产品的物流流转信息。 通过区块链技术对产品运输的整个过程进行管理,由于存储于区块链上的信息都是公开的,对于产品的整个运输过程中与各个物流点交易可以整合成物流信息,购买方可以通过所购买产品的私钥A查看产品所在位置,供货方可以通过私钥B查看产品所在位置,从而实现了对产品由产地运输到 消费者手中的运输过程进行有效监督和高效追溯;
    此外,也保证了产品在运输途中到达的物流节点都是可信物流点,而且,通过区块链技术能够让各参与方都参与数据管理,并利用区块链技术的其不可篡改和不可伪造的特性,有效地监管恶意篡改物流信息或造假物流信息的运输方。

该应用实例用于对化妆品产品进行溯源,购物运营方、供货方、运输方和购买方(零售商或消费 者)各运行一区块链节点接入至区块链网络。

步骤如下:

  1. 购物运营方为每个化妆品生成对应的私钥A和私钥B,并基于预先构建的区块链网络,将私钥A分发至化妆品的购买方进行存储,将私钥B分发至化妆品的供货方进行存储。购物运营方构建区块链网络,负责生成区块链,生成新的区块并维护区块,购物运营方对其运营平台上的每件化妆品生成对应的私钥A和私钥B,供货方和购买方, 可以分别看作是一个简单的钱包。 购物运营方基于预先构建的区块链网络,将私钥A分发至产品的购买方进行管理, 将私钥B分发至产品的供货方进行管理,以及将基于私钥A加密生成的公钥PA和和基于私钥。 B加密生成的公钥PB通过区块链网络进行广播,以使供货方将公钥PA和公钥PB存储于产品的包装上。购买方存储所购买化妆品的私钥A,供货方存储私钥B,并连入整个网络生成各种交易信息; 供货方接收广播在区块链网络中的公钥PA和公钥PB,可以将公钥PA和公钥PB结合 条形码或二维码或RFID标签或NFC标签等方式存储于产品的包装上。
  2. 由购物运营方对欲承运化妆品的物流方进行可信度验证,若物流方为可信物流方,则通过购物运营方的运营平台生成化妆品的物流订单,并写入区块链网络,以使得归属于物流方的多个物流节点根据物流订单运输化妆品,若物流方为不可信物流方,则拒绝物流方承运化妆品。针对购买方在购物运营方提供的网站或APP上操作下单购买需要的化妆品,由运输方负责取货并提供运输。运输方通过网站或APP接单时,运营方可以利用密码学验证该运输方的可信度,根据已经记录于区块链网络中的关于该运输账户的交易来确认其信誉程度。若为可信运输方,运营平台返回密码再生成一个未确认交易,其中存储对应化妆品的公钥和运输方的公钥,上传至整个网络,待验证通过之后其余节点各自存储,若验证不通过则抛弃该交易;如果为不可信的运输方,平台拒绝该运输方接单。
  3. 供货方发出化妆品时,将化妆品的产品信息和发出地的定位信息通过公钥PA加密上传至区块链网络。化妆品从供货方发出时,供货方会将产品的相关信息(比如所使用原料、 原料产地和可以公开的并且与用户使用安全相关的其他生产信息,此外还包括发货时间、 发货去向等相关信息)和发出时的GPS定位,以交易的形式通过公钥PA加密上传至区块链网络,让区块链网络上的大多数区块链节点验证交易,并且在验证通过后存储于各自的区块中,作为交易的见证,使得购买方的使用安全得到保障。通过供货方上传至区块链的与产品相关的信息,可以帮助购买方更好地了解产品,必要时可作为赔偿证据。
  4. 化妆品每次到达一个物流节点,物流节点会发送一个到达请求,并将到达请求以交易的形式通过公钥PA和公钥PB分别加密上传至区块链网络,让区块链上的账户验证交易后存储于各自区块,并作为交易的见证。
  5. 化妆品每次到达一个物流节点,若该物流节点确认化妆品出现损坏,则将对应的产品损坏信息分别通过公钥PA和公钥PB分别加密存储至区块链网络。化妆品每次到达一个物流点,如果有所损坏,该物流节点会发送一个包含损坏详情的信息,以交易的形式通过公钥PA和公钥PB分别加密上传至区块链网络,让其他的物流点账户验证交易后存储于各自区块,并作为交易的见证。管理私钥A的购买方可以根据损坏情况向运营方选择多个处理请求中的一个(该多个请求包括退货退款、重新发货、继 续发货并部分退款和其他运营方提供的请求),并通过私钥生成公钥将该请求上传至区块链网络,让其他区块链节点验证并存储于各自区块中,作为见证,选择指定物流方向。通过确认化妆品出现损坏的该物流节点将对应的产品损坏信息分别通过公钥PA和公钥PB存储至区块链网络,可以更好的维护购买方的权益,可以对产品在运输途中遭到损坏的情形,起到及时止损的效果。
  6. 物流点发出化妆品时,发送一个确认信息(包含一个表明发出的操作标识和化妆品的GPS定位信息),再次以交易的形式上传至区块链网络,验证GPS定位是否符合要求, 若发现信息不符合要求,记录于区块链的交易并不会删除,而是予以标识,并作为所述物流点所属的运输方的失信记录,此时管理化妆品私钥A的购买方和管理私钥B的供货方都可以 进行操作拒绝化妆品继续发送:通过私钥生成公钥,将拒收请求上传至区块链网络,让其余物流点账户验证后存储于各自区块,并作为见证,最终依据实际情况对所述失信物流点所属的运输方扣除违约金或进行其他处罚。由于上传至区块链网络的物流流转信息包括用于描述物流节点发出产品的确认信息,且确认信息包括产品发出操作标识和产品的GPS定位信息,如此可以对运输方起到控制约束的作用,对于失信达到一定次数或者扣除违约金达到一定金额的运输方可被运营方拉进黑名单。
  7. 购买方在接收到所购买的化妆品后,将用于指示是否确认收货的收货信息通过公钥PB加密存储至区块链网络。购买方接收到所购买的化妆品时,如果化妆品损坏无法使用或其他理由想退回,发送一个拒绝收货理由详情的信息通过公钥PB加密上传至区块链网络,网络中的其他账户验证交易后存储于各自区块,作为交易的见证,运营方依据实际情况决定是否同意购买方返回化妆品; 购买方若确认收货,发送一个确认收货信息通过公钥PB加密上传至区块链网络, 并对该交易信息进行结束的标识,网络中的其他账户验证交易后存储于各自区块,作为交 易的见证。
  8. 购买方将产品的使用评价信息通过所述公钥PB加密存储至所述区块链网络。购买方在使用过程中,可以将发送使用感受等信息通过公钥PB加密上传至区块链网络。
  9. 供货方通过其存储的私钥B从所述区块链网络上查询并解密所述产品的物流流转信息及所述产品的使用评价信息。 供货方可以通过私钥B查看化妆品的物流历史记录,相应地调整以后的物流选择,并且可以查看客户使用反馈,作好产品上的相应调整。 由上述具体步骤可看出,结合区块链的优势在于信息的溯源以及集体验证,对于运输途中的物流点起到约束,维护了购买方的合法权益。
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!