发明内容
本说明书实施例旨在提供一种更有效的智能合约的部署、调用和执行方案,以解决现有技术中的不足。
为实现上述目的,本说明书一个方面提供一种智能合约部署方法,所述方法由区块链中的与第一用户对应的第一用户节点执行,所述智能合约对应于所述第一用户节点出售的商品,所述方法包括:获取所述商品的预定格式的商品描述;将所述预定格式的商品描述转换成智能合约代码,所述智能合约代码包括用于在确定所述商品与所述商品描述不符时执行预定事务的代码;对所述智能合约代码进行数字签名;以及基于经数字签名的所述智能合约代码,在所述区块链中部署对应的智能合约。
在一个实施例中,在所述智能合约部署方法中,所述商品包括饭店提供的菜品,所述商品描述包括以下至少一种:菜品名称、菜品价格、菜品食材、食材重量、菜品图片以及菜品视频。
在一个实施例中,在所述智能合约部署方法中,所述区块链中包括作为验证节点的机构节点,所述方法还包括,在对所述智能合约代码进行数字签名之后,将所述商品描述和经数字签名的智能合约代码发送给所述机构节点,以及,在所述商品描述符合规范的情况下,从所述机构节点接收包括所述机构节点的数字签名的智能合约代码。
本说明书另一方面提供一种智能合约调用方法,所述智能合约对应于由区块链中的第一用户节点出售的商品,所述第一用户节点与第一用户对应,并且所述智能合约包括用于在确定所述商品与所述商品描述不符时执行预定事务的代码,所述方法由区块链中的与第二用户对应的第二用户节点执行,包括:获取所述智能合约的调用地址;基于所述调用地址,调用所述智能合约,以打开所述智能合约的调用界面,所述调用界面包括对所述商品的预定格式的商品描述、以及用于选取所述商品的选取部件;以及通过所述选取部件选取所述商品,以对所述智能合约进行数字签名并确定对所述商品的购买。
在一个实施例中,在所述智能合约调用方法中,所述区块链中还包括作为验证节点的机构节点,其中,所述调用界面还展示所述第一用户的信用值,其中,所述第一用户的信用值由所述智能合约在被调用时从所述机构节点获取。
在一个实施例中,在所述智能合约调用方法中,所述区块链中还包括作为验证节点的机构节点,其中,所述调用界面还展示所述商品的历史评论和/或推荐信息,其中,所述商品的历史评论和/或推荐信息由所述智能合约在被调用时从所述机构节点获取。
在一个实施例中,在所述智能合约调用方法中,所述商品的历史评论和/或推荐信息包括高信用值的用户节点的历史评论和/或推荐信息。
在一个实施例中,在所述智能合约调用方法中,所述调用界面还包括评论区和/或推荐选项,以用于获取所述第二用户对所述商品的评论和/或推荐信息。
本说明书另一方面提供智能合约的执行方法,所述智能合约包括对商品的商品描述、和用于在确定所述商品与所述商品描述不符时执行预定事务的代码,并且所述智能合约基于区块链,包括区块链中的第一用户节点和第二用户节点各自的数字签名,所述方法包括:获取所述第二用户节点对所述商品的投诉信息;将所述投诉信息与所述商品描述进行比较;以及在基于所述比较确定所述商品与所述商品描述不符的情况中,执行所述预定事务。
在一个实施例中,在所述智能合约的执行方法中,所述预定事务为由所述第一用户节点对所述第二用户节点进行自动赔偿。
在一个实施例中,在所述智能合约的执行方法中,所述智能合约还包括第一机构节点的数字签名,所述第一机构节点为所述区块链中的验证节点,所述方法还包括,在执行所述预定事务之后,通知所述第一机构节点,以用于对所述第一用户节点累积信用值。
在一个实施例中,在所述智能合约的执行方法中,所述智能合约还包括第二机构节点的数字签名,其中所述第二机构节点为所述区块链中的验证节点,其中,在基于所述比较确定所述商品与所述商品描述不符的情况中,执行所述预定事务包括,在基于所述比较确定所述商品与所述商品描述不符的情况中,将所述投诉信息发送给所述第二机构节点,所述方法还包括,在将所述投诉信息发送给所述第二机构节点之后,执行以下步骤:从所述第二机构节点接收对应于所述投诉信息的处理方案;以及对所述第一用户节点实施所述处理方案。
在一个实施例中,在所述智能合约的执行方法中,所述智能合约还包括第三机构节点的数字签名,所述第三机构节点为所述区块链中的验证节点,所述方法还包括,在对所述第一用户节点实施所述处理方案之后,在由所述第一用户节点和第二用户节点中不同意所述处理方案的一方向所述第三机构节点申请仲裁的情况中,从所述第三机构节点接收所述仲裁的结果,并对所述第一用户节点和第二用户节点实施所述仲裁结果。
本说明书另一方面提供一种智能合约部署装置,所述装置由区块链中的与第一用户对应的第一用户节点实施,所述智能合约对应于所述第一用户节点出售的商品,所述装置包括:获取单元,配置为,获取所述商品的预定格式的商品描述;转换单元,配置为,将所述预定格式的商品描述转换成智能合约代码,所述智能合约代码包括用于在确定所述商品与所述商品描述不符时执行预定事务的代码;签名单元,配置为,对所述智能合约代码进行数字签名;以及部署单元,配置为,基于经数字签名的所述智能合约代码,在所述区块链中部署对应的智能合约。
在一个实施例中,在所述智能合约部署装置中,所述区块链中包括作为验证节点的机构节点,所述装置还包括,发送单元,配置为,在对所述智能合约代码进行数字签名之后,将所述商品描述和经数字签名的智能合约代码发送给所述机构节点,以及,接收单元,配置为,在所述商品描述符合规范的情况下,从所述机构节点接收包括所述机构节点的数字签名的智能合约代码。
本说明书另一方面提供一种智能合约调用装置,所述智能合约对应于由区块链中的第一用户节点出售的商品,所述第一用户节点与第一用户对应,并且所述智能合约包括用于在确定所述商品与所述商品描述不符时执行预定事务的代码,所述装置由区块链中的与第二用户对应的第二用户节点实施,包括:获取单元,配置为,获取所述智能合约的调用地址;调用单元,配置为,基于所述调用地址,调用所述智能合约,以打开所述智能合约的调用界面,所述调用界面包括对所述商品的预定格式的商品描述、以及用于选取所述商品的选取部件;以及选取单元,配置为,通过所述选取部件选取所述商品,以对所述智能合约进行数字签名并确定对所述商品的购买。
本说明书另一方面提供一种智能合约的执行装置,所述智能合约包括对商品的商品描述、和用于在确定所述商品与所述商品描述不符时执行预定事务的代码,并且所述智能合约基于区块链,包括区块链中的第一用户节点和第二用户节点各自的数字签名,所述装置包括:获取单元,配置为,获取所述第二用户节点对所述商品的投诉信息;比较单元,配置为,将所述投诉信息与所述商品描述进行比较;以及执行单元,配置为,在基于所述比较确定所述商品与所述商品描述不符的情况中,执行所述预定事务。
在一个实施例中,在所述智能合约的执行装置中,所智能合约还包括第一机构节点的数字签名,所述第一机构节点为所述区块链中的验证节点,所述装置还包括,通知单元,配置为,在执行所述预定事务之后,通知所述第一机构节点,以用于对所述第一用户节点累积信用值。
在一个实施例中,在所述智能合约的执行装置中,所述智能合约还包括第二机构节点的数字签名,其中所述第二机构节点为所述区块链中的验证节点,其中,所述执行单元还配置为,在基于所述比较确定所述商品与所述商品描述不符的情况中,将所述投诉信息发送给所述第二机构节点,所述装置还包括,第一接收单元,配置为,在将所述投诉信息发送给所述第二机构节点之后,从所述第二机构节点接收对应于所述投诉信息的处理方案;以及第一实施单元,配置为,对所述第一用户节点实施所述处理方案。
在一个实施例中,在所述智能合约的执行装置中,所述智能合约还包括第三机构节点的数字签名,所述第三机构节点为所述区块链中的验证节点,所述装置还包括,第二接收单元,配置为,在对所述第一用户节点实施所述处理方案之后,在由所述第一用户节点和第二用户节点中不同意所述处理方案的一方向所述第三机构节点申请仲裁的情况中,从所述第三机构节点接收所述仲裁的结果;以及第二实施单元,配置为,对所述第一用户节点和第二用户节点实施所述仲裁结果。
本说明书另一方面提供一种计算机可读的存储介质,其上存储有指令代码,所述指令代码在计算机中执行时,令计算机执行上述智能合约部署方法、智能合约调用方法、以及智能合约的执行方法中的任一种。
本说明书另一方面提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现上述智能合约部署方法、智能合约调用方法、以及智能合约的执行方法中的任一种。
通过根据本说明书的智能合约方案,以智能合约的方式生成电子菜单,从而真实透明不可篡改,解决了信息不对称的问题,通过以智能合约自动执行、投诉、仲裁等分级判决的方式,解决了对商户经营的监督成本较高、消费者维权成本高的问题,并且,通过使用信用值累积进行联合奖惩,也促使商户持续提供更好的服务。同时,用户在结账时可直接通过支付宝对智能合约付款,从而提高了支付宝支付的使用率。
具体实施方式
下面将结合附图描述本说明书实施例。
图1示意示出了根据本说明书实施例的实施智能合约的***100。在一个实施例中,***100中包括区块链101,该区块链101例如可以是联盟链,其中,由多个监管机构作为验证节点达成共识。在一个实施例中,如图1所示,区块链101中包括:作为普通节点的商户节点11和消费者节点12,以及作为验证节点的第三方机构节点,其例如可以包括平台服务节点(代表***的征信节点)13、司法部门节点14、工商部门节点15和***节点16。商户节点11、消费者节点12、平台服务节点13、司法部门节点14、工商部门节点15和***节点16在区块链中对应于其各自的区块链账户,并且其两两相连(图1中未示出全部连线)。
在一个实施例中,商户终端111和消费者终端121为例如手机的便携式智能设备,或者商户或消费者希望便捷快速地进行交易。在上述两种情况中,商户终端111和消费者终端121都可以登录***的网关17的客户端APP或网页客户端。例如,消费者终端可以以消费者的邮件地址或个人账号(例如支付宝账号)登录所述客户端,从而连接网关17。网关17将消费者的个人账号与消费者节点的区块链账号映射,从而允许消费者在例如手机的便携设备上进行区块链中节点间的交易。
上述商户例如为餐饮经营者,其可通过其终端111向商户节点11输入对一菜品的预定格式的菜品描述,从而在商户节点编写对应于该菜品的智能合约形式的电子菜单,并在区块链101中部署该电子菜单。消费者可通过扫码或者在其终端APP中获取该电子菜单。例如,消费者通过对该菜品进行点菜而签署与该电子菜单对应的智能合约,从而调用该智能合约。在调用之后,该智能合约在特定触发条件下执行特定的事务,例如,当消费者在该菜单下投诉菜品与产品描述不符时,例如,材质不对应,分量不够时,该智能合约可自动进行判断,并自动执行商户对消费者的赔偿。
图2示出了根据本说明书实施例的一种智能合约部署方法,所述方法由区块链中的第一用户节点执行,所述第一用户节点出售与所述智能合约对应的商品,所述方法包括:
在步骤S21,获取所述商品的预定格式的商品描述;
在步骤S22,将所述预定格式的商品描述转换成智能合约代码,所述智能合约代码包括用于在确定所述商品与所述商品描述不符时执行预定事务的代码;
在步骤S23,对所述智能合约代码进行数字签名;以及
在步骤S24,基于经数字签名的所述智能合约代码,在所述区块链中部署对应的智能合约。
首先,在步骤S21,获取所述商品的预定格式的商品描述。所述第一用户节点例如为图1中示出的商户节点,所述商户例如为餐饮经营者,其通过其节点在区块链中部署与菜品对应的智能合约,即与该菜品对应的电子菜单。然而,在本说明书实施例中,所述商户不限于餐饮经营者,其例如可以为零售经营者、服务经营者等。
由于上述商户通常不可能用复杂的计算机语言去自己编写智能合约,而对应于具体场景的智能合约通常是基本相同的,例如,对应于餐饮业的电子菜单的智能合约一般具有统一的条款,例如,价格透明、分量与菜单一致等等,因此,可通过设置特定的区块链客户端来预置这些条款,以适用于特定的应用场景。例如,在电子菜单的应用场景,可将区块链客户端设置为包括预置的合约代码,用户只需通过以一定格式填充对菜品的具体描述,即可由客户端自动完成智能合约的编写。
图3示出了根据本说明书实施例的预定格式的商品描述。如图3所示,所述商品描述包括菜名(龙井虾仁),产品价格(150元/份)、菜品食材/分量(虾仁/800g,茶叶/10片)、菜品图片,以及备注信息,例如,食用禁忌、打包收费规定等。图3所示的商品描述只是示例性的,所述商品描述可以是其它格式,例如,表格式等等,所述商品描述也可以包括其它描述,例如,商品视频、商品AR图片等等。商户只需要在特定的界面完成上述具体项目的填写,并上传图片、视频,就可以由客户端自动生成详实、规范的智能合约,其可用作电子菜单供消费者点菜。
在步骤S22,将所述预定格式的商品描述转换成智能合约代码,所述智能合约代码包括用于在确定所述商品与所述商品描述不符时执行预定事务的代码。如上文所述,在商户节点客户端中已经预置了待填充的智能合约代码,这些预置代码是根据预定场景设置的对应的条款。例如,在商户为餐饮经营者的情况中,所述智能合约可以包括例如如下的具体条款:菜品材料与菜品描述中不符时,对用户进行自动赔偿;菜品分量与菜品描述中不符时,对用户进行自动赔偿;菜品图片与菜品描述中的图片差距明显时,对用户进行自动赔偿,等等。而所述预置代码即为这些条款的代码表示,其中在代码中以各个字段(key)表示待商户填充的内容。当商户节点输入预定格式的商品描述之后,客户端基于所述商品描述获取对应字段的值(value),从而获取完整的智能合约代码。所述智能合约代码例如可通过Solidity语言编写,或者,所述代码还可以通过Serpent语言、LLL语言等等编写。
在步骤S23,对所述智能合约代码进行数字签名。在区块链中,每个节点都分配有一对公钥和私钥;公钥作为用户在区块链上的账户地址,私钥作为操作该账户的唯一钥匙。商户节点在获取智能合约代码之后,可通过该节点的私钥对该代码进行数字签名,例如,在商户节点客户端中点击签名按钮,并在弹出的窗口中进行数字签名。从而消费者通过使用商户节点的公钥对该数字签名进行验证,从而可确认该智能合约的发起者为所述商户。从而确保电子菜单的可信度。
在步骤S24,基于经数字签名的所述智能合约代码,在所述区块链中部署对应的智能合约。图4示意示出了在区块链中部署智能合约的数据流。首先通过过SOLC编译将所述智能合约代码转换为二进制码,然后通过一笔交易来创建智能合约,该笔交易包含了创建者账号、智能合约内容、智能合约的地址这几个关键信息。其中智能合约地址的生成是由创建者的账号和发送的交易数作为随机数输入,通过Kecca-256加密算法重新创建一个地址作为账号。图4所示的部署流程只是示意性地,并不用于限定具体的部署方法。例如,其中不一定采用SOLC编译,而可通过其它编译方式,不一定通过Kecca-256加密算法,而是可采用其它已知的加密算法。
在一个实施例中,所述区块链中包括作为验证节点的机构节点,例如该区块链平台的平台服务节点。所述方法还包括,在对所述智能合约代码进行数字签名之后,将所述商品描述和经数字签名的智能合约代码发送给所述机构节点,以及,在所述商品描述符合规范的情况下,从所述机构节点接收包括所述机构节点的数字签名的智能合约代码。在将所述商品描述和经数字签名的智能合约代码发送给例如平台服务节点之后,平台服务节点检验所述商品描述是否符合规范,在符合规范的情况下,对所述智能合约代码进行数字签名,并将其发送回商户节点。
图5示出了根据本说明书实施例的智能合约调用方法,所述智能合约对应于由区块链中的第一用户节点出售的商品,所述第一用户节点与第一用户对应,并且所述智能合约包括用于在确定所述商品与所述商品描述不符时执行预定事务的代码,所述方法由区块链中的与第二用户对应的第二用户节点执行,包括以下步骤。
首先,在步骤S51,获取所述智能合约的调用地址。例如,所述第一用户为餐饮经营者,其可为消费者提供与电子菜单对应的纸质菜单,在纸质菜单中,可包括与每个菜品对应的二维码,该二维码即为所述智能合约的调用地址。所述调用地址不限于以该方式提供,例如,消费者可从其终端与所述商户节点通信,或者访问所述商户节点,从而获取与菜品对应的二维码,或者获取与菜品对应的地址、账户等。
在步骤S52,基于所述调用地址,调用所述智能合约,以打开所述智能合约的调用界面,所述调用界面包括对所述商品的预定格式的商品描述、以及用于选取所述商品的选取部件。通过对例如上述二维码进行扫码,从而可从区块链中获取所述智能合约,并在节点本地运行,从而可在本地打开智能合约的调用界面,也即与菜品对应的电子菜单。在电子菜单中,以预定格式对商品进行了详实的描述,消费者可通过菜单中的选取部件确定是否对该菜品进行购买。
在一个实施例中,所述调用界面还展示所述第一用户的信用值,其中,所述第一用户的信用值由所述智能合约在被调用时从机构节点(例如,平台服务节点)获取。其中所述机构节点基于所述第一用户的信用信息确定所述第一用户的信用值。
在一个实施例中,上述第一用户的信用信息包括第一用户的实人认证信息。实人认证信息例如包括,采用人脸、身份证号等真实信息进行认证的信息。
在一个实施例中,上述信用信息包括芝麻信用信息。芝麻信用是基于用户的交易记录、借贷记录、消费记录等大数据对用户进行全面评估而得出的信用分数,可以用于反映一个用户总体的信用状态。用户的注册信息可以与其芝麻信用相关联。相应地,获取用户的信用信息包括,读取该用户的芝麻信用信息。
在另一实施例中,上述信用信息还可以包括第三方信用机构提供的信用信息。第三方信用机构可以包括,银行、政府机构、征信机构等机构,这些机构也有可能基于用户的各种行为数据为用户评估其信用状态。为了获取这样的信用信息,可以首先获取用户提供的、在上述第三方机构的身份信息和授权,根据这样的身份信息和授权,向第三方机构发出请求,由此接收第三方机构针对该用户的信用信息。
在又一实施例中,上述信用信息还可以包括,根据之前的智能合约的执行情况而确定的信用分数累积。
在一个实施例中,所述调用界面还展示所述商品的历史评论和/或推荐信息,其中,所述商品的历史评论和/或推荐信息由所述智能合约在被调用时从所述机构节点获取。也就是说,在消费者打开与一菜品对应的电子菜单之后,即调用该对应的智能合约时,通过智能合约中预置的代码,触发智能合约对机构节点(例如平台服务节点)发送信息请求,并从所述机构节点接收对该菜品的历史评论和/或推荐信息,从而在电子菜单上显示该菜品的历史评论信息和/或推荐信息。这里的历史评论信息和/或推荐信息是区块链中的消费者节点通过其各自的智能合约对该菜品进行的评论和/或推荐的汇总。
在一个实施例中,所述商品的历史评论和/或推荐信息包括高信用值的用户节点的历史评论和/或推荐信息。例如,筛选出信用值较高的多个用户节点,获取该多个用户节点对所述菜品的历史评论和/或推荐信息,从而使得该历史评论和/或推荐信息更有参考价值。
在一个实施例中,所述调用界面还包括评论区和/或推荐选项,以用于获取所述第二用户对所述商品的评论和/或推荐信息。也就是说,在上述电子菜单上,可对菜品进行评论和/或推荐,并且所述电子菜单会接收所述评论和/或推荐,以用于后续处理。
智能合约在接收用户节点对所述菜品的评论和/或推荐信息时,将所述评论和/或推荐信息发送给所述机构节点。也就是说,在消费者对电子菜单输入评论和/或推荐之后,通过智能合约中预置的代码,触发智能合约将所述评论和/或推荐信息发送给机构节点(例如平台服务节点)。从而,所述机构节点可基于该评论和/或推荐信息,对该菜品的历史评论和/或推荐信息进行累积。因此,来自机构节点的菜品的历史评论和/或推荐信息都是用户在真实消费之后的可信评论和/或推荐,对于消费者是非常有用的参考信息。
图6示意示出了智能合约的示例调用界面。如图6所示,在该调用界面中,包括对菜品的具体描述,包括菜名(龙井虾仁)、菜品价格(150元/份)、食材(虾仁、茶叶等)、食材分量(800g、10片)、图片等,展示了历史推荐、高信用人群推荐,历史评论,评论区、推荐选项、以及点单按钮、结账按钮、投诉按钮等。图6所示的调用界面展示示意性的,可根据具体场景需要具体设定该调用界面,例如,在第一用户为零售经营者的情况下,调用界面中可包括对零售商品的具体描述等。
再回到图5,在步骤S53,通过所述选取部件选取所述商品,以对所述智能合约进行数字签名并确定对所述商品的购买。也就是说,消费者通过点击选取部件,在例如弹出窗口中进行数字签名,从而与商户正式签订了与该智能合约对应的合约。也即,商户具有提供与电子菜单中的描述相符的商品的义务,消费者具有对选取的商品进行付款的义务,而在商户或消费者不履行其义务的情况下,智能合约都会根据其预置的条款自动执行,以使得商户或消费者履行其义务。例如,消费者通过点击图6所示的电子菜单中的“点单”按钮选取菜品。在消费者点击“点单”按钮之后,智能合约受到该动作触发,将由消费者节点对菜品的选取发送给商户节点,商户节点将该信息发送给其自身***内的厨房模块,以通知厨师对该菜品进行制备。这里点单只对应于一个菜品,即一个智能合约。在一个实施例中,可对消费者提供包括多个菜品的电子菜单,其中每个产品对应于一个智能合约,消费者可在选定多个菜品之后,再点击点单,从而完成对多个智能合约的同时签订,即,同时对多个菜品进行点单。
上述对智能合约的调用只是根据本说明书实施例的一种调用场景,在本说明书实施例中,还可以在其它场景中调用所述智能合约(电子菜单)。例如,在消费者用完餐,可再次调用该智能合约,打开电子菜单,并点击结账,以进行付款。消费者可通过多种方式进行结账,可通过现金结账,并由商户节点通知智能合约,可通过对支付宝的扫码付进行扫码以付款,或者可通过智能合约完成从消费者向商户的转账以付款,等等。
另外,在消费者对商品存在不满意的地方,希望进行投诉时,可调用该智能合约,打开电子菜单,点击“投诉”按钮,并在打开页面输入文字描述、上传证据照片,从而进行投诉。智能合约在接收所述投诉信息之后,被触发以对该投诉进行处理,并自动执行处理结果,这在下文将详细描述。
图7示出了根据本说明书实施例的一种智能合约的执行方法,所述智能合约包括对商品的商品描述、和用于在确定所述商品与所述商品描述不符时执行预定事务的代码,并且所述智能合约基于区块链,包括区块链中的第一用户节点和第二用户节点各自的数字签名,所述方法包括:在步骤S71,获取所述第二用户节点对所述商品的投诉信息;在步骤S72,将所述投诉信息与所述商品描述进行比较;以及在步骤S73,在基于所述比较确定所述商品与所述商品描述不符的情况中,执行所述预定事务。所述智能合约的执行方法由所述智能合约在受到相应触发之后自动执行的步骤。
首先,在步骤S71,获取所述第二用户节点对所述商品的投诉信息。第二用户,即消费者,可通过调用上述电子菜单进行投诉,在打开电子菜单后,可点击菜单中显示的投诉按钮,以进行陈述或上传照片等。在消费者进行投诉之后,智能合约获取该消费者的投诉信息,从而触发智能合约开始执行本方法。
在步骤S72,,将所述投诉信息与所述商品描述进行比较。例如,在一个实例中,消费者的投诉信息包括,文字陈述(菜品的分量不够),以及真实菜品的图片。该智能合约在接收所述投诉信息之后,基于图片处理估计实际菜品的图片对应的分量,并将该分量与商品描述中的分量比较,以判断实际菜品与菜单中的描述是否相符。
在步骤S73,在基于所述比较确定所述商品与所述商品描述不符的情况中,执行所述预定事务。在所述商品与所述商品描述不符的情况中,例如自动执行从所述商户对所述消费者的赔偿。在一个实施例中,智能合约在进行所述赔偿之后,将该赔偿通知例如平台服务节点,平台服务节点基于该赔偿对商户累积信用值,即降低商户的信用值。
在一个实施例中,所述智能合约还包括第二机构节点的数字签名,其中所述第二机构节点为所述区块链中的验证节点,例如工商部门节点。在基于所述比较确定所述商品与所述商品描述不符的情况中,智能合约将所述投诉信息发送给所述第二机构节点,第二机构节点针对该投诉信息给出具体处理方案,例如,确定商户对消费者的赔偿方案、赔偿金额等,并将该处理方案发送给智能合约。智能合约在从所述第二机构节点接收对应于所述投诉信息的处理方案之后,对所述第一用户节点实施所述处理方案。例如,工商部门节点可以对智能合约传回预定格式(例如,可执行格式)的处理方案,从而使得智能合约可以根据该处理方案,对所述商户实施该处理方案。从而,通过作为区块链中的验证节点的工商部门的介入,保证了处理方案的合理公正性。
在一个实施例中,所述智能合约还包括第三机构节点的数字签名,所述第三机构节点为所述区块链中的验证节点,例如,司法部门节点,该第三方机构节点也可以是工商部门节点、平台服务节点等。在对所述第一用户节点实施所述处理方案之后,所述第一用户节点和第二用户节点中不同意所述处理方案的一方可向所述第三机构节点申请仲裁,例如,可通过调用智能合约,并点击合约的调用界面中的仲裁按钮申请仲裁。在该情况中,从所述第三机构节点接收所述仲裁的结果,并对所述第一用户节点和第二用户节点实施所述仲裁结果。例如,司法部门节点可以向智能合约传回预定格式的仲裁结果,从而使得智能合约可以根据该仲裁结果,对所述商户或消费者实施该仲裁结果。
在一个实施例中,上述方法还包括,在对所述第一用户节点和第二用户节点实施所述仲裁结果之后,根据所述仲裁结果,对所述第一用户节点和第二用户节点累积信用值。
图8示出了根据本说明书实施例的智能合约的原理图,其中以电子菜单作为所述智能合约的示例。首先,商户节点81通过部署与电子菜单对应的智能合约,消费者节点82通过调用电子菜单并进行点单,从而在商户节点81和消费者节点82之间生成智能合约,该智能合约包括商户和消费者各自的数字签名。由于该智能合约在区块链中执行,其上包括的商品描述信息需经过验证节点的验证,因此真实规范、价格透明且不可私自更改。另外,该电子菜单中的推荐是消费者在真实消费(即点单、付钱)之后进行的推荐,参考价值较大。而在该电子菜单中可提供信用值较高(例如基于芝麻分筛选)的消费者的推荐,从而更加真实可信。
在例如平台服务节点83的验证节点中,通过从商户节点接收身份信息而进行实人认证,基于商户的实人认证信息、芝麻信用分值、智能合约执行情况以及其它第三方信用信息对商户进行信用评估,以获取商户的信用值,并将该信用值在消费者调用智能合约时发送给智能合约以显示,从而供消费者作为是否购买该商品的参考。并且,通过信用值的累积,也起到了联合奖惩的作用,商户在一个消费者进行投诉之后经智能合约确定对消费者进行赔偿之后,商户的信用值降低,从而也影响到商户对其他消费者的商品出售。同时,平台服务节点可类似地对消费者进行信用值累积。
在区块链中还存在工商部门节点84、司法部门节点85等验证节点,并且其也在智能合约上进行数字签名。从而,智能合约在遇到针对投诉信息不能自动确定执行方案的情况下,可将该投诉信息发送给工商部门节点,以从工商部门获取更加公正的执行方案。而消费者可通过工商部门节点、司法部门节点进行投诉、申请仲裁等,以进一步保障自己的权益。
图9示出根据本说明书实施例的一种智能合约部署装置900,所述装置由区块链中的与第一用户对应的第一用户节点实施,所述智能合约对应于所述第一用户节点出售的商品,所述装置900包括:获取单元91,配置为,获取所述商品的预定格式的商品描述;转换单元92,配置为,将所述预定格式的商品描述转换成智能合约代码,所述智能合约代码包括用于在确定所述商品与所述商品描述不符时执行预定事务的代码;签名单元93,配置为,对所述智能合约代码进行数字签名;以及部署单元94,配置为,基于经数字签名的所述智能合约代码,在所述区块链中部署对应的智能合约。
在一个实施例中,在所述智能合约部署装置900中,所述区块链中包括作为验证节点的机构节点,所述装置还包括,发送单元95,配置为,在对所述智能合约代码进行数字签名之后,将所述商品描述和经数字签名的智能合约代码发送给所述机构节点,以及,接收单元96,配置为,在所述商品描述符合规范的情况下,从所述机构节点接收包括所述机构节点的数字签名的智能合约代码。
图10示出根据本说明书实施例的一种智能合约调用装置1000,所述智能合约对应于由区块链中的第一用户节点出售的商品,所述第一用户节点与第一用户对应,并且所述智能合约包括用于在确定所述商品与所述商品描述不符时执行预定事务的代码,所述装置1000由区块链中的与第二用户对应的第二用户节点执行,包括:获取单元1001,配置为,获取所述智能合约的调用地址;调用单元1002,配置为,基于所述调用地址,调用所述智能合约,以打开所述智能合约的调用界面,所述调用界面包括对所述商品的预定格式的商品描述、以及用于选取所述商品的选取部件;以及选取单元1003,配置为,通过所述选取部件选取所述商品,以对所述智能合约进行数字签名。
图11示出根据本说明书实施例的一种智能合约的执行装置1100,所述智能合约包括对商品的商品描述、和用于在确定所述商品与所述商品描述不符时执行预定事务的代码,并且所述智能合约基于区块链,包括区块链中的第一用户节点和第二用户节点各自的数字签名,所述装置包括:获取单元1101,配置为,获取所述第二用户节点对所述商品的投诉信息;比较单元1102,配置为,将所述投诉信息与所述商品描述进行比较;以及执行单元1103,配置为,在基于所述比较确定所述商品与所述商品描述不符的情况中,执行所述预定事务。
在一个实施例中,在所述智能合约的执行装置1100中,所述智能合约还包括第一机构节点的数字签名,所述第一机构节点为所述区块链中的验证节点,所述装置还包括,通知单元1104,配置为,在执行所述预定事务之后,通知所述第一机构节点,以用于对所述第一用户节点累积信用值。
在一个实施例中,在所述智能合约的执行装置1100中,所述智能合约还包括第二机构节点的数字签名,其中所述第二机构节点为所述区块链中的验证节点,其中,所述执行单元还配置为,在基于所述比较确定所述商品与所述商品描述不符的情况中,将所述投诉信息发送给所述第二机构节点,所述装置还包括,第一接收单元1105,配置为,在将所述投诉信息发送给所述第二机构节点之后,从所述第二机构节点接收对应于所述投诉信息的处理方案;以及第一实施单元1106,配置为,对所述第一用户节点实施所述处理方案。
在一个实施例中,在所述智能合约的执行装置1100中,所述智能合约还包括第三机构节点的数字签名,所述第三机构节点为所述区块链中的验证节点,所述装置还包括,第二接收单元1107,配置为,在对所述第一用户节点实施所述处理方案之后,在由所述第一用户节点和第二用户节点中不同意所述处理方案的一方向所述第三机构节点申请仲裁的情况中,从所述第三机构节点接收所述仲裁的结果;以及第二实施单元1108,配置为,对所述第一用户节点和第二用户节点实施所述仲裁结果。
本说明书另一方面提供一种计算机可读的存储介质,其上存储有指令代码,所述指令代码在计算机中执行时,令计算机执行上述智能合约部署方法、智能合约调用方法、以及智能合约的执行方法中的任一种。
本说明书另一方面提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现上述智能合约部署方法、智能合约调用方法、以及智能合约的执行方法中的任一种。
通过根据本说明书的智能合约方案,以智能合约的方式生成电子菜单,从而真实透明不可篡改,解决了信息不对称的问题,通过以智能合约自动执行、投诉、仲裁等分级判决的方式,解决了对商户经营的监督成本较高、消费者维权成本高的问题,并且,通过使用信用值累积进行联合奖惩,也促使商户持续提供更好的服务。同时,用户在结账时可直接通过支付宝对智能合约付款,从而提高了支付宝支付的使用率。
本领域普通技术人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执轨道,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执轨道的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。