生成智能合约的方法及装置
技术领域
本说明书一个或多个实施例涉及计算机技术领域,尤其涉及生成智能合约的方法。
背景技术
区块链(Blockchain)技术是构建比特币网络与交易信息加密传输的底层技术和基础架构,其本质上是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓分布式数据存储的体现在于,区块链可以认为是一个分布式账本,它通过去中心化、去信任的方式集体维护一个可靠数据库。这里的“分布式”不仅体现为数据的分布式存储,也体现为数据的分布式记录,如此,区块链的分布式数据库几乎不可能被篡改。所谓去中心化、去信任体现为,区块链由众多节点共同组成一个端到端的网络,不存在中心化的设备和管理机构。节点之间数据交换通过加密算法等技术进行验证,只要按照系统既定的规则进行,节点之间不能也无法欺骗其它节点。这使得任何达成一致的双方可以直接支付,不需要第三方中介的参与。
智能合约是一种可以自动执行的交易合约。由于区块链的分布式和去中心化的特点,基于区块链技术的智能合约不仅可以发挥智能合约在成本效率方面的优势,而且可以避免恶意行为对合约正常执行的干扰。将智能合约以数字化的形式写入区块链中,由区块链技术的特性保障存储、读取、执行整个过程透明可跟踪、不可攥改。同时,由区块链自带的共识算法构建出一套状态机系统,使得智能合约能够高效地运行。
以太坊提供了一种开源的区块链底层系统,通过提供诸多接口,允许开发人员在此基础上开发各种区块链应用,编写智能合约。然而,包括以太坊在内的现有的智能合约生成机制,并不适于普通用户根据自己的需要定制自己的智能合约。因此,需要更好的机制,能够允许普通用户生成期望的智能合约。
发明内容
本说明书一个或多个实施例描述了一种方法和装置,允许普通用户针对现实世界的交易定制智能合约,从而将区块链的技术优势更好地应用到现实世界。
根据第一方面,提供了一种生成智能合约的方法,包括:接收第一用户通过图形用户界面提供的第一合约内容;接收与第二用户相关联的第二合约内容;根据第一合约内容和第二合约内容,利用所述第一用户和第二用户各自的身份信息作为数字签名,生成智能合约,以便在区块链中执行该智能合约。
根据一种可能的设计,上述接收与第二用户相关联的第二合约内容包括:根据所述第一合约内容生成图形编码,所述图形编码用于唯一地解析到所述第一合约内容;接收第二用户响应于所述图形编码而提交的所述第二合约内容。
根据另一种可能的设计,上述接收与第二用户相关联的第二合约内容包括:根据所述第一合约内容生成邀约记录;将所述邀约记录进行广播;接收所述第二用户响应于所述邀约记录而提供的第二合约内容。
在一种实施例中,上述第一合约内容包括:交易对象,交易价格,以及交易条款。
根据一种可能的设计,上述方法还包括:获取所述第一用户和所述第二用户中至少一个的信用信息。
相应地,在一个实施例中,根据所述信用信息,确定是否生成所述智能合约,以及/或者,根据所述信用信息,修改所述智能合约的预定条款的内容。
在一个实施例中,生成智能合约的步骤具体包括:从所述第一合约内容和所述第二合约内容中提取合约特征;根据所述合约特征确定各个合约字段的内容;将所述各个合约字段编译为符合智能合约格式的可执行代码,并为其添加所述数字签名。
根据一种可能的设计,所述方法还包括:获取第三方验证机构对所述智能合约中的至少部分内容的验证信息。相应地,根据所述第一合约内容、第二合约内容和所述验证信息,生成智能合约。
在一个实施例中,所述方法还包括:将所述智能合约在所述区块链中进行广播,使得所述区块链中的至少一个节点将所述智能合约记录在某个区块中,进而使得所述区块链内置的智能合约系统自动执行所述智能合约。
在一个实施例中,上述智能合约为实物租赁合约,或实物销售合约,或服务合约。
根据第二方面,提供一种生成智能合约的装置,包括:第一接收单元,配置为接收第一用户通过图形用户界面提供的第一合约内容;第二接收单元,配置为接收与第二用户相关联的第二合约内容;第一生成单元,配置为根据第一合约内容和第二合约内容,利用所述第一用户和第二用户各自的身份信息作为数字签名,生成智能合约,以便在区块链中执行该智能合约。
根据第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面的方法。
根据第四方面,提供了一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面的方法。
通过本说明书实施例提供的方法及装置,允许用户通过图形用户界面,定制针对现实世界交易的合约内容,据此生成能够在区块链中自动执行的智能合约,如此使得,区块链技术更好地应用到普通用户,应用到现实世界中。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本说明书披露的一个实施例的实施场景示意图;
图2示出根据一个实施例的生成智能合约的流程图;
图3示出根据一个实施例的图形用户界面的示意图;
图4示出一个合约的示例;
图5示出获取用户的信用信息的界面示意图;
图6示出根据一个实施例的生成智能合约的装置的示意性框图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
图1为本说明书披露的一个实施例的实施场景示意图。在该实施场景中,服务平台(例如芝麻信用平台)一方面作为区块链网络中的一个节点,执行常规节点的功能,例如交易的记录、转发、执行等,另一方面,作为服务方与其用户交互,为其提供服务。提供的服务可以包括,将用户的合约内容转化为智能合约。。在一个实施例中,服务平台为用户提供接入服务的终端工具,即客户端工具,例如App,Dapp(分布式App),PC客户端等,该终端工具为用户提供图形用户界面GUI(Graphical User Interface),该图形用户界面可用于接收智能合约的合约内容。达成交易一致的双方用户A和B,可以通过该GUI,采用拖拽、点击、录入等直观的方式,输入合约内容。终端工具采集用户输入的内容,发送到服务平台。服务平台接收到用户输入的内容,根据输入内容生成智能合约,并将该智能合约在区块链网络中广播、记录,使其在区块链中得到执行。具体而言,第一用户A可以通过其终端工具申请创建一个合约,并输入第一合约内容。与第一用户A达成一致的第二用户B进而通过其终端工具输入第二合约内容。服务平台分别接收上述第一合约内容和第二合约内容,将其合并成完整合约,并对其进行编译、格式转化、添加签名,从而生成适于自动执行的智能合约。根据用户输入的合约内容,上述智能合约可以是现实世界中的合约,例如真实产品的销售合约,真实房屋的租赁合约等等。如此,将用户通过GUI输入的合约内容,转化为可在区块链中执行的智能合约,从而使得用户可以定制自己的智能合约,并将区块链技术应用于现实世界交易的执行。下面详细描述以上智能合约的生成过程。
图2示出根据一个实施例的生成智能合约的流程图。该方法流程的执行主体可以是图1所示的服务平台。如图2所示,上述方法流程包括:步骤21,接收第一用户通过图形用户界面提供的第一合约内容;步骤22,接收与第二用户相关联的第二合约内容;步骤23,根据第一合约内容和第二合约内容,利用所述第一用户和第二用户各自的身份信息作为数字签名,生成智能合约,以便在区块链中执行该智能合约。下面结合例子描述以上各个步骤的具体执行过程。
首先,如前所述,终端工具可以为用户提供图形用户界面GUI,该图形用户界面可用于接收智能合约的合约内容。具体而言,终端工具可以将不同类型的智能合约可能涉及的内容拆分为多个模块,各个模块对应不同类型的合约下的不同合约部分,例如租赁合约下出租方模块,承租方模块,销售合约下商户模块和消费者模块等,每个模块下又可以根据需要划分为进一步的子模块。终端工具可以将这些模块用图形用户界面GUI的方式提供给用户,用户于是可以在该GUI下,采用拖拽、点击等操作方式,用拼接模块的方式,输入合约内容,生成期望的智能合约。
图3示出根据一个实施例的图形用户界面的示意图。如图3所示,终端工具将智能合约划分为多种现实场景,包括办公租赁,租充电,租车,租房,安心消费等。除了图示的一些实物交易/租赁合约,还支持服务类的场景,例如咨询服务,教育服务,美容服务等。每个场景对应相应的程序模块。假定用户选择了租房的场景,也就是点击了租房场景对应的模块,就可以进入这个场景之下的子模块进行进一步选择,包括房东模块,房客模块。假定用户选择了房东模块,那么就可以在进一步的模块中进行选择,例如房屋信息,房东信息,交付方式,违约约定等。通过图2的示例可以看到,终端工具所提供的图形用户界面GUI,允许用户通过简单的拖拽、点击等操作,采用如同积木搭建的方式来拼接各个模块,从而形成期望的智能合约。
基于这样的图形用户界面,在步骤21,接收第一用户通过图形用户界面提供的第一合约内容。换而言之,根据第一用户在上述图形用户界面中进行的点击、输入等操作,获取第一合约内容。一般地,第一用户作为合约的创建方和发起方,会输入合约中的大部分重要信息,例如包括:交易对象,交易价格,以及交易条款。例如,在租房合约的情况下,第一用户通常为房东。相应地,房东通过图形用户界面GUI输入的第一合约内容可以包括,房屋信息,租赁价格,和其他交易条款,包括交付方式,违约处理方式等。又例如,在产品销售合约的情况下,第一用户通常为商户。相应地,商户通过GUI输入的第一合约内容可以包括,售卖产品信息,销售价格,和其他交易条款,例如保价承诺,退换处理,违约处理等。另外,在多数情况下,第一合约内容还会包括第一用户的身份信息。
接着,在步骤22,还接收与第二用户相关联的第二合约内容。一般地,第二用户是与第一用户缔结合约的交易相对方。在第一用户提供的第一合约内容已经包含大部分合约关键内容的情况下,第二合约内容通常包括第二用户的身份信息。下面结合具体例子描述以上合约内容的获取过程。
在一个实施例中,上述合约为安心消费合约。安心消费合约也是一种实物产品的销售合约,但与常规消费合约不同的是,往往还包括一些附加条款,例如保价条款,三包条款等。保价条款例如是,在3个月之内,在本店销售的所有此类物品中,保证价格最低,否则给予当前价格3倍的赔偿。三包条款例如是,保证在一定期限之内(例如3个月),包修包退包换。对于这样的合约,发起方一般为商户。商户可以通过终端工具提供的图形用户界面,选择安心消费的合约类型(如图2右上角所示),然后继续通过GUI选择适当的模块,进而输入第一合约内容。相应地,在步骤21,服务平台接收商户通过GUI形式的终端工具输入的第一合约内容,这些内容可以包括,售卖产品信息,销售价格,和其他安心消费条款,例如保价承诺,退换处理,违约处理等。
在获得第一合约内容之后,在一个实施例中,为该第一合约内容生成图形编码。该图形编码例如是二维码(当然也可以是条形码,或者其他更复杂的编码)。下面以二维码为例进行说明。针对该第一合约内容生成的二维码可以唯一地解析、关联到该第一合约内容。商户在获得这样的二维码之后,可以在其商户,或其售卖相应产品的展位处张贴该二维码。
另一方面,消费者可以用其对应的终端工具来扫描该二维码,通过扫描二维码查阅该二维码对应的第一合约内容,包括其中的安心消费条款,例如保价承诺,退换处理等。如果消费者对第一合约内容感到满意,就可以在相应的图形用户界面上进行操作,例如点击“下单”或“确认”等,如此生成订单,缔结合约,成为合约的另一方,也就是成为前述的第二用户。相应地,响应于该二维码而提交的订单信息也就包含了第二合约信息。一般地,第一合约信息已经约定了安心消费的多数条款信息,第二合约信息一般包括消费者,即第二用户的身份信息,例如用户ID,退款账户等。如此,分别获取了第一合约内容和第二合约内容。
以上描述了针对安心消费合约,合约内容的获取过程。
在另一实施例中,要生成的智能合约为实物租赁合约,例如租房合约。
在一个例子中,如图3所示,假定用户(第一用户)选择了租房的场景,并继续选择了房东模块,然后在该模块中进一步选择输入了房屋信息,价格信息,交付方式等第一合约内容。在一个实施例中,在接收到这样的第一合约内容之后,服务平台相应地生成一条邀约记录,该邀约记录对应地包含第一合约内容的核心特征。终端工具将该邀约记录在其服务网络中进行广播。网络中的其他节点可以记录、转发该条邀约记录,于是其他用户可以接收、查询到该条邀约记录。假设另一用户,即第二用户,在查阅该邀约记录之后,愿意缔结合约,那么该用户可以提取该条邀约记录,打开它对应的图形用户界面,选择房客模块,在其中输入第二合约内容。该第二合约内容例如是第二用户的身份信息。如此,服务平台分别获取了第一合约内容和第二合约内容。
在另一例子中,还可以由同一用户输入第一合约内容和第二合约内容两者。例如,在一个实施场景下,房东与房客已经在线下经过实地看房,达成了合约意向。房客可以把自己的身份信息提供给房东。在这样的情况下,房东可以通过图形用户界面,选择并输入已经与房客达成一致的整个合约的内容,例如包括房屋信息,价格信息,交付方式等第一合约内容,以及与房客身份相关的第二合约内容。如此,终端工具可以直接获得第一合约内容和第二合约内容,并将这些合约内容发送到服务平台。
通过如上所述的多种方式,用户可以通过GUI中的简单操作提供合约内容。相应地,在步骤21和22,服务平台可以获取第一合约内容和第二合约内容。在此基础上,在步骤23,根据第一合约内容和第二合约内容,利用第一用户和第二用户各自的身份信息作为数字签名,生成智能合约。生成智能合约的过程主要包括,对第一合约内容和第二合约内容进行内容提取,合并,并且进行编译和代码化的过程。
在一个实施例中,生成智能合约的过程包括,首先为合约中的交易对象生成唯一标识码,从而对交易对象进行代码化。例如,如果交易对象是待出租的房屋,可以为该房屋生成唯一标识码;如果交易对象是待售卖的产品,也可以为该产品生成唯一标识码。
对于合约的其他字段内容,具体地,步骤23可以进一步包括,从第一合约内容和第二合约内容中提取合约特征,根据所述合约特征确定各个合约字段的内容。可以理解,第一合约内容和第二合约内容是用户通过图形用户界面提供的,图形用户界面实际上是将合约拆分为不同类型下的不同模块,并将这些模块的功能可视化地提供给用户的工具。用户拖拽、点击、选择各个模块的操作,就相当于激活了各个模块对应的程序代码。相应地,对于用户通过各个模块输入的合约内容,终端工具/服务平台可以对应地了解输入内容的含义,从而从合约内容中提取出合约特征,将对应的合约特征放入与模块对应的合约字段,从而生成各个合约字段。例如,第一用户在选择房屋信息模块后输入了内容“雄安xxx小区xxx幢xx楼xx室”。对此,服务平台可以从中提取出合约特征“雄安xxx小区xxx幢xx楼xx室”,并通过输入该特征的模块“房屋信息”,将该合约特征放入对应的合约字段“房屋位置”。
图4示出一个合约中的各个合约字段的示例。具体地,图4的例子示出一个租房合约的一部分,其中包含多个字段:房屋标识码,房屋位置,房东身份信息,租赁方身份信息,租赁方式,支付方式,违约约定等。各个字段的内容从用户通过图形用户界面提供的第一合约内容/第二合约内容中提取。可以理解,图4仅为一个示意,实际的合约可能包含更多或更少的字段,可以采用更接近可执行代码的形式。
在以上基于第一合约内容和第二合约内容生成各个合约字段的基础上,还要对包含各个合约字段的整个合约进行格式编译,并利用所述第一用户和第二用户各自的身份信息进行签名,才能生成智能合约。
可以理解,智能合约是可以在区块链中传播、记录并自动执行的一种合约。为了能在区块链中自动执行,智能合约需要具有机器可执行的编码形式,并具有加密性,不可篡改性等特征。为此,将以上获取的各个合约字段进行组合,并其编译为智能合约的形式。在一个具体例子中,将包含各个合约字段的合约内容转化为脚本程序的形式,该脚本程序可以直接被区块链中的智能合约系统读取并执行。
此外,智能合约的参与方作为区块链的用户,会获得区块链返回的一对公钥和私钥;公钥做为用户在区块链上的账户地址,私钥做为操作该账户的唯一钥匙。对于上述第一用户和第二用户要缔结的智能合约,可以用第一用户和第二用户各自的私钥作为数字签名,添加到上述脚本程序中,从而生成智能合约。
在一个实施例中,在生成上述智能合约之前,或之后,实施例的方法还包括,获取第一用户和第二用户中至少一个的信用信息。
在一个实施例中,仅获取第一用户的信用信息。例如,在安心消费合约的情况下,可以仅获取第一用户,也就是商户的信用信息,而对于消费者不作要求。在另一实施例中,仅获取第二用户的信用信息。例如,在某些实物的租赁合约的情况下,可以仅获取第二用户,也就是承租方的信用信息,而对于出租方不作要求。在又一实施例中,则需要获取第一用户和第二用户两者的信用信息。例如,在房屋租赁合约的情况下,既需要获取第一用户,房主方的信用信息,也需要获取第二用户,房客方的信用信息,从而更好地确保智能合约缔结的真实性。
在一个实施例中,上述信用信息包括实人认证信息。实人认证信息例如包括,采用人脸、身份证号等真实信息进行认证的信息。
在一个实施例中,上述信用信息包括芝麻信用信息。芝麻信用是基于用户的交易记录、借贷记录、消费记录等大数据对用户进行全面评估而得出的信用分数,可以用于反映一个用户总体的信用状态。用户的注册信息可以与其芝麻信用相关联。相应地,获取用户的信用信息包括,读取该用户的芝麻信用信息。
在另一实施例中,上述信用信息还可以包括第三方信用机构提供的信用信息。第三方信用机构可以包括,银行、政府机构、征信机构等机构,这些机构也有可能基于用户的各种行为数据为用户评估其信用状态。为了获取这样的信用信息,可以首先获取用户提供的、在上述第三方机构的身份信息和授权,根据这样的身份信息和授权,向第三方机构发出请求,由此接收第三方机构针对该用户的信用信息。
在又一实施例中,上述信用信息还可以包括,根据之前的智能合约的执行情况而确定的信用分数累积。在一个例子中,在区块链中运行的智能合约可以自动得到执行。遵守合约,使得智能合约顺利执行的用户,在合约执行完毕之后可以得到一定的信用分数累积。这样的信用分数累积也可以作为用户的信用信息。
图5示出获取用户的信用信息的界面示意图。在图5的例子中,用户需要进入核身平台,方可进行接下来的缔约操作。在核身平台中,用户可以选择提供一种或多种信用信息,例如进行实人认证,读取芝麻信用,采用征信信息进行信用评估等。可以理解,信用信息可以包括以上列举的若干信息中的一种或多种,还可以包括未能穷尽列举的其他种信息。
在一个实施例中,在生成智能合约之前,即获取第一用户和/或第二用户的信用信息,根据获取的信用信息,确定是否生成智能合约。在一个具体例子中,如果获取的第一用户和/或第二用户的信用信息不满足预定要求,例如达不到预定信用级别,则拒绝其合约生成请求。例如,在租房合约的场景下,如果第一用户,即房主的信用信息不符合预定要求,则可以放弃为其生成邀约记录;如果第二用户,即房客的信用信息不符合预定要求,则可以拒绝其缔约操作。由此,仅为信用信息符合要求的用户生成智能合约。
在一个实施例中,在根据第一合约内容和第二合约内容生成智能合约之后,获取第一用户和/或第二用户的信用信息,并根据信用信息,修改智能合约中预定条款的内容。例如,在租房合约的场景下,第一用户在支付方式模块中选择了默认的支付方式:付三押一。相应地,据此生成的智能合约中会包含关于支付方式的条款,条款中规定以付三押一的方式进行支付。假定在获取了第二用户的信用信息后,判定第二用户的信用信息满足免押金的条件,例如芝麻信用分在750分以上,此时可以自动修改智能合约中关于支付方式的条款,将其修改为免押金支付。当然,另一方面,如果判断第二用户的信用低于一定阈值,还可以将支付方式的条款修改为,押金翻倍。在一个例子中,在第一用户和/或第二用户的信用不符合预定条件的情况下,还可以取消已经生成的智能合约。
在一个实施例中,为了进一步保证智能合约的真实有效,还可以获取第三方验证机构对智能合约中的至少部分内容的验证信息。上述第三方验证机构可以包括,政府相应的管理部门,或者民间组织的验证机构。验证机构可以对合约中的至少部分内容的真实性或合法性进行验证,例如验证交易对象的真实性,验证交易价格的合理性等。更具体地,例如在租房合约的场景下,可以将交易对象的信息,即房屋信息发送到第三方验证机构,例如房管局,来验证该房屋的真实性,以及当前的法律状态。在一个实施例中,根据验证机构的验证信息,生成智能合约。这包括,根据验证是否通过,确定是否生成智能合约。如果验证信息显示,交易对象的合法性或真实性存在问题,那么可以取消智能合约。如果验证通过,才生成智能合约。在一个实施例中,根据验证机构的验证信息生成智能合约还包括,在智能合约中包含上述验证信息。在一个例子中,对于验证通过的交易对象,为其添加已验证的标签或标记。在另一例子中,在智能合约中添加特殊字段,用该字段指示出验证结果。
在一个实施例中,在第一用户和第二用户进行签名之后,还将合约发送给第三方仲裁或监管机构,由这些机构为该合约进行签名。如此,在出现智能合约中约定的违约事项的情况下,可以自动地将合约转发给仲裁节点或监管节点,进行事后仲裁和监管。
添加有用户签名(以及可选的第三方仲裁/监管机构签名)的智能合约可以通过P2P网络扩散并存入区块链。具体地,服务平台在生成智能合约之后,可以将智能合约在区块链中进行广播,使其通过P2P的方式在区块链全网中扩散,每个节点都会收到一份;区块链中的验证节点会将收到的合约暂存,在预设的时机下(称为共识时间),把最近一段时间内暂存的所有合约,打包成一个合约集合,并算出这个合约集合的哈希Hash值,然后将这个合约集合的Hash值组装成一个区块结构,扩散到全网。其它验证节点收到这个区块结构后,会根据上述Hash值,对区块中保存的合约进行对比和验证,直到对最新的合约集合达成一致。最新达成的合约集合会以区块的形式扩散到全网,每个区块包含区块头和区块体,区块头包括:当前区块的Hash值、前一区块的Hash值、达成共识时的时间戳、以及其它描述信息;区块体中记录已经达成共识的合约集。
区块中记录的智能合约可以在区块链中自动执行。具体地,区块链底层内置的智能合约系统定期遍历每个合约内包含的状态机、事务以及触发条件,满足触发条件的,将执行合约中规定的事务,例如转账,合约转发,赔偿,改变用户状态等。如此,实现智能合约的自动执行。
通过以上描述可以看到,通过向用户提供图形用户界面,可以接收用户针对现实世界的实物所缔结合约的合约内容,据此生成智能合约,使得该智能合约可以在区块链中自动执行。如此使得,普通用户可以针对现实世界的交易定制自己的智能合约,更好地将区块链技术应用到现实世界中。
根据另一方面的实施例,还提供一种生成智能合约的装置。图6示出根据一个实施例的生成智能合约的装置的示意性框图。如图6所示,该生成装置600包括:第一接收单元61,配置为接收第一用户通过图形用户界面提供的第一合约内容;第二接收单元62,配置为接收与第二用户相关联的第二合约内容;生成单元63,配置为根据第一合约内容和第二合约内容,利用所述第一用户和第二用户各自的身份信息作为数字签名,生成智能合约,以便在区块链中执行该智能合约。
在一个实施例中,装置600还包括编码生成单元(未示出),配置为根据所述第一合约内容生成图形编码,所述图形编码用于唯一地解析到所述第一合约内容。相应地,第二接收单元62配置为,接收第二用户响应于所述图形编码而提交的所述第二合约内容。
在另一实施例中,装置600还包括邀约生成单元(未示出),配置为根据所述第一合约内容生成邀约记录;并将所述邀约记录进行广播。相应地,所述第二生成单元62配置为,接收所述第二用户响应于所述邀约记录而提供的第二合约内容。
根据一种实施方式,所述第一合约内容包括:交易对象,交易价格,以及交易条款。
在一个实施例中,装置600还包括信用获取单元610,配置为:获取所述第一用户和所述第二用户中至少一个的信用信息。
相应地,在一个实施例中,生成单元63配置为:根据所述信用信息,确定是否生成所述智能合约。在一个实施例中,生成单元63还配置为:根据所述信用信息,修改所述智能合约的预定条款的内容。
根据一个实施例,所述生成单元63配置为:从所述第一合约内容和所述第二合约内容中提取合约特征;根据所述合约特征确定各个合约字段的内容;将所述各个合约字段编译为符合智能合约格式的可执行代码,并为其添加所述数字签名。
在一个实施例中,装置600还包括验证单元(未示出),配置为获取第三方验证机构对所述智能合约中的至少部分内容的验证信息。相应地,所述生成单元63配置为:根据所述第一合约内容、第二合约内容和所述验证信息,生成智能合约。
在一个实施例中,装置600还包括广播单元64,配置为:将所述智能合约在所述区块链中进行广播,使得所述区块链中的至少一个节点将所述智能合约记录在某个区块中,进而使得所述区块链内置的智能合约系统自动执行所述智能合约。
根据一个实施例,上述智能合约为实物租赁合约,实物销售合约,或服务合约。
通过以上实施例,可以接收用户通过图形用户界面提供的、针对现实世界合约的合约内容,据此生成智能合约,使得该智能合约可以在区块链中自动执行。如此使得,普通用户可以针对现实世界的交易定制自己的智能合约,更好地将区块链技术应用到现实世界中。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图2所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图2所述的方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。