CN107341402B - 一种程序执行方法及装置 - Google Patents

一种程序执行方法及装置 Download PDF

Info

Publication number
CN107341402B
CN107341402B CN201710463921.5A CN201710463921A CN107341402B CN 107341402 B CN107341402 B CN 107341402B CN 201710463921 A CN201710463921 A CN 201710463921A CN 107341402 B CN107341402 B CN 107341402B
Authority
CN
China
Prior art keywords
decision
program
intelligent contract
preset
user
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.)
Expired - Fee Related
Application number
CN201710463921.5A
Other languages
English (en)
Other versions
CN107341402A (zh
Inventor
徐刚
胡淳一
陈盛东
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Celian Information Technology Co ltd
Original Assignee
Shanghai Celian Information Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Celian Information Technology Co ltd filed Critical Shanghai Celian Information Technology Co ltd
Priority to CN201710463921.5A priority Critical patent/CN107341402B/zh
Publication of CN107341402A publication Critical patent/CN107341402A/zh
Application granted granted Critical
Publication of CN107341402B publication Critical patent/CN107341402B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Resources & Organizations (AREA)
  • General Engineering & Computer Science (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Physics & Mathematics (AREA)
  • Operations Research (AREA)
  • General Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请公开了一种程序执行方法,应用于基于区块链的去中心化***,其中,所述去中心化***中的目标程序被收录至所述区块链的分布式数据库,所述目标程序的执行流程由预设用户群组中的各用户共同决策;所述方法包括:收集所述预设用户群组中的各用户基于持有的私钥分别提交的决策结果;基于收集到的决策结果以及预设决策策略确定所述目标程序是否决策通过;如果所述目标程序决策通过,向所述区块链发布所述目标程序的执行结果。本申请还以提升去中心化***中的目标程序的执行稳定性。

Description

一种程序执行方法及装置
技术领域
本申请涉及计算机应用技术领域,尤其涉及一种程序执行方法及装置。
背景技术
区块链技术,是一种由若干台计算设备共同参与“记账”,共同维护一份完整的分布式数据库的新兴技术。由于区块链技术具有去中心化、公开透明、每台计算设备可以参与数据库记录、并且各计算设备之间可以快速的进行数据同步的特性,利用区块链技术来搭建去中心化***,并在区块链的分布式数据库中收录各种执行程序进行自动执行,已在众多的领域中广泛的进行应用;例如,在金融科技领域,利用区块链技术搭建P2P支付平台,并在区块链上发布诸如智能合约等执行程序,可以在不经过银行等金融机构的前提下,实现不同的用户之间的点对点安全支付。
在实际应用中,由于被收录至区块链的分布式数据库中的执行程序,会被同步至区块链中的各台计算设备,并在各台设备上自动进行执行,因此出于安全上的考虑,这些被收录至区块链中的执行程序,通常都会在执行代码中严格的设置执行条件。
然而,随着应用场景的复杂化,即便为写入区块链中的执行程序设置严格的执行条件,在一些特殊的场景下,该执行程序仍然可能无法正常执行的问题。
发明内容
有鉴于此,本申请提出一种程序执行方法,一种程序执行方法,其特征在于,应用于基于区块链的去中心化***,其中,所述去中心化***中的目标程序被收录至所述区块链的分布式数据库,所述目标程序的执行流程由预设用户群组中的各用户共同决策;所述方法包括:
收集所述预设用户群组中的各用户基于持有的私钥分别提交的决策结果;
基于收集到的决策结果以及预设决策策略确定所述目标程序是否决策通过;
如果所述目标程序决策通过,向所述区块链发布所述目标程序的执行结果。
可选的,所述目标程序包括多个子程序;
所述基于收集到的决策结果以及预设决策策略确定所述目标程序是否决策通过,包括:
基于收集到的决策结果以及所述预设决策策略确定各子程序是否均决策通过;如果各子程序均决策通过,则确定所述目标程序决策通过。
可选的,所述预设决策策略,包括:
基于收集到的决策结果统计所述预设用户群组中决策通过的用户比例;
判断所述用户比例是否达到预设阈值;
如果所述用户比例达到预设阈值,确定决策通过。
可选的,其中,各用户持有的私钥分别预设了对应的决策权重比例;所述用户比例为决策通过的各用户所持有的私钥对应的决策权重比例之和。
可选的,当所述目标程序包括多个子程序时,所述目标程序中的各子程序,分别对应不同的所述预设阈值。
可选的,所述目标程序为已发布至区块链上的智能合约程序;或者,用于在线协商所述智能合约程序的在线协商程序;
其中,所述智能合约程序,为债权人、债务人以及银行三方在线协商出的,基于所述债权人和债务人之间的应收账款信息向所述银行进行融资贷款的智能合约程序。
可选的,所述目标程序为用于对所述预设用户群组中的各用户持有的私钥进行互换、增加、删减的执行程序。
本申请还提出一种程序执行装置,应用于基于区块链的去中心化***,其中,所述去中心化***中的目标程序被收录至所述区块链的分布式数据库,所述目标程序的执行流程由预设用户群组中的各用户共同决策;所述装置包括:
收集模块,用于收集所述预设用户群组中的各用户基于持有的私钥分别提交的决策结果;
确定模块,用于基于收集到的决策结果以及预设决策策略确定所述目标程序是否决策通过;
执行模块,用于在所述目标程序决策通过时,向所述区块链发布所述目标程序的执行结果。
可选的,所述目标程序包括多个子程序;
所述确定模块进一步用于:
基于收集到的决策结果以及所述预设决策策略确定各子程序是否均决策通过;如果各子程序均决策通过,则确定所述目标程序决策通过。
可选的,所述预设决策策略,包括:
基于收集到的决策结果统计所述预设用户群组中决策通过的用户比例;
判断所述用户比例是否达到预设阈值;
如果所述用户比例达到预设阈值,确定决策通过。
可选的,其中,各用户持有的私钥分别预设了对应的决策权重比例;所述用户比例为决策通过的各用户所持有的私钥对应的决策权重比例之和。
可选的,当所述目标程序包括多个子程序时,所述目标程序中的各子程序,分别对应不同的所述预设阈值。
可选的,所述目标程序为已发布至区块链上的智能合约程序;或者,用于在线协商所述智能合约程序的在线协商程序;
其中,所述智能合约程序,为债权人、债务人以及银行三方在线协商出的,基于所述债权人和债务人之间的应收账款信息向所述银行进行融资贷款的智能合约程序。
可选的,所述目标程序为用于对所述预设用户群组中的各用户持有的私钥进行互换、增加、删减的执行程序。
在本申请中,提出了一种针对区块链中的目标程序执行多用户多私钥共同决策的机制,基于区块链的去中心化***在将目标程序收录至区块链中的分布式数据库后,可以收集预设用户群组中的各用户基于持有的私钥分别提交的决策结果,然后基于收集到的决策结果以及预设决策策略确定该目标程序是否决策通过;如果该目标程序决策通过,则可以向所述区块链发布所述目标程序的执行结果;
由于在本申请中,针对区块链中的目标程序的决策授权,不再依赖于基于单一私钥的决策授权机制,而是通过预设用户群组中的多个用户基于各自持有的多个私钥进行共同授权,因此可以避免单一私钥一旦丢失或被破解,而造成的目标程序无法执行的问题,使得该目标程序在部分私钥丢失或被破解的情况下,该目标程序仍然能够正常执行,从而可以提升目标程序的执行稳定性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本申请的程序执行方法的流程示意图;
图2是本申请一实施例示出的一种程序执行装置的逻辑框图;
图3是本申请一实施例示出的一种承载所述程序执行装置的硬件设备的硬件架构图。
具体实施方式
在基于区块链技术搭建的去中心化***中,由于被收录至区块链的分布式数据库中的执行程序,通常会被同步至区块链中的各台计算设备,并在节点设备上分别独立的进行执行,因此出于安全上的考虑,这些被收录的执行程序,通常都都会在执行代码中严格的设置执行条件。
在实际应用中,上述执行条件,通常是要求与执行程序相关的管理用户,即程序预设用户群组中的用户,使用持有的私钥对执行程序的执行流程进行决策授权。
例如,在实际应用中,管理用户可以使用持有的私钥提交一个电子签名作为授权结果;或者,管理用户可以使用持有的私钥提交一个进行电子签名后的指令或者消息作为授权结果,对上述执行程序的执行流程进行决策授权。
在这种情况下,当区块链中任意一台计算设备上的目标程序被触发执行后,只有管理用户使用持有的私钥对该目标程序进行决策授权通过后,该目标程序才会将执行结果发布至区块链。
然而,基于现有的决策授权机制,用户在对被触发执行的目标程序进行决策授权时,通常是基于单一私钥的授权;即用户通常仅持有用于对目标程序进行决策授权的唯一私钥。
在这种情况下,一旦该唯一私钥出现丢失(比如持有该私钥的员工离职)或者被破解等意外情况,造成的后果将非常严重,可能直接导致该执行程序不可用,甚至给用户造成经济损失;
例如,以上述目标程序为发布至区块链中的智能合约为例,如果持有对该智能合约进行决策授权的唯一私钥出现丢失或者被破解,不仅会造成该智能合约的报废,甚至会由于该唯一私钥被冒用而对用户造成进行损失。
可见,现有的基于单一私钥对目标程序进行决策授权的机制,存在着显著的技术局限,在唯一私钥出现丢失或者被破解的特殊场景下,会影响目标程序的执行稳定性。
为了解决上述问题,本申请提出一种提出了一种针对区块链中的目标程序执行多用户所私钥共同决策的机制,基于区块链的去中心化***在将目标程序收录至区块链的分布式数据库后,如果任意一台计算设备上的该目标程序被触发执行,则可以收集预设用户群组中的各用户基于持有的私钥分别提交的决策结果,然后基于收集到的决策结果以及预设决策策略确定该目标程序是否决策通过;如果该目标程序决策通过,则可以向所述区块链发布所述目标程序的执行结果;
由于在本申请中,针对区块链中的目标程序的决策授权,不再依赖于基于单一私钥的决策授权机制,而是通过预设用户群组中的多个用户基于各自持有的多个私钥进行共同授权,因此可以避免单一私钥一旦丢失或被破解,而造成的目标程序无法执行的问题,使得该目标程序在部分私钥丢失或被破解的情况下,该目标程序仍然可能正常执行,从而可以提升目标程序的执行稳定性。
下面通过具体实施例并结合具体的应用场景对本申请进行描述。
请参考图1,图1是本申请一实施例提供的一种程序执行方法,应用于基于区块链的去中心化***,其中,所述去中心化***中的目标程序被收录至区块链的分布式数据库中,所述目标程序的执行流程由预设用户群组中的各用户共同决策;执行以下步骤:
步骤101,收集所述预设用户群组中的各用户基于持有的私钥分别提交的决策结果;
步骤102,基于收集到的决策结果以及预设决策策略确定所述目标程序是否决策通过;
步骤103,如果所述目标程序决策通过,向所述区块链发布所述目标程序的执行结果。
上述去中心化***,具体可以是一个基于区块链技术搭建的,“去中心化”的分布式***。
其中,在上述去中心化***中,可以包括若干台计算设备,这些计算设备可以呈现一种高度自治的“去中心化”特性,并且可以通过搭载区块链的共识机制(比如特定的共识协商算法),将本地化产生的数据,或者发布的执行程序发布至该区块链上,并被最新生成的新区块的“记账人”(俗称“矿工”)收录至该新区块中,同时接入该区块链的各个节点可以将该区块内的所有内容同步至其本地,从而构成该区块链的分布式数据库。
通过这种方式,用户无需在后台部署大规模的服务器集群作为“数据中心”,而且用户一侧的任意形式的前端设备(比如移动终端、PC终端),都可以作为上述去中心化***中的一台计算设备节点。当同步至该计算设备节点的目标程序被触发执行后,预设用户群组的用户都可以基于持有的私钥,通过该计算设备发起对该目标程序的决策授权。
上述预设用户群组,是指由多个具有对目标程序进行决策授权权限的用户所组成的用户群组。在实际应用中,上述预设用户群组,具体可以以白名单的形式,设置在上述目标程序中。通过这种方式,使得只有命中了白名单的用户,才能够参与到对上述目标程序的决策授权过程。
在实际应用中,该用户群组中的每一个用户,都可以持有一个用于对目标程序进行决策授权的私钥(当然在实际应用中,每一个管理用户也可以持有多个私钥)。当上述目标程序在区块链中被触发执行后,上述用户群组中的各用户可以基于自己持有的私钥,向该区块链提交一个决策结果,而该目标程序可以根据收集到的决策结果,以及预设的决策策略,来确定该目标程序是否决策通过;比如,在实现时,上述决策策略具体可以是基于收集到的电子签名的数量来确定上述目标程序的执行流程是否决策通过。
其中,在实际应用中,上述决策结果的具体形式,在本申请中不进行特别限定;例如,上述决策结果,具体可以是一个管理用户使用持有的私钥提交的一个电子签名;也可以是管理用户使用持有的私钥进行电子签名后的一个指令或者消息,等等。
上述目标程序,是指被收录至区块链的分布式数据库,并同步至区块链中各台计算设备的程序代码。其中,上述目标程序的具体形态,在本申请中不进行特别限定,可以是已经收录至区块链的分布式数据库中的,其执行流程需要由用户进行决策授权的任意形式的可执行程序;
例如,上述目标程序可以是已经发布至区块链上的执行程序(比如智能合约程序)、用于向区块链上在线发布程序的执行程序(比如用于在线协商上述智能合约的在线协商程序),以及用于对上述预设用户群组中的各用户持有的私钥进行互换、增加、删减的执行程序,或者其它类型的可以在区块链上执行的程序,等等。
上述对目标程序的执行流程的决策授权,具体可以包括对上述目标程序是否开始运行的决策授权,也可以包括对上述目标程序的执行过程的决策授权;
例如,在一种情况下,上述决策授权的过程,可以作为上述目标程序的触发条件,即只有决策授权通过后,上述目标程序才可以开始运行,然后将执行结果发布至区块链;在另一种情况下,当上述目标程序开始运行后,也可以通过上述决策授权过程,对该目标程序的执行过程进行授权;即只有决策通过后,上述目标程序才可以将执行结果发布至区块链。
在本申请中,为了应对现有的基于单一私钥对目标程序进行决策授权时,由于唯一私钥丢失或者被破解而造成的目标程序无法执行或执行带来的安全隐患的问题,提出了一种针对区块链中的目标程序执行多用户所私钥共同决策的机制。
当被同步至任意一台计算设备上的目标程序被触发执行后,预设用户群组中的各用户,可以基于各自持有的私钥,向该计算设备分别提交基于私钥进行签名后的决策结果,来执行针对该目标程序的多用户多私钥的共同决策,使得该目标程序在部分私钥丢失或被破解的情况下,该目标程序仍然可能正常执行。
在示出的一种实施方式中,上述目标程序具体可以是收录至至区块链中的智能合约程序。
其中,所谓智能合约程序,通常是指以数字形式约定了参与者的权利和义务的执行程序。
例如,在实际应用中,上述智能合约程序具体可以是已经发布至区块链中的智能合约程序,也可以是指用于在线协商智能合约程序的在线协商程序。在初始状态下,成功注册上述去中心化***的多方用户之间,可以依托于已收录至上述区块链的分布式数据库中的在线协商程序,共同参与协商出一段智能合约程序。
以下将通过具体的实施例,对在基于区块链搭建的去中心化***中,执行在线发布智能合约程序的在线协商程序时的多用户决策的过程,以及在执行已发布至区块链的智能合约程序时的多用户决策的过程,分别进行描述。
一、在线协商程序的多用户决策
1)“在线协商程序的触发执行”
上述在线协商程序,通常可以由其运营方进行开发,并收录至区块链的分布式数据库中。当将上述在线协商程序收录至上述分布式数据库中后,可以通过区块链的共识机制,基于承载区块链的底层P2P网络,将该在线协商程序在该去中心化***中进行全网扩散,同步至区块链中的各台计算设备。
例如,以债权人基于应收账款信息向银行进行融资贷款的应用场景为例,在这种场景下,债权人、债务人以及银行三方可以依托于已收录至区块链中的在线协商程序,在线协商出一份基于应收账款信息向银行进行融资贷款的三方协议(即基于应收账款信息进行融资贷款的执行程序)。
其中,上述在线协商程序中定义的处理逻辑,以及上述工作流程序各个环节的工作流顺序,在本申请中均不进行特别限定。
例如,仍以债权人基于应收账款信息向银行进行融资贷款的应用场景为例,在这种场景下,债权人、债务人以及银行三方在依托于融资贷款调度***中搭载的工作流程序,在线协商基于应收账款信息向银行进行融资贷款的三方协议时,上述在线协商程序定义的协商顺序具体可以是:
债务人提交应收账款信息—债权人对应收账款信息进行确认—银行生成三方协议—债务人和债权人对三方协议进行确认—三方协议协商完成。
首先,债务人在对与债权人之间的应收账款信息进行确认后,可以基于持有的私钥对与债权人之间的应收账款信息进行电子签名,将该应收账款信息在线发布至区块链的分布式数据库,并依托于上述工作流程序,将该应收账款信息提交给债权人进行确认。
下一步,债权人收到债务人提交的应收账款信息后,可以基于持有的私钥对该应收账款信息进行电子签名完成确认,然后基于上述工作流程序将上述应收账款信息进一步提交给银行一方;
下一步,银行一方在收到债权人提交的应收账款信息后,由于该应收账款信息已经由债务人和债权人各自私钥进行了确认,因此可以基于该应收账款信息生成三方协议(比如,三方协议中通常包含银行的融资贷款报价、融资贷款的利率,还款期限等信息),并由于银行一方的管理用户基于持有的私钥对该三方协议进行电子签名完成确认,然后基于上述工作流程序将上述三方协议进一步提交给债务人和债权人分别进行确认;当债权人和债务人按照同样的方式对上述三方协议确认完成后,此时上述三方协议的在线协商过程完成。
当然,以上描述的在以债权人基于应收账款信息向银行进行融资贷款的应用场景中的协商顺序,仅为示例性的;显然,在实际应用中,本领域技术人员在将本申请的技术方案付诸实现时,可以结合实际的需求,对上述在线协商程序中定义的处理逻辑,以及上述在线协商程序各个环节的协商顺序进行自定义。
在本申请中,当上述线协商程序被区块链收录后,对于接入该区块链中中的任意一台计算设备而言,都可以在本地指令触发执行该在线协商程序。
其中,在实现时,用户可以使用一***立的计算设备,与区块链中的计算设备进行通信;或者,通过与区块链中的计算设备共用同一台计算设备,来触发执行上述在线协商程序。
在示出的一种实施方式中,上述在线协商程序具体可以是由区块链发布的触发消息来触发执行。
例如,以上述智能合约程序为债权人、债务人以及银行三方协商出的基于应收账款信息向银行进行融资贷款的三方协议为例,上述在线协商程序具体可以是用于在线协商上述三方协议的执行程序,用于触发执行该智能合约的触发指令,通常可以是与债务人在线提交的应收账款信息相关的***消息;在这种情况下,债务人可以使用一***立的计算设备上,或者区块链中的计算设备上预先安装的客户端软件,与区块链中的计算设备进行通信。当债务人在该客户端软件上执行了特定的操作后(比如点击上传应收账款信息的按钮的操作),在线提交一笔应收账款信息后,可以通过区块链向该计算设备发布一个***消息,来触发该计算设备执行上述在线协商程序。
当区块链中的计算设备在接收到区块链发布的触发指令后,可以进一步调用已经同步至本地的上述在线协商程序,在本地的运行环境中自动运行该在线协商程序,完成智能合约程序的多方协商;
例如,在一个例子,区块链中的各计算设备,可以预先进行虚拟化处理,创建虚拟机,并利用虚拟机的环境来独立执行上述智能合约程序。通过这种方式,可以确保各计算设备在分别独立执行智能合约程序时,即使跨操作***、跨硬件操作,仍然能够得到相同的运行结果。
2)在线协商程序的多私钥决策授权
在本例中,在上述在线协商程序相关的程序代码中,可以预先添加对应的执行条件。其中,上述执行条件,通常被配置为要求该在线协商程序对应的管理用户,使用持有的私钥对执行程序的执行流程进行决策授权。
基于现有的决策授权机制,管理用户在对被触发执行的程序的执行流程进行决策授权时,通常是基于单一私钥的授权;即用户通常仅持有用于对该程序进行决策授权的唯一私钥。
而使用单一私钥对程序进行决策授权,可能会出现唯一私钥丢失或者被破解时,造成程序整体不可用的问题,因此本申请中上述执行条件可以被配置为要求该程序对应的多个管理用户,使用多个私钥对该程序的执行流程进行共同决策授权。
在初始状态下,可以为上述在线协商程序预先配置一个对应的管理用户群组。比如,上述管理用户群组可以以白名单的形式,提前配置在上述在线协商程序中。其中,如果该在线协商程序包含多个子程序(即多个执行步骤的情况下),可以针对每一个子程序分别配置一个独立的管理用户群组。在该管理用户群组(即上述预设用户群组)中,可以包括从已经在上述去中心化***成功注册的用户中,选定出的多个对应于上述智能合约程序的管理用户。
其中,需要说明的是,该管理用户群组中的管理用户,可以涵盖参与协商智能合约程序的用户群体,也可以涵盖参与协商该智能合约的用户群体以外的其它用户群体(比如监管用户),在本申请中不进行特别限定。
即在实际应用中,可以由参与协商智能合约程序的用户群体,来完成针对上述在线协商程序的决策授权,也可以由参与协商智能合约程序的用户群体以外的其它用户群体,来完成针对该在线协商程序的决策授权。
其中,对于上述管理用户群组中的每一个管理用户而言,还可以分别持有一个用于对上述在线协商程序进行决策授权的私钥。该私钥的提供方,在本申请中不进行特别限定,具体可以是由于上述去中心化***的运营方来提供,也可以是由第三方的CA(Certificate Authority,认证授权中心)机构来提供。
例如,在示出的一种实施方式中,上述去中心化***的运营方,或者第三方的CA机构,可以面向上述管理用户群组中的各管理用户,分别提供一个内置了私钥以及电子签名算法的电子签名硬件。
在这种情况下,当上述在线协商程序被触发执行后,上述去中心***可以通过区块链中的各台计算设备,与上述管理用户群组中持有私钥的各管理用户所使用的客户端软件进行通信,通过各管理用户所使用的客户端软件分别向各管理用户输出一条提示消息,以提示各管理用户基于各自持有的私钥对该在线协商程序进行决策授权。
例如,以上述触发指令为债务人在线提交的应收账款信息相关的***消息为例,在这种情况下,上述提示消息具体可以是一条推送给各管理用户的“请使用电子签名硬件对应收账款信息进行确认”的文本提示。
当各管理用户在查看到客户端软件输出的上述提示消息后,可以在客户端软件上执行特定操作,对上述在线协商程序进行决策授权,并基于各自持有的私钥,通过当前所使用的计算设备,对承载了决策结果的消息进行电子签名,然后发布到区块链中。
例如,各管理用户可以将持有的上述电子签名硬件,接入到所使用的计算设备上,并通过触发电子签名硬件上的确认按钮,触发一个决策消息,并使用电子签名硬件中内置的私钥以及电子签名算法,对决策消息进行电子签名,然后发布到区块链中。
对于发布到区块链中的决策结果,可以通过区块链中现有的数据同步机制,基于承载区块链的底层P2P网络,将该决策数据在该去中心化***中进行全网扩散,同步至区块链中的各台计算设备。
而对于区块链中的计算设备而言,当收到由区块链中的其它计算设备同步至本地的决策结果后,可以对决策结果中携带的电子签名进行验证(比如可以由上述去中心化***的运营方来验证,也可以进一步提交给第三方的CA机构来进行验证),来确认提交该决策结果的管理用户的合法身份,并在电子签名验证通过后,确定该决策结果有效,在本地存储相应的决策结果。
通过这种方式,区块链中的计算设备,可以收集到上述管理用户群组中的各管理用户分别提交的决策结果。
其中,需要说明的是,在本申请中,上述管理用户群组中的各管理用户,在对上述在线协商程序进行决策授权时,可以同时进行决策授权,也可以基于一定的决策顺序分别进行决策授权。
在示出的一种实施方式中,当上述智能合约在被触发执行后,上述去中心***可以通过区块链中的各台计算设备,与上述管理用户群组中持有私钥的各管理用户所使用的客户端软件进行通信,通过各管理用户所使用的客户端软件,同时向各管理用户输出一条提示消息,以提示各管理用户基于各自持有的私钥对该智能合约进行决策授权。
在这种情况下,各管理用户在收到上述提示消息后,可以立即基于各自持有的私钥,通过当前所使用的计算设备,对承载了电子签名的相关决策结果进行电子签名,然后发布到区块链中。
在示出的另一种实施方式中,各管理用户也可以按照一定的决策顺序,依次基于各自持有的私钥,来完成对上述在线协商程序的决策授权。
其中,上述决策顺序,在本申请不进行特别限定,在实际应用中可以基于实际的需求进行自定义设置。例如,上述决策顺序,可以是基于实际需求定义的“决策审批顺序”(比如不同等级的用户逐级审批)。
在这种情况下,上述去中心***,可以通过各管理用户所使用的客户端软件,按照预先定义的决策顺序,向各管理用户依次输出上述提示消息,并在管理用户在该提示消息的提示下,完成了针对上述在线协商程序的决策授权后,按照上述决策顺序,继续向下一个管理用户输出上述提示消息,由下一个管理用户继续针对上述在线协商程序进行决策授权;以此类推,直到各管理用户在上述提示消息的提示下,全部完成针对上述协商程序的决策授权时停止。
在本例中,当各管理用户均完成了针对上述在线协商程序的决策授权后,由于此时区块链中的各计算设备,均能够收集到各管理用户提交的决策结果,因此对于区块链中的每一台计算设备而言,都能够基于收集到的电子签名和预设的决策策略,来确定该上述在线协商程序是否决策通过,并在决策通过时将上述在线协商程序的执行结果(即最终的决策结果),发布到区块链中。
需要说明的是,在实际应用中,上述在线协商程序中通常可以包括多个子程序;其中,每一个子程序通常分别对应上述在线协商程序中的一个执行步骤;在这种情况下,各管理用户可以按照以上描述的方式,针对该上述在线协商程序中所包含的各个子程序分别进行决策授权,并向区块链发布电子签名。
其中,在实际应用中,如果上述在线协商程序包括多个子程序时,对于每一个子程序而言,可以分别设置一个独立的管理用户群组;即,上述在线协商程序的每一个执行步骤,都可以基于完全不同的管理用户群组来进行多用户所私钥的共同决策。
而区块链中的计算设备,在基于收集到的电子签名和预设的决策策略,确定上述在线协商程序是否决策通过时,可以依次确定各子程序是否决策通过,并在各子程序均决策通过后,再判定上述在线协商程序决策通过。即在本申请中,当上述在线协商程序包含多个子程序时,只有当该多个子程序均决策通过,整个在线协商程序才能够决策通过。
例如,仍以债权人基于应收账款信息向银行进行融资贷款的应用场景为例,上述在线协商程序定义的协商顺序具体可以是:
债务人提交应收账款信息—债权人对应收账款信息进行确认—银行生成三方协议—债务人和债权人对三方协议进行确认—三方协议协商完成。
在这种场景下,上述工作流顺序中的每一个步骤,都可以对应上述在线协商程序中的一个子程序;而对于债务人、债权人以及银行三方来说,每一方都可以独立配置一个管理用户群组,进行多用户所私钥的共同决策。
在实现时,首先,债务人一方的管理用户群组中的各管理用户,在对与债权人之间的应收账款信息进行确认后,可以基于持有的私钥分别对与债权人之间的应收账款信息进行电子签名,将该应收账款信息在线发布至区块链的分布式数据库,并依托于上述工作流程序,将该应收账款信息提交给债权人一方进行确认。
下一步,债权人一方收到债务人提交的应收账款信息后,可以由债权人一方的管理用户群组中的各管理用户对该应收账款信息进行确认;当债权人一方的管理用户群组中的各管理用户对该应收账款信息进行确认后,可以基于持有的私钥分别对该应收账款信息进行电子签名完成确认,然后基于上述工作流程序将上述应收账款信息进一步提交给银行一方;
下一步,银行一方在收到债权人提交的应收账款信息后,可以基于该应收账款信息生成三方协议(比如,三方协议中通常包含银行的融资贷款报价、融资贷款的利率,还款期限等信息),并由银行一方的管理用户群组中的各管理用户基于持有的私钥分别对该三方协议进行电子签名完成确认后,基于上述工作流程序将上述三方协议进一步提交给债务人一方和债权人一方分别进行确认;当债权人一方和债务人一方按照同样的方式对上述三方协议确认完成后,此时上述三方协议的在线协商过程完成。
可见,在上述在线协商程序包含多个子程序的情况下,对于每一个子程序而言,都可以由管理用户群组中的多个管理用户,基于持有的私钥进行多用户多私钥的共同决策。
在本例中,区块链中的计算设备在确定上述在线协商程序,或者该在线协商程序中的某个子程序是否决策通过时,所采用的决策策略可以相同。
其中,上述决策策略,具体可以包括,基于收集到的电子签名,统计上述管理用户群组中决策通过的管理用户比例,并判断上述管理用户比例是否达到预设阈值;如果上述管理用户达到预设阈值时,则确定决策通过。
其中,上述预设阈值可以基于实际的需求进行自定义设置;
可见,通过这种方式,在对上述在线协商程序进行多私钥多用户的共同决策时,即使部分私钥发生丢失或者被破解,该在线协商程序仍然可以决策通过,因此可以避免使用单一私钥对在线协商程序进行决策授权时,由于唯一私钥发生丢失或者被破解的意外情况时,而导致的在线协商程序无法决策通过,不能正常执行的问题。
其中,需要说明的是,在统计上述管理用户群组中决策通过的管理用户比例时,具体可以通过统计收集到的电子签名数量,与管理用户的总数的比值来实现;比如,对于任一管理用户来说,通过电子签名硬件在线提交电子签名,通常表示决策通过,因此通过统计收集到的电子签名数量,与管理用户的总数的比值,就可以得到决策通过的管理用比例。
在本例中,由于在本申请中采取了多用户多私钥的共同决策机制,因此当决策者包含多个用户时,该多个用户在整个决策授权流程中,可能分别对应着不同的决策角色。而不同的决策角色,可能对最终的电子签名的影响程度,也存在着一定的差异;例如,在一些场景下,基于实际的业务需求,可能要求某些决策角色对最终的电子签名产生更高的影响程度。
基于此,在示出的一种实施方式中,还可以针对各管理用户持有的私钥,分别预设对应的决策权重比例。其中,该决策权重比例,用于衡量与该私钥对应的管理用户,对最终的电子签名的影响程度。
在这种情况下,如果智能合约包括多个子程序,那么在基于收集到的电子签名,统计上述管理用户群组中决策通过的管理用户比例时,可以计算决策通过的各用户所持有的私钥对应的决策权重比例之和,然后将计算的得到的该决策权重比例之和,作为上述管理用户群组中决策通过的管理用户比例。
通过这种方式,可以通过为不同的私钥分别预设不同的决策权重比例,对上述管理用户群组中的各管理用户,对最终的电子签名产生的影响程度,按照决策角色进行等级划分。
在示出的另一种实施方式中,在上述在线协商程序包括多个子程序的情况下,还可以针对上述在线协商程序的各子程序,分别设置不同的上述预设阈值。
在这种情况下,对于在线协商程序中的每一个子程序而言,在判定当前子程序是否决策通过时,与统计出的决策通过的管理用户比例进行比较的预设阈值,都将存在差异;从而,上述管理用户群组中的管理用户,在对在线协商程序的各子程序进行多用户多私钥的共同决策时,每一个子程序的决策通过的难度,都将彼此不同;
比如,假设其中一个子程序可能需要所有管理用户中的80%以上的用户决策通过,才能判定该子程序最终决策通过;而另一个子程序可能只需要所有管理用户中的60%以上的用户决策通过,才能判定该子程序最终决策通过;二者相比,显然后者的决策通过的难度更低(即只需要更少的管理用户决策通过,就可以认为这个子程序决策通过)。
可见,通过这种方式,对于不同的子程序而言,可以为其赋予不同的决策通过的容忍度,有助于提升业务的多样化需求;
比如,假设某一个子程度对应的业务安全性要求较高,那么可以通过为该子程序设置一个较大的预设阈值,以降低该子程序决策通过的容忍度,提升该子程序决策通过的难度,进而可以保证业务的安全性;
反之,假设某一个子程度对应的业务安全性要求较低,那么可以通过为该子程序设置一个较小的预设阈值,以增大该子程序决策通过的容忍度,降低该子程序决策通过的难度,使得该子程序能够快速的决策通过。
3)“上述在线协商程序的执行结果发布”
在本例中,当上述在线协商程序最终决策通过后,区块链中的计算设备可以将基于该在线协商程序协商出的智能合约程序(即执行结果)以消息或者指令的形式,发布至区块链中。
例如,在一种情况下,如果上述决策授权,为针对上述在线协商程序是否开始运行的决策授权,那么在决策授权通过后,可以触发执行该在线协商程序,然后将协商出的智能合约程序以消息或者指令的形式,发布至区块链中。在另一种情况下,如果上述决策授权,为针对上述在线协商程序的执行过程的决策授权,由于此时上述在线协商程序已经开始执行,那么在决策授权通过后,则可以直接将协商出的智能合约程序,以消息或者指令的形式,发布至区块链中即可。
当将协商出的智能合约以消息或者指令的形式,发布至区块链中后,可以进一步基于区块链现有的共识机制,将其同步至区块链中的各计算设备,并最终写入新增区块存储至各计算设备共同维护的分布式数据库中。
例如,以上述智能合约程序为债权人、债务人以及银行三方在线协商出的基于应收账款信息向银行进行融资贷款的三方协议为例,可以将协商完成的该三方协议发布到区块链中,并同步至区块链中的各计算设备。当同步完成后,对于区块链中的任一计算设备来说,都可以在其本地独立的执行该智能合约。
其中,需要说明的是,在上述在线协商程序包括多个子程序的情况下,此时上述在线协商程序的执行,可以采用各子程序按照顺序分步骤执行的方式;即对于任一子程序来说,如果通过了多用户多私钥的共同决策后,可以立即执行该子程序,并在执行完成后继续调用下一个子程序,按照相同的方式重新对该下一个子程序进行多用户多私钥的共同决策,并在决策通过后立即执行该下一个子程序,以此类推,直到上述在线协商程序的各个子程序均决策通过并执行完毕时,将最终的执行结果发布至区块链,同步到各台计算设备。
当然,在实际应用中,在一些复杂的业务场景下,如果上述在线协商程序执行完毕后,完整的业务流程尚未结束,那么上述在线协商程序执行完毕后,也可以继续调用收录至区块链的分布式数据库中的另一个执行程序,然后按照相同的方式,完成该另一个执行程序的多用户多私钥的共同决策,具体过程不再赘述。
二、智能合约程序的多用户决策
1)“智能合约的触发执行”
在本例中,当多方用户通过上述在线协商程序,在线协商出一段智能合约程序,并且该智能合约程序被发布至区块链,同步至区块链中的各台计算设备后,对于去中心化***中任意一台计算设备而言,都可以在本地触发执行该智能合约程序。
在实现时,用户仍然可以使用一***立的计算设备,与区块链中的计算设备进行通信;或者,通过与区块链中的计算设备共用同一台计算设备,来触发执行上述智能合约程序。而且,上述智能合约程序具体可以是由区块链发布的触发指令来触发执行。
例如,以与在线交易相关的智能合约为例,用于触发执行该智能合约的触发指令,通常可以是由用户发起的一笔交易相关的交易消息。在这种情况下,用户可以使用一***立的计算设备上,或者区块链中的计算设备上预先安装的交易客户端软件,与区块链中的计算设备进行通信。当用户在该交易客户端软件上执行了特定的交易操作(比如点击交易按钮的操作),向另一个用户发起一笔交易后,可以通过区块链向该计算设备发布一个交易消息,来触发该计算设备执行相关的智能合约程序。
又如,以与在线转账相关的智能合约程序为例,用户可以使用一***立的计算设备上,或者区块链中的计算设备上预先安装的转账客户端软件,与区块链中的计算设备进行通信。当用户在该转账客户端软件上执行了特定的转账操作(比如点击转账按钮的操作),向另一个用户发起一笔转账后,可以通过区块链向区块链中的该计算设备发布一个转账消息,来触发该计算设备执行相关的智能合约程序。
又如,以上述智能合约为债权人、债务人以及银行三方协商出的基于应收账款信息向银行进行融资贷款的三方协议为例,上述在线协商程序具体可以是用于在线协商上述三方协议的执行程序,用于触发执行该智能合约的触发执行,通常可以是由债权人发起的一笔融资贷款相关的请求消息;在这种情况下,债权人可以使用一***立的计算设备上,或者区块链中的计算设备上预先安装的用于融资贷款的客户端软件,与区块链中的计算设备进行通信。当债权人在该客户端软件上执行了特定的交易操作(比如点击融资贷款按钮的操作),在线向银行发起一笔融资贷款后,可以通过区块链向该计算设备发布一个融资请求消息,来触发该计算设备执行上述智能合约程序。
当然,除了以上示出的交易消息、转账消息、融资请求消息以外,在实际应用中,上述触发消息也可以是其它类型的用于触发执行智能合约的消息类型,在本申请中不再一一进行列举。
当区块链中的计算设备在接收到区块链发布的触发指令后,可以进一步调用已经同步至本地的上述智能合约程序,在本地的运行环境中自动运行该智能合约程序,完成该智能合约程序的多方决策授权;
例如,在一个例子,区块链中的各计算设备,可以预先进行虚拟化处理,创建虚拟机,并利用虚拟机的环境来自定执行智能合约。通过这种方式,可以确保各计算设备在分别独立执行智能合约时,即使跨操作***、跨硬件操作,仍然能够得到相同的运行结果。
2)“智能合约的多私钥决策授权”
在本例中,在智能合约程序相关的程序代码中,也可以预先添加对应的执行条件。其中,上述执行条件,通常被配置为要求该智能合约对应的管理用户,使用持有的私钥对执行程序的执行流程进行决策授权。在本申请中,上述执行条件仍然可以被配置为要求该智能合约对应的多个管理用户,使用多个私钥对该智能合约进行共同决策授权。
在初始状态下,可以为该智能合约预先配置一个对应的管理用户群组。其中,如果该智能合约包含多个子程序(即多个执行步骤的情况下),可以针对每一个子程序分别配置一个独立的管理用户群组。在该管理用户群组(即上述预设用户群组)中,可以包括从已经在上述去中心化***成功注册的用户中,选定出的多个对应于上述智能合约的管理用户。
其中,需要说明的是,该管理用户群组中的管理用户,可以涵盖参与协商智能合约程序的用户群体,也可以涵盖参与协商该智能合约的用户群体以外的其它用户群体(比如监管用户),在本申请中不进行特别限定。
其中,对于上述管理用户群组中的每一个管理用户而言,还可以分别持有一个用于对上述智能合约程序进行决策授权的私钥。比如,上述去中心化***的运营方,或者第三方的CA机构,可以面向上述管理用户群组中的各管理用户,分别提供一个内置了私钥以及电子签名算法的电子签名硬件。
在这种情况下,当上述智能合约程序被触发执行后,上述去中心***可以通过区块链中的各台计算设备,与上述管理用户群组中持有私钥的各管理用户所使用的客户端软件进行通信,通过各管理用户所使用的客户端软件分别向各管理用户输出一条提示消息,以提示各管理用户基于各自持有的私钥对该智能合约程序进行决策授权。
例如,以上述触发指令为用户通过客户端软件发起的一笔交易相关的交易消息为例,在这种情况下,上述提示消息具体可以是一条推送给各管理用户的“请使用电子签名硬件对该笔交易进行确认”的文本提示。
又如,以上述触发指令为用户通过客户端软件发起的一笔转账相关的转账消息为例,在这种情况下,上述提示消息具体可以是一条推送给各管理用户的“请使用电子签名硬件对该笔转账进行确认”的文本提示。
当各管理用户在查看到客户端软件输出的上述提示消息后,可以在客户端软件上执行特定操作,对该智能合约进行决策授权,并基于各自持有的私钥,通过当前所使用的计算设备,对承载了决策结果的消息进行电子签名,然后发布到区块链中。
对于发布到区块链中的决策结果,可以通过区块链中现有的数据同步机制,基于承载区块链的底层P2P网络,将该决策结果在该去中心化***中进行全网扩散,同步至区块链中的各台计算设备。
而对于区块链中的计算设备而言,当收到由区块链中的其它计算设备同步至本地的决策结果后,可以对决策结果中携带的电子签名进行验证,来确认提交该决策数据的管理用户的合法身份,并在电子签名验证通过后,确定该决策结果有效,在本地存储相应的决策结果。
其中,需要说明的是,在本申请中,上述管理用户群组中的各管理用户,在对上述智能合约程序进行决策授权时,仍然可以同时进行决策授权,也可以基于一定的决策顺序分别进行决策授权,具体流程可以参考之前实施例的描述,不再赘述。
在本例中,当各管理用户均完成了针对上述智能合约程序的决策授权后,由于此时区块链中的各计算设备,均能够收集到各管理用户提交的决策结果,因此对于区块链中的每一台计算设备而言,都能够基于收集到的决策结果和预设的决策策略,来确定该智能合约是否决策通过,并在决策通过时在本地的执行环境中,独立执行该智能合约程序。
进一步的,如果上述智能合约中包括多个子程序;在这种情况下,各管理用户可以按照以上描述的方式,针对该智能合约中所包含的各个子程序分别进行决策授权,并向区块链发布决策结果。
而区块链中的计算设备,在基于收集到的决策结果和预设的决策策略,确定上述智能合约程序是否决策通过时,可以依次确定各子程序是否决策通过,并在各子程序均决策通过后,再判定上述智能合约成怒决策通过。即在本申请中,当上述智能合约程序包含多个子程序时,只有当该多个子程序均决策通过,整个智能合约程序才能够决策通过。
在本例中,区块链中的计算设备在确定智能合约程序,或者智能合约陈谷中的某个子程序是否决策通过时,所采用的决策策略仍然可以相同,具体可以包括,基于收集到的决策结果,统计上述管理用户群组中决策通过的管理用户比例,并判断上述管理用户比例是否达到预设阈值;如果上述管理用户达到预设阈值时,则确定决策通过。
其中,上述预设阈值可以基于实际的需求进行自定义设置;
可见,通过这种方式,在对智能合约程序进行多私钥多用户的共同决策时,即使部分私钥发生丢失或者被破解,该智能合约程序仍然可以决策通过,因此可以避免使用单一私钥对智能合约进行决策授权时,由于唯一私钥发生丢失或者被破解的意外情况时,而导致的智能合约程序无法决策通过,不能正常执行的问题。
进一步的,在示出的一种实施方式中,还可以针对各管理用户持有的私钥,分别预设对应的决策权重比例。其中,该决策权重比例,用于衡量与该私钥对应的管理用户,对最终的决策结果的影响程度。
在这种情况下,如果智能合约包括多个子程序,那么在基于收集到的决策结果,统计上述管理用户群组中决策通过的管理用户比例时,可以计算决策通过的各用户所持有的私钥对应的决策权重比例之和,然后将计算的得到的该决策权重比例之和,作为上述管理用户群组中决策通过的管理用户比例。
在示出的另一种实施方式中,在上述智能合约程序包括多个子程序的情况下,还可以针对上述智能合约程序的各子程序,分别设置不同的上述预设阈值。
在这种情况下,对于智能合约程序中的每一个子程序而言,在判定当前子程序是否决策通过时,与统计出的决策通过的管理用户比例进行比较的预设阈值,都将存在差异;从而,上述管理用户群组中的管理用户,在对智能合约程序的各子程序进行多用户多私钥的共同决策时,每一个子程序的决策通过的难度,都将彼此不同;通过这种方式,对于不同的子程序而言,可以为其赋予不同的决策通过的容忍度,有助于提升业务的多样化需求;
比如,假设某一个子程度对应的业务安全性要求较高,那么可以通过为该子程序设置一个较大的预设阈值,以降低该子程序决策通过的容忍度,提升该子程序决策通过的难度,进而可以保证业务的安全性;
反之,假设某一个子程度对应的业务安全性要求较低,那么可以通过为该子程序设置一个较小的预设阈值,以增大该子程序决策通过的容忍度,降低该子程序决策通过的难度,使得该子程序能够快速的决策通过。
3)“智能合约的执行结果发布”
在本例中,当上述智能合约程序最终决策通过后,区块链中的计算设备可以将该智能合约程序的执行结果以消息或者指令的形式,发布至区块链中;比如,发布的消息或者指令,具体可以是诸如向某某账户转账,或者签署某个合同的消息或者指令。
当将执行结果以消息或者指令的形式,发布至区块链中后,可以进一步基于区块链现有的共识机制,将其同步至区块链中的各计算设备,并最终写入新增区块存储至各计算设备共同维护的分布式数据库中。
例如,以上述智能合约为债权人、债务人以及银行三方在线协商出的基于应收账款信息向银行进行融资贷款的三方协议为例,该三方协议在通过以上描述的多用户所私钥的共同决策后,可以执行该三方协议,由银行向上述债权人发放融资贷款,然后可以将融资贷款的发放结果发布到区块链中,并同步至区块链中的各计算设备。
其中,需要说明的是,在上述智能合约程序包括多个子程序的情况下,此时上述智能合约程序的执行,可以采用各子程序按照顺序分步骤执行的方式;即对于任一子程序来说,如果通过了多用户多私钥的共同决策后,可以立即执行该子程序,并在执行完成后继续调用下一个子程序,按照相同的方式重新对该下一个子程序进行多用户多私钥的共同决策,并在决策通过后立即执行该下一个子程序,以此类推,直到上述智能合约程序的各个子程序均决策通过并执行完毕时,将最终的执行结果发布至区块链,同步到各台计算设备。
当然,在实际应用中,在一些复杂的业务场景下,如果上述智能合约程序执行完毕后,完整的业务流程尚未结束,那么上述智能合约程序执行完毕后,也可以继续调用收录至区块链的分布式数据库中的另一个执行程序(比如另一个智能合约程序),然后按照相同的方式,完成该另一个执行程序的多用户多私钥的共同决策,不再赘述。
最后,需要补充说明的是,以上两个实施例中,以上述目标程序为发布智能合约程序的在线协商程序,以及已发布至区块链的智能合约程序为例,对本申请的技术方案分别进行了详细说明。
显然,在实际应用中,上述目标程序除了可以是上述在线协商程序以及上述智能合约程序以外,也可以是执行流程被收录至区块链的分布式数据库中的,其执行流程需要用户进行决策授权的其它类型的执行程序。
例如,上述目标程序也可以是用于对上述管理用户群组中的各管理用户持有的私钥进行互换(即持有私钥的用户角色互换)、增加、删减的执行程序,等等。
其中,当上述目标程序为其它类型的执行程序时,上述管理用户群组中的各管理用户在针对该执行程序进行多用户多私钥的共同决策的具体流程,与以上描述的具体流程完全相同,本申请中不再赘述,本领域技术人员在付诸实现时,可以参考以上实施例中的记载进行等同实施。
通过以上实施例可知,本申请提出了一种针对区块链中的目标程序执行多用户多私钥共同决策的机制,基于区块链的去中心化***在将目标程序收录至区块链中的分布式数据库后,可以收集预设用户群组中的各用户基于持有的私钥分别提交的决策结果,然后基于收集到的决策结果以及预设决策策略确定该目标程序是否决策通过;如果该目标程序决策通过,则可以向所述区块链发布所述目标程序的执行结果;
由于在本申请中,针对区块链中的目标程序的决策授权,不再依赖于基于单一私钥的决策授权机制,而是通过预设用户群组中的多个用户基于各自持有的多个私钥进行共同授权,因此可以避免单一私钥一旦丢失或被破解,而造成的目标程序无法执行的问题,使得该目标程序在部分私钥丢失或被破解的情况下,该目标程序仍然能够正常执行,从而可以提升目标程序的执行稳定性。
与上述方法实施例相对应,本申请还提供了***的实施例。
请参见图2,本申请提出一种程序执行装置20,应用于基于区块链的去中心化***,其中,所述去中心化***中的目标程序被收录至至所述区块链中的分布式数据库中,所述目标程序的执行流程由预设用户群组中的各用户共同决策;
其中,请参见图3,作为承载所述程序执行装置20的硬件设备所涉及的硬件架构中,通常包括处理器、内存、非易失性存储器、网络接口以及内部总线等;以软件实现为例,所述程序执行装置20通常可以理解为加载在内存中的计算机程序,通过处理器运行之后形成的软硬件相结合的逻辑装置,所述程序执行装置20包括:
收集模块201,用于收集所述预设用户群组中的各用户基于持有的私钥分别提交的决策结果;
确定模块202,用于基于收集到的决策结果以及预设决策策略确定所述目标程序是否决策通过;
执行模块203,用于在所述目标程序决策通过时,向所述区块链发布所述目标程序的执行结果。
在本例中,所述目标程序包括多个子程序;
所述确定模块202进一步用于:
基于收集到的决策结果以及所述预设决策策略确定各子程序是否均决策通过;如果各子程序均决策通过,则确定所述目标程序决策通过。
在本例中,所述预设决策策略,包括:
基于收集到的决策结果统计所述预设用户群组中决策通过的用户比例;
判断所述用户比例是否达到预设阈值;
如果所述用户比例达到预设阈值,确定决策通过。
在本例中,其中,各用户持有的私钥分别预设了对应的决策权重比例;所述用户比例为决策通过的各用户所持有的私钥对应的决策权重比例之和。
在本例中,当所述目标程序包括多个子程序时,所述目标程序中的各子程序,分别对应不同的所述预设阈值。
在本例中,所述目标程序为已发布至区块链上的智能合约程序;或者,用于在线协商所述智能合约程序的在线协商程序;
其中,所述智能合约程序,为债权人、债务人以及银行三方在线协商出的,基于所述债权人和债务人之间的应收账款信息向所述银行进行融资贷款的智能合约程序。
在本例中,所述目标程序为用于对所述预设用户群组中的各用户持有的私钥进行互换、增加、删减的执行程序。
以上各实施例阐明的***、模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机或者服务器。其中,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本申请方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本申请的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (10)

