CN111538783A - 一种智能合约执行约束的方法、装置、终端及存储介质 - Google Patents
一种智能合约执行约束的方法、装置、终端及存储介质 Download PDFInfo
- Publication number
- CN111538783A CN111538783A CN202010311798.7A CN202010311798A CN111538783A CN 111538783 A CN111538783 A CN 111538783A CN 202010311798 A CN202010311798 A CN 202010311798A CN 111538783 A CN111538783 A CN 111538783A
- Authority
- CN
- China
- Prior art keywords
- authority
- intelligent contract
- information
- target
- enterprise
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Computer Security & Cryptography (AREA)
- Economics (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Development Economics (AREA)
- Software Systems (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请提供一种智能合约执行约束的方法、装置、终端及存储介质,确定发送所述交易请求的目标用户和所述目标用户请求的交易,所述目标用户为企业用户;获取所述目标用户所属目标企业预先赋予所述目标用户的第一权限信息;确定所述目标企业提供的智能合约中用于执行所述交易的业务方法的执行约束条件,所述执行约束条件包括所述目标企业对允许执行所述业务方法的企业用户要求的第二权限信息;根据所述第一权限信息和所述第二权限信息确定所述智能合约对所述交易请求的执行约束结果。基于本申请不仅能够实现企业交易场景,还能够提高业务安全性。
Description
技术领域
本发明涉及区块链技术领域,更具体地说,涉及一种智能合约执行约束的方法、装置、终端及存储介质。
背景技术
区块链核心功能是打包、共识、记账等。目前区块链通常服务于个体之间的交易,针对这种业务的交互,区块链支持运行个体自定义的智能合约,交易的业务逻辑由智能合约来实现,只需要交易双方单方面认可,即只要交易发起方签名,便可认为满足智能合约的约束进而执行智能合约。
这种执行智能合约约束的方式,不仅交易场景受限,只能服务于个体之间的交易,而且只要交易发起方签名便可触发执行智能合约,这样就表示任何人只要提供交易发起方签名都可以运行智能合约,运行智能合约内的业务方法,这样会带来极大的业务安全问题。
发明内容
有鉴于此,本申请实施例提供一种智能合约执行约束的方法、装置、终端及存储介质,以在多样化交易场景、提高业务安全性的基础上,实现对智能合约执行的约束。技术方案如下所示:
一种智能合约执行约束的方法,包括:
接收交易请求,确定发送所述交易请求的目标用户和所述目标用户请求的交易,所述目标用户为企业用户;
获取所述目标用户所属目标企业预先赋予所述目标用户的第一权限信息;
确定所述目标企业提供的智能合约中用于执行所述交易的业务方法的执行约束条件,所述执行约束条件包括所述目标企业对允许执行所述业务方法的企业用户要求的第二权限信息;
根据所述第一权限信息和所述第二权限信息确定所述智能合约对所述交易请求的执行约束结果。
优选的,所述根据所述第一权限信息和所述第二权限信息确定所述智能合约对所述交易请求的执行约束结果,包括:
判断所述第一权限信息是否覆盖所述第二权限信息;
若所述第一权限信息覆盖所述第二权限信息,确定所述交易请求满足所述智能合约的执行约束;
若所述第一权限信息未覆盖所述第二权限信息,确定所述交易请求不满足所述智能合约的执行约束。
优选的,所述执行约束条件还包括与所述业务方法存在关联的各个企业,该方法还包括:
接收各个所述企业对所述交易的投票操作得到投票结果;
所述若所述第一权限信息覆盖所述第二权限信息,确定所述交易请求满足所述智能合约的执行约束,包括:若所述第一权限信息覆盖所述第二权限信息,且所述投票结果表征各个所述企业均同意所述交易,确定所述交易请求满足所述智能合约的执行约束。
优选的,所述判断所述第一权限信息是否覆盖所述第二权限信息,包括:
获取所述第一权限信息指示各个第一权限;
根据预先设置的权限与权限值的一一对应关系,确定每个所述第一权限的权限值;
确定所述第二权限信息携带的第二权限的权限值;
根据各个所述第一权限的权限值和所述第二权限的权限值判断所述第一权限信息是否覆盖所述第二权限信息。
优选的,所述根据各个所述第一权限的权限值和所述第二权限的权限值判断所述第一权限信息是否覆盖所述第二权限信息,包括:
根据各个所述第一权限的权限值计算所述目标用户的综合权限值;
根据所述综合权限值和所述第二权限的权限值计算所述目标用户的目标权限值;
判断所述目标权限值和所述第二权限的权限值是否相同;
若所述目标权限值和所述第二权限的权限值相同,确定所述第一权限信息覆盖所述第二权限信息;
若所述目标权限值和所述第二权限的权限值不相同,确定所述第一权限信息未覆盖所述第二权限信息。
优选的,还包括智能合约构建过程,所述智能合约构建过程包括:
构建所述智能合约中的各个业务方法;
针对预先设置的至少一个第一业务类型中的每个所述第一业务类型,构建所述业务方法在所述第一业务类型下的执行约束条件生成智能合约;所述至少一个第一业务类型包括权限约束业务类型;
执行预先设置的第二业务类型指示的智能合约发布操作发布所生成的智能合约。
优选的,还包括所述目标企业预先赋予所述目标用户第一权限信息的过程,该过程包括:
接收所述目标企业通过预先设置的接口发送的权限设置请求,所述权限设置请求指示所述目标用户以及待为所述目标用户赋予的第一权限信息;
响应所述权限设置请求,为所述目标用户分配所述第一权限信息。
一种智能合约执行约束的装置,包括:
交易请求接收单元,用于接收交易请求,确定发送所述交易请求的目标用户和所述目标用户请求的交易,所述目标用户为企业用户;
第一权限信息获取单元,用于获取所述目标用户所属目标企业预先赋予所述目标用户的第一权限信息;
第二权限信息获取单元,用于确定所述目标企业提供的智能合约中用于执行所述交易的业务方法的执行约束条件,所述执行约束条件包括所述目标企业对允许执行所述业务方法的企业用户要求的第二权限信息;
执行约束结果生成单元,用于根据所述第一权限信息和所述第二权限信息确定所述智能合约对所述交易请求的执行约束结果。
一种服务器,包括:至少一个存储器和至少一个处理器;所述存储器存储有程序,所述处理器调用所述存储器存储的程序,所述程序用于实现所述智能合约执行约束的方法。
一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令用于执行所述智能合约执行约束的方法。
本申请提供一种智能合约执行约束的方法、装置、终端及存储介质,确定发送交易请求的目标用户和目标用户请求的交易,目标用户为企业用户;获取目标用户所属目标企业预先赋予目标用户的第一权限信息;确定目标企业提供的智能合约中用于执行交易的业务方法的执行约束条件,执行约束条件包括目标企业对允许执行业务方法的企业用户要求的第二权限信息;根据第一权限信息和第二权限信息确定智能合约对交易请求的执行约束结果。
本申请只有在发送交易的用户的权限满足企业定义的智能合约中用于执行交易的业务方法所要求的用户权限的基础上,才能触发智能合约中业务方法的执行,这样企业针对不同的业务方法可以制定不同的执行约束条件,以基于业务方法的执行约束条件控制业务方法的执行,不仅能够实现企业交易场景,还能够提高业务安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种智能合约执行约束的方法流程图;
图2为本申请实施例提供的另一种智能合约执行约束的方法流程图;
图3为本申请实施例提供的判断第一权限信息是否覆盖第二权限信息的方法流程图;
图4为本申请实施例提供的一种根据各个第一权限的权限值和第二权限的权限值判断第一权限信息是否覆盖第二权限信息的方法流程图;
图5为本申请实施例提供的一种智能合约执行约束的装置的结构示意图;
图6为本申请实施例提供的一种智能合约执行约束的方法所适用于的终端的硬件结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
实施例:
本申请提供一种面向企业的智能合约约束方法,企业可以定义智能合约,该智能合约中包括至少一个业务方法,针对每个业务方法,都设置有与该业务方法对应的执行约束条件,该执行约束条件主要涉及到对用于执行该业务方法的用户权限的限定,只有发起该业务方法对应的交易的用户拥有该业务方法限定的用户权限时,才能触发执行智能合约中该业务方法以实现交易的执行,反之,若发起该业务方法对应的交易的用户不拥有该业务方法限定的用户权限,是不能够触发智能合约中该业务方法以实现交易的执行的。
为了便于对本申请实施例提供的一种智能合约执行约束的方法的详细阐述,下面先对智能合约的构建方法进行介绍。
BD(Business Define)是定义一整套完整的包含所有业务相关功能的业务规范,它定义了初始化智能合约所需的Permission、Policy,以及每个业务功能的类型、方法签名、执行Permission以及执行Policy所需的策略约束(业务规则)。可以有一个或多个DApp协作执行整套业务。BD定义发布时所需要的Permission、Policy需要在BD发布前注册定义,BD的发布为系统功能,采用异步全Domain投票的Policy。
BD为业务规范,用于业务共识,具体业务的业务规则定义。
Permission为业务权限,业务权限,与BD配合使用,作为BD的一项规则配置。
Policy为业务投票规则规定某类交易在RS的投票规则。
BD定义智能合约发布时所需要的各个业务方法的业务规则需要在智能合约发布前注册定义,智能合约的发布为系统功能,其也为一种业务类型,为了区分将用于智能合约发布的业务类型称为第二业务类型,将用于构建业务方法的业务规则的业务类型称为第一业务类型。
业务类型与业务代码一一对应,业务代码是用于区分在区块链上发布的智能合约的业务属性。DApp(Decentralized application,去中心化应用程序)可以根据具体的业务代码,获取其关联业务的智能合约,以便执行具体的业务功能。
system:系统BD类型,不需要初始化,所包含的功能列表全部为系统功能,不包含合约方法;
Contract:合约BD类型
Assets:资产BD类型,需要额外实现
自定义:合约类BD,需要初始化,也即发布合约。可以包含系统功能,如kyc设置、打快照等。
STACS智能合约通过BD定义的Permission和Policy约束规则,可以将智能合约的不同功能分配给不同Permission和policy,每个Identity可以授予不同的Permission,通过这种方式,智能合约的不同功能就会授权由特定Permission的Identity执行,从而达到金融业务分权执行合约功能的目的。其中,Identity为用户信息,一个具体用户标识,一般是个地址(以太坊账户地址)。
Contract:合约方法,表示methodSign为合约的方法签名。
SystemAction:系统功能。可选择如下功能:
BD_PUBLISH:BD发布
IDENTITY_SETTING:Identity设置,设置Identity的一般属性
IDENTITY_BD_MANAGE:Identity BD管理,冻结或解冻identity对BD的操作
KYC_SETTING:Identity KYC设置,即,设置Identity的KYC(know-your-custome,充分了解你的客户)属性
PERMISSION_REGISTER:Permission注册,注册系统permission
AUTHORIZE_PERMISSION:Permission授权,将permission授权给某一Identity
CANCEL_PERMISSION:Permission撤销授权,撤销Identity的Permission授权
REGISTER_POLICY:Policy注册
MODIFY_POLICY:Policy修改
SYSTEM_PROPERTY:系统属性配置,配置一些系统属性(key-value)
SET_FEE_RULE:手续费费率配置
SAVE_ATTESTATION:存证,保存存证数据
BUILD_SNAPSHOT:打快照
本申请实施例提供的一种智能合约构建过程涉及到智能合约生成过程和智能合约发布过程,企业可以先构建智能合约中的各个业务方法,进而针对预先设置的至少一个第一业务类型中的每个第一业务类型,分别构建每个业务方法在该第一业务类型下的执行约束条件以生成智能合约,并在生成智能合约后执行预先设置的第二业务类型指示的智能合约发布操作发布该生成的智能合约。其中,至少一个业务类型包括权限约束业务类型,该权限约束业务类型用于设置业务方法的Permission。至少一个业务类型还可以包括签名验证业务类型,该签名验证业务类型用于设置业务方法的Policy。
系统在初始化时,会默认初始化系统BD,系统BD中定义的所有系统功能(业务方法),都采用异步Domain投票策略且需要RS Permission。在初始化时会将系统BD中的Policy注册为Domain异步投票策略,系统BD中出现的Permission也会注册。也就是说系统初始化完成后,所有的投票策略都是异步Domain投票。
公平性:通过上述初始化方式确保在系统初始后各个Domain对系统管理能力都是公平的。所有系统功能在执行时都会异步参与投票,特别是BD发布,Permission注册、授权、撤销授权,Policy注册更新,IdentityKYC设置等执行权限相关的功能。
灵活性:后续可通过发布其他BD来指定某一系统功能采用其他投票策略或其他的Permission。但该BD的发布需要所有Domain异步授权投票,在保证灵活性的同时有确保了各Domain的公平性。
整个区块链对参与者进行了身份的抽象,同时对于身份赋予了Permission(权限),Permission可以更加细粒度的控制参与者参加业务的控制范围。当定制业务时需要制定参与各业务的权限,参与者必须具备交易要求的权限才能参与业务操作。
PermissionIndex:每个Permission都对应一个Index,且Index为正整数,每添加一个Permission,Index会自动加1,Permission只可以添加不可以删除。
PermissionName:名称整个区块链不允许重复
image-20191113173215168
系统预留0-20个整数的Permission
DEFAULT(index为0):Identity默认的Permission,如果定义的BD业务默认允许所有的Identity都可以参与业务,那么可以将Permission设置为DEFAULT;
RS(index为0):可以执行CRSFunction交易(具体参考BD交易)。
添加Permission
通过发送Permission注册交易添加新的Permission。
本申请实施例提供的目标企业为目标用户赋予第一权限信息的过程包括:接收目标企业通过预先设置的接口发送的权限设置请求,权限设置请求指示目标用户以及待为目标用户赋予的第一权限信息;响应权限设置请求,为目标用户分配第一权限信息。
参见如下实例,企业为其用户赋予用户权限的方式如下:
通过预先设置的“/permission/open/authorize”接口传送接口参数以基于接口参数给用户添加权限,例如,接口参数如下;
其中,identityAddress为用户地址,用户地址与用户唯一对应;permissionNames授权用户的权限,可同时授权多个权限(Permission),该实例中授权的用户权限为"VIP"和"AIP";identityType为Identity类型,identityType为1代表用户地址对应的用户的Identity类型为user,identityType为2代表用户地址对应的用户的Identity类型为domain,identityType为3代表用户地址对应的用户的Identity类型为Node。
基于上述共性现对本申请实施例提供的一种智能合约执行约束的方法进行详细说明,具体请参见图1。
如图1所示,该方法包括:
S101、接收交易请求,确定发送交易请求的目标用户和目标用户请求的交易,目标用户为企业用户;
本申请实施例,企业定义智能合约,智能合约中设置有一个或多个业务方法,并分别设置有每个业务方法的执行约束条件;不同的业务方法的执行约束条件可能相同也可能不同。
有关业务方法的执行约束条件可根据需求在构建智能合约时进行相应的设置,在此不做限定。
用户想要发起交易时,可以发送交易请求,本申请实施例提供的智能合约执行约束的方法可以接受交易请求,确定发送该交易请求的用户(为了便于区分,暂时将该用户称为目标用户),并确定该目标用户发送该交易请求所请求的交易。需要说明的是,该用户为企业用户。
S102、获取目标用户所属目标企业预先赋予目标用户的第一权限信息;
本申请实施例,接收到目标用户发送的交易请求后,确定目标用户所属的目标企业为该目标用户分配的用户权限,为了便于区分将目标企业为该目标用户分配的用户权限称为第一权限信息。
S103、确定目标企业提供的智能合约中用于执行交易的业务方法的执行约束条件,执行约束条件包括目标企业对允许执行业务方法的企业用户要求的第二权限信息;
本申请实施例,目标企业提供的智能合约中包括一个或多个业务方法,从一个或多个业务方法中确定用于执行目标用户请求的交易的业务方法,并获取所确定的业务方法的执行约束条件,该执行约束条件至少包括该目标企业在智能合约中设置的对允许执行该业务方法的企业用户所要具有的用户权限,为了便于区分,将执行约束条件包括的用户权限称为第二权限信息。
S104、根据第一权限信息和第二权限信息确定智能合约对交易请求的执行约束结果。
本申请实施例提供的一种根据第一权限信息和第二权限信息确定智能合约对交易请求的执行约束结果的方法包括:判断第一权限信息是否覆盖第二权限信息;若第一权限信息覆盖第二权限信息,确定交易请求满足智能合约的执行约束;若第一权限信息未覆盖第二权限信息,确定交易请求不满足智能合约的执行约束。
本申请实施例中,第一权限信息覆盖第二权限信息是指目标企业为目标用户赋予的用户权限包括智能合约中用于执行该目标用户请求的交易的业务方法的执行约束条件所要求的用户权限。
若目标企业为目标用户赋予的用户权限包括智能合约中用于执行该目标用户请求的交易的业务方法的执行约束条件所要求的用户权限,则确定交易请求满足智能合约的执行约束,进而执行智能合约中用于执行该目标用户请求的交易的业务方法,以实现交易过程。
若目标企业为目标用户赋予的用户权限不包括智能合约中用于执行该目标用户请求的交易的业务方法的执行约束条件所要求的用户权限,则确定交易请求不满足智能合约的执行约束,进而不执行智能合约中用于执行该目标用户请求的交易的业务方法,交易请求失败。
本申请实施例涉及到业务权限的验证,即,Permission验证。只有在目标用户的用户权限验证通过的基础上才可以执行业务方法,有效提高了业务的安全性。
进一步的,本申请实施例提供的用于执行交易的业务方法的执行约束条件还可以包括与业务方法存在关联的各个企业;与业务方法存在关联的各个企业不仅包括目标企业还包括与业务方法存在关联的各个其他企业。
目标企业定义的智能合约中包括一个或多个业务方法,针对一个业务方法而言,该业务方法除了与目标企业相关,可能还需要与其他企业相关。需要说明的是,与该业务方法相关的其他企业的数量可能为一个或多个。本申请实施例,可以将目标企业和与业务方法相关的其他企业作为与业务方法存在关联的各个企业。
在执行约束条件不仅包括目标企业对允许执行业务方法的企业用户要求的第二权限信息,还包括与业务方法存在关联的各个企业时,本申请实施例提供另一种智能合约执行约束方法,具体请参见图2。
如图2所示,该方法包括:
S201、接收交易请求,确定发送交易请求的目标用户和目标用户请求的交易,目标用户为企业用户;
S202、确定目标用户所属目标企业提供的智能合约中用于执行交易的业务方法的执行约束条件,执行约束条件包括目标企业对允许执行业务方法的企业用户要求的第二权限信息以及与业务方法存在关联的各个企业;
在本申请实施例中,在接收交易请求,确定智能合约中用于执行交易请求指示的交易的业务方法的执行约束条件后,可以确定执行约束条件指示的与业务方法存在关联的各个企业,提示各个企业对该交易请求进行投票,接收每个企业对该交易请求的投票操作得到投票结果。企业对交易请求的投票操作为同意或者不同意,当各个企业对该交易请求的投票操作都为同意时,投票结果表征各个企业均同意交易,进而执行步骤S205;若各个企业中存在投票操作为不同意的企业,则投票结果表征不是各个企业均同意交易,此时确定交易请求失败。
S203、接收各个企业对交易的投票操作得到投票结果;
本申请实施例,针对一个企业而言,若该企业对交易请求的投票操作为同意说明该企业对该交易请求签名验证通过;若该企业对交易请求的投票操作为不同意说明该企业对该交易请求签名验证不同。
S204、判断投票结果是否表征各个企业均同意交易;若投票结果表征各个企业均同意交易,执行步骤S205;
S205、获取目标用户所属目标企业预先赋予目标用户的第一权限信息;
S206、根据第一权限信息和第二权限信息确定智能合约对交易请求的执行约束结果。
本申请实施例不仅涉及到业务权限的验证(即,Permission验证),还涉及到业务投票规则验证(即,Policy验证)。本申请只有在目标用户的用户权限验证通过,且与交易请求相关的各个企业均签名验证通过的基础上,才可以执行业务方法,进一步提高了业务的安全性。
以上仅仅是本申请实施例提供的在执行约束条件不仅包括目标企业对允许执行业务方法的企业用户要求的第二权限信息,还包括与业务方法存在关联的各个企业时,智能合约执行约束方法的一种实现方式,该智能合约执行约束方法并不对用户权限和签名验证顺序进行限定。
为了便于对本申请实施例提供的一种智能合约执行约束的方法的说明,现对该过程中的判断第一权限信息是否覆盖第二权限信息的方法进行详细说明。具体请参见图3。
如图3所示,该方法包括:
S301、获取第一权限信息指示各个第一权限;
本申请实施例,确定目标企业对目标用户赋予的第一权限信息指示的各个权限,将该第一权限信息指示的每个权限称为一个第一权限。
比如,目标企业为该目标用户赋予的用户权限时通过接口发送的接口参数为"permissionNames":["VIP","AIP"],则确定目标用户的第一权限信息指示两个第一权限,这两个第一权限分别为"VIP"、"AIP"。
S302、根据预先设置的权限与权限值的一一对应关系,确定每个第一权限的权限值;
比如,预先设置权限与权限值(index)的一一对应关系包括DEFAULT与0对应,VIP与1对应,AIP与2对应,则确定的VIP的权限值为1,AIP的权限值为2。
S303、确定第二权限信息携带的第二权限的权限值;
本申请实施例,确定用于执行交易的业务方法的执行约束条件后,确定执行约束条件包括的目标企业允许执行该业务方法的企业用户需要具有的第二权限信息,该第二权限信息指示目标企业允许执行该业务方法的企业用户需要具有的用户权限(第二权限),比如VIP。仍以上述实例进行说明,VIP的权限值为1。
S304、根据各个第一权限的权限值和第二权限的权限值判断第一权限信息是否覆盖第二权限信息。
图4为本申请实施例提供的一种根据各个第一权限的权限值和第二权限的权限值判断第一权限信息是否覆盖第二权限信息的方法流程图。
如图4所示,该方法包括:
S401、根据各个第一权限的权限值计算目标用户的综合权限值;
本申请实施例,将第一权限的权限值转换成2的权限值次方得到第一权限的目标权限值,对各个第一权限的目标权限值进行与或操作。
仍以上述实例进行说明,若目标企业为目标用户赋予用户权限时通过接口传送的接口参数包括"permissionNames":["VIP","AIP"],则确定第一权限信息指示的第一权限包括VIP和AIP,VIP的权限值为1,AIP的权限值为2;进而将DEFAULT:0(DEFAULT:0表示DEFAULT的权限值为0)转换为2的index次方等于1;将VIP:1(VIP:1表示VIP的权限值为1)转换为2的index次方等于2;将AIP:2(AIP:2表示AIP的权限值为2)转换为2的index次方等于4;对多个第一权限的目标权限值进行与或操作,即将DEFAULT的目标权限值.or(VIP的目标权限值).or(AIP的目标权限值)转换成32进制得到目标用户的综合权限值7。
仍以上述实例进行说明,可以通过如下方式实现对目标用户的综合权限值的计算:
区块链在计算“2b236839774975579cd28704438264cac795e25b”的permission时,会对多个permission进行与或操作
/**
DEFAULT:0转换为2的index次方等于1
VIP:1转换为2的index次方等于2
AIP:2转换为2的index次方等于4
*/
BigIntegerDEFAULT=newBigInteger("2").pow(0);
BigIntegerVIP=newBigInteger("2").pow(1);
BigIntegerAIP=newBigInteger("2").pow(2);
//对转换的permission求余
BigIntegerd=DEFAULT.or(VIP).or(AIP);
//对求余的permission再次转换为32进制,最终Identity的permission记为7
System.out.println(d.toString(32))。
S402、根据综合权限值和第二权限的权限值计算目标用户的目标权限值;
仍以上述实例为例,若该第二权限信息指示目标企业允许执行该业务方法的企业用户需要具有的用户权限(第二权限)为VIP,VIP的权限值为1,将VIP的权限值转换成2的权限值次方得到VIP的目标权限值,即将1转为2的1次方为2;综合权限值7和2做and操作结果为2,该综合权限值7和2做and操作结果为目标用户的目标权限值。
S403、判断目标权限值和第二权限的权限值是否相同;
S404、若目标权限值和第二权限的权限值相同,确定第一权限信息覆盖第二权限信息;
S405、若目标权限值和第二权限的权限值不相同,确定第一权限信息未覆盖第二权限信息。
仍以上述实例进行说明,可以通过如下方式实现根据目标用户的综合权限值和第二权限的权限值实现Permission验证:
当【2b236839774975579cd28704438264cac795e25b】发送一笔交易,这笔交易对应的业务方法所要求的用户权限为VIP,即这笔交易执行的Permission为VIP,那么验证流程如下;
会查询该Identity的Permission,通过上一个流程确定目标企业为目标用户添加了三个Permission,这三个Permission的综合权限值为7;
当前交易执行的Permission为1,会将1转为2的1次方为2;
7和2做and操作结果为2,再将操作结果与交易的Permission比较,如果相等则验证通过。
//用户permission和VIP做and操作
BigInteger e=d.and(VIP);
intresult=e.compareTo(VIP);
System.out.println("如果result等于0,则验证通过")。
进一步的,如果操作结果与交易的Permission不相等,则验证不通过。
图5为本申请实施例提供的一种智能合约执行约束的装置的结构示意图。
如图5所示,该装置包括:
交易请求接收单元51,用于接收交易请求,确定发送交易请求的目标用户和目标用户请求的交易,目标用户为企业用户;
第一权限信息获取单元52,用于获取目标用户所属目标企业预先赋予目标用户的第一权限信息;
第二权限信息获取单元53,用于确定目标企业提供的智能合约中用于执行交易的业务方法的执行约束条件,执行约束条件包括目标企业对允许执行业务方法的企业用户要求的第二权限信息;
执行约束结果生成单元54,用于根据第一权限信息和第二权限信息确定智能合约对交易请求的执行约束结果。
图6为本申请实施例提供的一种智能合约执行约束方法所使用的终端的硬件结构框图。
如图6所示该终端可以包括:处理器601、存储器602、通信接口603、输入单元604和显示器605和通信总线606。
存储器602中用于存放一个或者一个以上程序,程序可以包括程序代码,程序代码包括计算机操作指令,在本发明实施例中,该存储器中至少存储有用于实现以下功能的程序:
接收交易请求,确定发送交易请求的目标用户和目标用户请求的交易,目标用户为企业用户;
获取目标用户所属目标企业预先赋予目标用户的第一权限信息;
确定目标企业提供的智能合约中用于执行交易的业务方法的执行约束条件,执行约束条件包括目标企业对允许执行业务方法的企业用户要求的第二权限信息;
根据第一权限信息和第二权限信息确定智能合约对交易请求的执行约束结果。
可选的,程序的细化功能和扩展功能可参照下文描述。
处理模块601、存储器602、通信接口603、输入单元604、显示器605、均通过通信总线606完成相互间的通信。
在本发明实施例中,该处理器601,可以为中央处理器(Central ProcessingUnit,CPU),特定应用集成电路(application-specific integrated circuit,ASIC),数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件等。
该处理器可以调用并执行存储器602中存储的程序。
该通信接口603可以为通信模块的接口,如GSM模块的接口。
本发明还可以包括输入单元604,该输入单元可以包括感应触摸显示面板上的触摸事件的触摸感应单元、键盘等等。
该显示器605包括显示面板,如触摸显示面板等。在一种可能的情况中,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-EmittingDiode,OLED)等形式来配置显示面板。
当然,图6所示的终端结构并不构成对本发明实施例中终端的限定,在实际应用中终端可以包括比图6所示的更多或更少的部件,或者组合某些部件。
进一步的,本申请实施例还提供一种计算机可读计算机存储介质,该计算机可读存储介质中存储有计算机可执行指令,该计算机可执行指令用于执行上述智能合约执行约束的方法。
有关计算机可执行指令的具体内容可参见上文对本申请实施例提供的一种验证方法的详细描述,在此不做赘述。
本申请提供一种智能合约执行约束的方法、装置、终端及存储介质,确定发送交易请求的目标用户和目标用户请求的交易,目标用户为企业用户;获取目标用户所属目标企业预先赋予目标用户的第一权限信息;确定目标企业提供的智能合约中用于执行交易的业务方法的执行约束条件,执行约束条件包括目标企业对允许执行业务方法的企业用户要求的第二权限信息;根据第一权限信息和第二权限信息确定智能合约对交易请求的执行约束结果。
本申请只有在发送交易的用户的权限满足企业定义的智能合约中用于执行交易的业务方法所要求的用户权限的基础上,才能触发智能合约中业务方法的执行,这样企业针对不同的业务方法可以制定不同的执行约束条件,以基于业务方法的执行约束条件控制业务方法的执行,不仅能够实现企业交易场景,还能够提高业务安全性。
以上对本发明所提供的一种智能合约执行约束的方法、装置、服务器及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备所固有的要素,或者是还包括为这些过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种智能合约执行约束的方法,其特征在于,包括:
接收交易请求,确定发送所述交易请求的目标用户和所述目标用户请求的交易,所述目标用户为企业用户;
获取所述目标用户所属目标企业预先赋予所述目标用户的第一权限信息;
确定所述目标企业提供的智能合约中用于执行所述交易的业务方法的执行约束条件,所述执行约束条件包括所述目标企业对允许执行所述业务方法的企业用户要求的第二权限信息;
根据所述第一权限信息和所述第二权限信息确定所述智能合约对所述交易请求的执行约束结果。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一权限信息和所述第二权限信息确定所述智能合约对所述交易请求的执行约束结果,包括:
判断所述第一权限信息是否覆盖所述第二权限信息;
若所述第一权限信息覆盖所述第二权限信息,确定所述交易请求满足所述智能合约的执行约束;
若所述第一权限信息未覆盖所述第二权限信息,确定所述交易请求不满足所述智能合约的执行约束。
3.根据权利要求2所述的方法,其特征在于,所述执行约束条件还包括与所述业务方法存在关联的各个企业,该方法还包括:
接收各个所述企业对所述交易的投票操作得到投票结果;
所述若所述第一权限信息覆盖所述第二权限信息,确定所述交易请求满足所述智能合约的执行约束,包括:若所述第一权限信息覆盖所述第二权限信息,且所述投票结果表征各个所述企业均同意所述交易,确定所述交易请求满足所述智能合约的执行约束。
4.根据权利要求1所述的方法,其特征在于,所述判断所述第一权限信息是否覆盖所述第二权限信息,包括:
获取所述第一权限信息指示各个第一权限;
根据预先设置的权限与权限值的一一对应关系,确定每个所述第一权限的权限值;
确定所述第二权限信息携带的第二权限的权限值;
根据各个所述第一权限的权限值和所述第二权限的权限值判断所述第一权限信息是否覆盖所述第二权限信息。
5.根据权利要求4所述的方法,其特征在于,所述根据各个所述第一权限的权限值和所述第二权限的权限值判断所述第一权限信息是否覆盖所述第二权限信息,包括:
根据各个所述第一权限的权限值计算所述目标用户的综合权限值;
根据所述综合权限值和所述第二权限的权限值计算所述目标用户的目标权限值;
判断所述目标权限值和所述第二权限的权限值是否相同;
若所述目标权限值和所述第二权限的权限值相同,确定所述第一权限信息覆盖所述第二权限信息;
若所述目标权限值和所述第二权限的权限值不相同,确定所述第一权限信息未覆盖所述第二权限信息。
6.根据权利要求1所述的方法,其特征在于,还包括智能合约构建过程,所述智能合约构建过程包括:
构建所述智能合约中的各个业务方法;
针对预先设置的至少一个第一业务类型中的每个所述第一业务类型,构建所述业务方法在所述第一业务类型下的执行约束条件生成智能合约;所述至少一个第一业务类型包括权限约束业务类型;
执行预先设置的第二业务类型指示的智能合约发布操作发布所生成的智能合约。
7.根据权利要求6所述的方法,其特征在于,还包括所述目标企业预先赋予所述目标用户第一权限信息的过程,该过程包括:
接收所述目标企业通过预先设置的接口发送的权限设置请求,所述权限设置请求指示所述目标用户以及待为所述目标用户赋予的第一权限信息;
响应所述权限设置请求,为所述目标用户分配所述第一权限信息。
8.一种智能合约执行约束的装置,其特征在于,包括:
交易请求接收单元,用于接收交易请求,确定发送所述交易请求的目标用户和所述目标用户请求的交易,所述目标用户为企业用户;
第一权限信息获取单元,用于获取所述目标用户所属目标企业预先赋予所述目标用户的第一权限信息;
第二权限信息获取单元,用于确定所述目标企业提供的智能合约中用于执行所述交易的业务方法的执行约束条件,所述执行约束条件包括所述目标企业对允许执行所述业务方法的企业用户要求的第二权限信息;
执行约束结果生成单元,用于根据所述第一权限信息和所述第二权限信息确定所述智能合约对所述交易请求的执行约束结果。
9.一种服务器,其特征在于,包括:至少一个存储器和至少一个处理器;所述存储器存储有程序,所述处理器调用所述存储器存储的程序,所述程序用于实现如权利要求1-7任意一项所述的智能合约执行约束的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令用于执行权利要求1-7任意一项所述的智能合约执行约束的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010311798.7A CN111538783B (zh) | 2020-04-20 | 2020-04-20 | 一种智能合约执行约束的方法、装置、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010311798.7A CN111538783B (zh) | 2020-04-20 | 2020-04-20 | 一种智能合约执行约束的方法、装置、终端及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111538783A true CN111538783A (zh) | 2020-08-14 |
CN111538783B CN111538783B (zh) | 2023-05-05 |
Family
ID=71976876
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010311798.7A Active CN111538783B (zh) | 2020-04-20 | 2020-04-20 | 一种智能合约执行约束的方法、装置、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111538783B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114997866A (zh) * | 2022-05-26 | 2022-09-02 | 成都质数斯达克科技有限公司 | 一种业务合约生成方法、装置、设备及可读存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106504091A (zh) * | 2016-10-27 | 2017-03-15 | 上海亿账通区块链科技有限公司 | 区块链上交易的方法及装置 |
CN108876381A (zh) * | 2018-08-07 | 2018-11-23 | 杨国超 | 基于智能合约的安全交易方法 |
CN109523385A (zh) * | 2018-12-07 | 2019-03-26 | 深圳市智税链科技有限公司 | 在区块链网络中查询交易信息的方法、记账节点和介质 |
CN109829013A (zh) * | 2018-12-27 | 2019-05-31 | 上海点融信息科技有限责任公司 | 用于在区块链网络中运行智能合约的方法、存储介质、计算设备 |
CN110071813A (zh) * | 2019-04-30 | 2019-07-30 | 杭州复杂美科技有限公司 | 一种账户权限更改方法系统、账户平台和用户终端 |
CN110516417A (zh) * | 2019-08-09 | 2019-11-29 | 中国银联股份有限公司 | 一种智能合约的权限验证方法及装置 |
CN110580417A (zh) * | 2019-11-08 | 2019-12-17 | 支付宝(杭州)信息技术有限公司 | 基于智能合约的隐私数据查询方法及装置 |
CN110866270A (zh) * | 2019-10-18 | 2020-03-06 | 深圳市元征科技股份有限公司 | 一种行业信息的交易方法、系统及装置 |
-
2020
- 2020-04-20 CN CN202010311798.7A patent/CN111538783B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106504091A (zh) * | 2016-10-27 | 2017-03-15 | 上海亿账通区块链科技有限公司 | 区块链上交易的方法及装置 |
CN108876381A (zh) * | 2018-08-07 | 2018-11-23 | 杨国超 | 基于智能合约的安全交易方法 |
CN109523385A (zh) * | 2018-12-07 | 2019-03-26 | 深圳市智税链科技有限公司 | 在区块链网络中查询交易信息的方法、记账节点和介质 |
CN109829013A (zh) * | 2018-12-27 | 2019-05-31 | 上海点融信息科技有限责任公司 | 用于在区块链网络中运行智能合约的方法、存储介质、计算设备 |
CN110071813A (zh) * | 2019-04-30 | 2019-07-30 | 杭州复杂美科技有限公司 | 一种账户权限更改方法系统、账户平台和用户终端 |
CN110516417A (zh) * | 2019-08-09 | 2019-11-29 | 中国银联股份有限公司 | 一种智能合约的权限验证方法及装置 |
CN110866270A (zh) * | 2019-10-18 | 2020-03-06 | 深圳市元征科技股份有限公司 | 一种行业信息的交易方法、系统及装置 |
CN110580417A (zh) * | 2019-11-08 | 2019-12-17 | 支付宝(杭州)信息技术有限公司 | 基于智能合约的隐私数据查询方法及装置 |
Non-Patent Citations (3)
Title |
---|
SINA RAFATI NIYA: "TradeMap: A FINMA-compliant Anonymous Management of an End-2-end Trading Market Place" * |
吕坤;鲍可进;: "基于区块链的数字资产交易系统设计与实现" * |
王强;刘长春;周保茹;: "基于区块链的制造服务可信交易方法" * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114997866A (zh) * | 2022-05-26 | 2022-09-02 | 成都质数斯达克科技有限公司 | 一种业务合约生成方法、装置、设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111538783B (zh) | 2023-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11651109B2 (en) | Permission management method, permission verification method, and related apparatus | |
US20220029810A1 (en) | Identity and electronic signature verification in blockchain | |
US20210250353A1 (en) | Decentralized identities for access to multiple computing resource systems | |
US11388010B2 (en) | Blockchain account migration | |
CN109791671B (zh) | 区块链实现的方法和系统 | |
CN110599213B (zh) | 一种基于区块链网络的物品管理方法、装置及电子设备 | |
US10587413B1 (en) | Decentralized identities for cross-enterprise authentication and/or authorization | |
US9769137B2 (en) | Extensible mechanism for securing objects using claims | |
CN109104396B (zh) | 一种基于代理签名的区块链代理授权方法、介质 | |
US11475453B2 (en) | System and techniques for utilizing a smart contracts library | |
KR20220093198A (ko) | 전용 및 개방형 블록체인을 이용한 거래의 수행 | |
KR102569409B1 (ko) | 가상 분산 원장 네트워크를 위한 시스템 및 방법 | |
CN110516417B (zh) | 一种智能合约的权限验证方法及装置 | |
CN109191123A (zh) | 一种数字货币代理发行额度控制系统及方法 | |
CN114760071B (zh) | 基于零知识证明的跨域数字证书管理方法、系统和介质 | |
CN111585946B (zh) | 密码学主权方简档控制和交易仲裁 | |
Rashid et al. | RC-AAM: blockchain-enabled decentralized role-centric authentication and access management for distributed organizations | |
CN111385096B (zh) | 一种区块链网络系统、签名处理方法、终端及存储介质 | |
CN111538783A (zh) | 一种智能合约执行约束的方法、装置、终端及存储介质 | |
CN111178896B (zh) | 乘车支付方法、装置及存储介质 | |
US9361435B1 (en) | Multi-tier digital supply chain management | |
CN114978668B (zh) | 一种跨链数据实体身份管理和认证方法及系统 | |
CN116881873B (zh) | 业务主体的身份认证方法、装置、电子设备和存储介质 | |
KR20210090519A (ko) | 사물인터넷에서 서비스 수준 협약 기반 공유경제 서비스 제공시스템 및 제공방법 | |
US20230379367A1 (en) | Data Security Systems and Methods on Controlled Devices |
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 |