1.一种程序执行方法,其特征在于,应用于基于区块链的去中心化***,其中,所述去中心化***中的智能合约程序被收录至所述区块链的分布式数据库,所述智能合约程序的执行流程由预设用户群组中的各用户共同决策;所述方法包括:
收集所述预设用户群组中的各用户基于持有的私钥分别提交的决策结果;
基于收集到的决策结果以及预设决策策略确定所述智能合约程序是否决策通过;
如果所述智能合约程序决策通过,执行所述智能合约程序,并向所述区块链发布所述智能合约程序的执行结果。
2.根据权利要求1所述的方法,其特征在于,所述智能合约程序包括多个子程序;
所述基于收集到的决策结果以及预设决策策略确定所述智能合约程序是否决策通过,包括:
基于收集到的决策结果以及所述预设决策策略确定各子程序是否均决策通过;如果各子程序均决策通过,则确定所述智能合约程序决策通过。
3.根据权利要求1或2所述的方法,其特征在于,所述预设决策策略,包括:
基于收集到的决策结果统计所述预设用户群组中决策通过的用户比例;
判断所述用户比例是否达到预设阈值;
如果所述用户比例达到预设阈值,确定决策通过。
4.根据权利要求3所述的方法,其特征在于,其中,各用户持有的私钥分别预设了对应的决策权重比例;所述用户比例为决策通过的各用户所持有的私钥对应的决策权重比例之和。
5.根据权利要求3所述的方法,其特征在于,当所述智能合约程序包括多个子程序时,所述智能合约程序中的各子程序,分别对应不同的所述预设阈值。
6.一种程序执行装置,其特征在于,应用于基于区块链的去中心化***,其中,所述去中心化***中的智能合约程序被收录至所述区块链的分布式数据库,所述智能合约程序的执行流程由预设用户群组中的各用户共同决策;所述装置包括:
收集模块,用于收集所述预设用户群组中的各用户基于持有的私钥分别提交的决策结果;
确定模块,用于基于收集到的决策结果以及预设决策策略确定所述智能合约程序是否决策通过;
执行模块,用于在所述智能合约程序决策通过时,执行所述智能合约程序,并向所述区块链发布所述智能合约程序的执行结果。
7.根据权利要求6所述的装置,其特征在于,所述智能合约程序包括多个子程序;
所述确定模块进一步用于:
基于收集到的决策结果以及所述预设决策策略确定各子程序是否均决策通过;如果各子程序均决策通过,则确定所述智能合约程序决策通过。
8.根据权利要求6或7所述的装置,其特征在于,所述预设决策策略,包括:
基于收集到的决策结果统计所述预设用户群组中决策通过的用户比例;
判断所述用户比例是否达到预设阈值;
如果所述用户比例达到预设阈值,确定决策通过。
9.根据权利要求8所述的装置,其特征在于,其中,各用户持有的私钥分别预设了对应的决策权重比例;所述用户比例为决策通过的各用户所持有的私钥对应的决策权重比例之和。
10.根据权利要求8所述的装置,其特征在于,当所述智能合约程序包括多个子程序时,所述智能合约程序中的各子程序,分别对应不同的所述预设阈值。
CN201710463921.5A 2017-06-19 2017-06-19 一种程序执行方法及装置 Expired - Fee Related CN107341402B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710463921.5A CN107341402B (zh) 2017-06-19 2017-06-19 一种程序执行方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710463921.5A CN107341402B (zh) 2017-06-19 2017-06-19 一种程序执行方法及装置

Publications (2)

Publication Number Publication Date
CN107341402A CN107341402A (zh) 2017-11-10
CN107341402B true CN107341402B (zh) 2020-09-01

Family

ID=60221447

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710463921.5A Expired - Fee Related CN107341402B (zh) 2017-06-19 2017-06-19 一种程序执行方法及装置

Country Status (1)

Country Link
CN (1) CN107341402B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107945027A (zh) * 2017-11-14 2018-04-20 北京欧链科技有限公司 基于区块链的理赔事件的处理方法及***
CN108170701A (zh) * 2017-11-14 2018-06-15 北京欧链科技有限公司 区块链的信息处理方法及装置
CN108038786A (zh) * 2017-11-14 2018-05-15 北京欧链科技有限公司 基于区块链的理赔事件的处理方法及***
CN108154369B (zh) * 2018-02-02 2020-07-03 上海二秒科技有限公司 一种基于区块链技术的企业资产管理***
CN108388989A (zh) * 2018-02-26 2018-08-10 深圳智乾区块链科技有限公司 事务处理方法、***及计算机可读存储介质
CN108650291B (zh) * 2018-03-26 2020-12-22 南京思利华信息科技有限公司 一种基于算力的gpu任务共识方法及装置
CN108615195B (zh) * 2018-04-28 2021-12-07 腾讯科技(深圳)有限公司 资源转移信息的传输方法和装置、存储介质、电子装置
CN109087190A (zh) * 2018-06-08 2018-12-25 阿里巴巴集团控股有限公司 一种融资贷款方法和装置
CN108920978B (zh) * 2018-06-26 2021-05-04 赛飞特工程技术集团有限公司 一种基于区块链技术的安全生产信息共享方法
CN109347640B (zh) * 2018-09-27 2021-06-15 福建福链科技有限公司 一种基于区块链动态智能合约的数据处理方法及终端
CN109377395A (zh) * 2018-10-25 2019-02-22 平安科技(深圳)有限公司 互助保险投保理赔方法及相关装置
CN111464285B (zh) * 2019-01-18 2023-08-22 正链科技(深圳)有限公司 一种移动区块链抗量子计算机攻击签名方法
CN110009497B (zh) * 2019-03-26 2021-01-26 创新先进技术有限公司 基于区块链的决策方法及装置和电子设备
CN110264608B (zh) * 2019-04-11 2021-06-29 创新先进技术有限公司 基于区块链的投票方法、装置及***

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105592098A (zh) * 2016-01-16 2016-05-18 杭州复杂美科技有限公司 区块链上的投票及ca证书的管理方法
CN106055993A (zh) * 2016-08-13 2016-10-26 深圳市樊溪电子有限公司 一种用于区块链的加密存储***及其使用方法
CN106649838A (zh) * 2016-12-29 2017-05-10 先锋支付有限公司 数据传输方法、区块链节点及分布式数据库

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105592098A (zh) * 2016-01-16 2016-05-18 杭州复杂美科技有限公司 区块链上的投票及ca证书的管理方法
CN106055993A (zh) * 2016-08-13 2016-10-26 深圳市樊溪电子有限公司 一种用于区块链的加密存储***及其使用方法
CN106649838A (zh) * 2016-12-29 2017-05-10 先锋支付有限公司 数据传输方法、区块链节点及分布式数据库

Also Published As

Publication number Publication date
CN107341402A (zh) 2017-11-10

Similar Documents

Publication Publication Date Title
CN107341402B (zh) 一种程序执行方法及装置
CN108885761B (zh) 用于区块链上的安全点对点通信的方法
US11907947B2 (en) Resource transfer system
CN109089428B (zh) 数字资产零保管转换
CN110428257B (zh) 密码破解任务处理方法、设备及存储介质
US20180218176A1 (en) System and method of creating an asset based automated secure agreement
CN108492180B (zh) 资产管理方法及装置、电子设备
CN108876599B (zh) 一种扶贫贷款管理***
CN111417977A (zh) 管理专利风险的***和方法
US20190080064A1 (en) Verifying a user's identity based on adaptive identity assurance levels
CN109003185B (zh) 一种智能合约的建立方法、装置、计算设备及存储介质
CN111327648B (zh) 基于区块链智能合约的处理方法和***
CN112020705A (zh) 区块链随机计时器事务同步
JP2022553946A (ja) プライベート及びパブリックブロックチェーンを使用した取引の実施
US11233638B1 (en) Secured electronic token register system
JP6818034B2 (ja) リソース転送システム内の一時的コンセンサスネットワーク
CN111383114A (zh) 基于区块链的资产信息管理方法和装置
CN110572457B (zh) 基于区块链的资源申请方法及装置、电子设备、存储介质
CN111402033A (zh) 基于区块链的资产信息管理方法和装置
CN110599331A (zh) 基于区块链的债务催收***、方法、设备及存储介质
CN111986025A (zh) 基于区块链的贷款业务处理方法及***
CN113506112A (zh) 应收账款确权方法及装置和电子设备
CN113706302A (zh) 基于跨链的区块链金融数据的生成方法及***
CN110727735B (zh) 基于区块链技术协作完成任务事件的方法、装置及设备
CN112400298B (zh) 验证交易***和方法用于加至电子区块链

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
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20200901