发明内容
为克服相关技术中存在的问题,本公开提供了一种操作权限管理方法、装置及区块链节点、存储介质。
根据本公开实施例的第一方面,提供了一种操作权限管理方法,应用于区块链网络中的区块链节点,所述方法包括:
确定执行权限管理的区块;
根据被确定的区块中存储的智能合约,确定权限管理对象对区块链的操作行为是否合法;
当权限管理对象对区块链的操作行为被确定为合法时,允许所述权限管理对象对区块链执行所述操作行为。
根据本公开实施例第二方面,还提供了一种操作行为权限管理装置,应用于区块链网络中的区块链节点,所述装置包括:
区块确定模块,被配置成确定执行权限管理的区块;
合法确定模块,被配置成根据被确定的区块中存储的智能合约,确定权限管理对象对区块链的操作行为是否合法;
操作行为执行模块,被配置成当权限管理对象对区块链的操作行为被确定为合法时,允许所述权限管理对象对区块链执行所述操作行为。
根据本公开实施例第三方面,还提供了一种区块链节点,应用于区块链网络中,所述区块链节点包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
确定执行权限管理的区块;
根据被确定的区块中存储的智能合约,确定权限管理对象对区块链的操作行为是否合法;
当权限管理对象对区块链的操作行为被确定为合法时,允许所述权限管理对象对区块链执行所述操作行为。
根据本公开实施例第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序指令,该程序指令被处理器执行时实现上述方法的步骤。
通过上述技术方案,本公开提供的一种操作权限管理方法,通过确定执行权限管理的区块;然后根据被确定的区块中存储的智能合约,确定权限管理对象对区块链的操作行为是否合法;最后当权限管理对象对区块链的操作行为被确定为合法时,允许所述权限管理对象对区块链执行所述操作行为,从而不存在对数据的加密密码的泄露问题,同时也避免了恶意节点攻击,提高了数据的安全性。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
区块链是由区块链网络中所有节点共同参与维护的去中心化分布式数据库系统,它是由一系列基于密码学方法产生的数据块组成,每个数据块即为区块链中的一个区块。根据产生时间的先后顺序,区块被有序地链接在一起,形成一个数据链条,被形象地称为区块链。区块链由其特别的区块和交易产生、验证协议,具有不可更改,不可伪造、完全可追溯的安全特性。
区块链技术中涉及到的相关概念说明:
区块链节点:区块链网络基于P2P(Peer to Peer,对等网络)网络,每个参与交易和区块存储、验证、转发的P2P网络节点都是一个区块链网络中的节点。
区块链数据写入:区块链节点通过向区块链网络发布“交易”(Transaction)实现向区块链写入数据。交易中包含用户使用自己私钥对交易的签名,以证明用户的身份。交易被“矿工”(执行区块链共识竞争机制的区块链节点)记录入产生的新区块,然后发布到区块链网络,并被其他区块链节点验证通过和接受后,交易数据即被写入区块链。
智能合约:从技术角度来讲,智能合约被认为是网络服务器,只是服务器并不是使用IP地址架设在互联网上,而是架设在区块链上,从而可以在其上面运行特定的合约程序。但是与网络服务器不同的是,智能合约不依赖某个特定的硬件设备,事实上,智能合约的代码由所有参与计算的设备来执行。
智能合约是编程在区块链上的汇编语言,例如用Solidity或者Javascript类似的专用语言在创建区块链时预先制定智能合约。这些字节码确实给区块链的功能性提供了指引,因此代码可以很容易与它进行交互,例如转移密码学货币和记录事件。
区块链具有的特性:
去中心化:整个区块链系统没有中心化的硬件或者管理机构,任意节点之间的权利和义务都是均等的,且任一节点的损坏或者失去都会不影响整个系统的运作。因此也可以认为区块链具有极好的健壮性。
去信任化:参与整个区块链系统中的每个节点之间进行数据交换是无需互相信任的,整个系统的运作规则是公开透明的,所有的数据内容也是公开的,因此在系统指定的规则范围和时间范围内,节点之间是不能也无法欺骗其它节点。
基于区块链技术,本公开实施例提供了一种操作权限管理方法,该方法可以应用于如图1中所示的区块链网络101中的区块链节点。如图2所示,所述方法包括:
S11:确定执行权限管理的区块。
其中,权利管理包括权限管理范围:例如,新产生的区块的合法性、区块的交易执行的合法性、节点ID可通讯内容的合法性等等。权限管理的对象:例如,包括区块的产生者是否合法、交易执行的双方或多方参与方是否合法、智能合约账户是否合法等等。权限管理的认证方式:例如,在P2P连接或通讯时认证、在产生区块时认证、在交易执行时认证、在自定义的合约认证。权限管理的层级:例如,权限规则、权限内容。
对于区块链节点中的区块而言,是随时可能发生迭代更新的,而且区块内存在的智能合约的内容也可能发生更新,因此,需要找到当前区块链节点中迭代后最新的状态的区块作为执行权限管理的区块。
S12:根据被确定的区块中存储的智能合约,确定权限管理对象对区块链的操作行为是否合法;如果是,则执行S13。
可以在区块链处于初始状态下,将智能合约可写入创世区块中,也可以仅在创世区块中指定智能合约的代码的地址,可以通过地址查询智能合约,也可以写入到区块链外的配置中并将配置下发到所有参与共识的区块链节点。
其中,权限管理对象对区块链的操作行为可以为:例如,A矿工在区块链中新产生一个区块、新添加一个区块链节点、对区块链节点中存储的智能合约的内容进行修改等等。确定权限管理对象对区块链的操作行为是否合法过程可以为:例如,当智能合约中约定的产生新的区块的账号中不包含A矿工的账号,因此,若对区块链节点的操作行为是A矿工在区块链中新产生一个区块,则确定该操作行为是不合法的。再例如,智能合约中约定允许加入区块链节点的ID信息包括B区块链节点的ID信息,当对区块链的操作行为是B区块链节点向区块链发出加入请求时,则确定该操作行为是合法的。
S13:允许所述权限管理对象对区块链执行所述操作行为。
本公开提供的一种操作权限管理方法,通过确定执行权限管理的区块;然后根据被确定的区块中存储的智能合约,确定权限管理对象对区块链的操作行为是否合法;最后当权限管理对象对区块链的操作行为被确定为合法时,允许所述权限管理对象对区块链执行所述操作行为,从而不存在对数据的加密密码的泄露问题,同时也避免了恶意节点攻击,提高了数据的安全性。
可选地,所述区块链节点包括第一区块序列,所述第一区块序列包括创世区块和由创世区块迭代后的处于不同顺序的多个区块。区块链节点中第一个被最早构建的区块称为创世块,而对于后续建立的区块均包含两个ID号,一个是该区块自身的ID号,另一个是前序区块的ID号。
如图3所示,S11包括:
S111:判断是否接收到另一个区块链节点发送的包含多个区块的第二区块序列,如果是,则执行S112,如果否,则执行S114。
S112:依据所述第二区块序列中最早迭代出的区块的ID,从所述第一区块序列中查询所述第二区块序列中最早迭代出的区块的前序区块。
其中,在所述第一区块序列中,所述前序区块后迭代的区块数量小于第二区块序列中的区块数量(通常地,区块链节点只接收区块数量大于前序区块后迭代的区块数量的第二区块序列)。
S113:将所述前序区块确定为执行权限管理的区块。
S12具体为根据所述前序区块中存储的智能合约验证接收所述第二区块序列是否合法。
例如,第一区块序列根据区块创建的先后顺序包括A1区块、A2区块、A3区块、A4区块、A5区块,第二区块序列依据区块创建的先后顺序包括B1区块、B2区块、B3区块,其中,第二区块序列最早迭代出的区块为B1区块,B1区块在第一区块序列中的前序区块为A3区块,在第一区块序列中,在A3区块后迭代的区块的数量为2,在第二区块序列中,在A3后迭代的区块的数量为3,因此,第二区块序列的算力较强,可以将第二区块序列中最晚迭代出的区块的状态作为当前的世界观,但是需要验证第二区块序列是否合法,因此,需要预先将A3区块作为执行权限管理的区块验证第二区块序列是否合法(例如,验证B1区块的ID是否合法)。
S114:将所述第一区块序列中最晚迭代出的区块确定为所述执行权限管理的区块。
可选地,如图4所示,所述方法还包括:
S14:将所述第二区块序列中最晚迭代出的区块确定为所述执行权限管理的区块。
当第二区块序列被验证合法时,即可将所述第二区块序列中最晚迭代出的区块确定为所述执行权限管理的区块,然后返回至S12的操作。最晚迭代出的区块中存储有最近更新的智能合约,因此,更符合当前时刻对权限管理的要求。
最晚迭代出的区块中存储有最进更新的智能合约,因此,更符合当前时刻对权限管理的要求。
可选地,如图5所示,所述智能合约包括有权限赋予规则及权限内容,S12包括:
根据所述权限赋予规则及权限内容,确定权限管理对象对区块链的操作行为是否合法。
假设权限管理的对象仅是区块的产生者,即权限赋予规则为如何赋予某个区块产生者账号的计算权限。初始化的权限赋予规则为“环签”,初始化的权限内容为B区块的产生者账号被赋予计算权限。
当需要赋予A区块产生者计算权限时,可以由区块链上的A区块、B区块、C区块的区块产生者账号进行环签确认(即A区块、B区块、C区块的区块产生者账号均达成共识)后生效,此时权限内容为A区块与B区块的产生者账号被赋予计算权限。
当权限赋予规则为“投票”时,初始化的权限内容为B具有计算权限。
当赋予A计算权限时,并区块链上的A、B、C的区块产生者账号进行投票后确认后生效(即A区块、B区块、C区块的区块产生者账号的其中两个达成共识),此时权限内容为A与B产生者账号被赋予计算权限。
图6是根据一示例性实施例示出的一种操作权限管理装置600的框图,该装置应用于区块链网络中的区块链节点,用于实施上述方法实施例中。需要说明的是,本发明实施例所提供的操作权限管理装置600,其基本原理及产生的技术效果和上述实施例相同,为简要描述,本实施例部分未提及之处,可参考上述的实施例中相应内容。如图6所示,该装置至少包括区块确定模块601、合法确定模块602、操作行为执行模块603。
区块确定模块601被配置成确定执行权限管理的区块。
合法确定模块602被配置成根据被确定的区块中存储的智能合约,确定权限管理对象对区块链的操作行为是否合法。
操作行为执行模块603被配置成当权限管理对象对区块链的操作行为被确定为合法时,允许所述权限管理对象对区块链执行所述操作行为。
本公开提供的一种操作权限管理装置600,在执行上述的功能模块时,通过确定执行权限管理的区块;然后根据被确定的区块中存储的智能合约,确定权限管理对象对区块链的操作行为是否合法;最后当权限管理对象对区块链的操作行为被确定为合法时,允许所述权限管理对象对区块链执行所述操作行为,从而不存在对数据的加密密码的泄露问题,同时也避免了恶意节点攻击,提高了数据的安全性。
可选地,如图7所示,作为其中一种具体实施方式,所述区块链节点包括第一区块序列,所述第一区块序列包括创世区块和由创世区块迭代后的处于不同顺序的多个区块,区块确定模块601包括:
查询子模块701,被配置成当接收到另一个区块链节点发送的包含多个区块的第二区块序列时,依据所述第二区块序列中最早迭代出的区块的ID,从所述第一区块序列中查询所述第二区块序列中最早迭代出的区块的前序区块,其中,在所述第一区块序列中,所述前序区块后迭代的区块数量小于第二区块序列中的区块数量。
区块确定子模块702,被配置成将所述前序区块确定为执行权限管理的区块。
所述合法确定模块602具体被配置成根据所述前序区块中存储的智能合约验证接收所述第二区块序列是否合法。
可选地,所述区块确定模块601还被配置成将所述第二区块序列中最晚迭代出的区块确定为所述执行权限管理的区块。
可选地,所述区块链节点包括第一区块序列,所述第一区块序列包括创世区块和由创世区块迭代后的处于不同顺序的多个区块,所述区块确定模块601还被配置成当未接收到另一个区块链节点发送的包含多个区块的第二区块序列时,将所述第一区块序列中最晚迭代出的区块确定为所述执行权限管理的区块。
具体地,所述智能合约包括有权限赋予规则及权限内容,
合法确定模块602被配置成根据所述权限赋予规则及权限内容,确定权限管理对象对区块链的操作行为是否合法。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图8是根据一示例性实施例示出的一种区块链节点800的框图。例如,区块链节点800可以被提供为一服务器。参照图8,区块链节点800包括处理器822,其数量可以为一个或多个,以及存储器832,用于存储可由处理器822执行的计算机程序。存储器832中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器822可以被配置为执行该计算机程序,以执行上述的操作权限管理方法。比如,处理器822可以执行确定执行权限管理的区块;根据被确定的区块中存储的智能合约,确定权限管理对象对区块链的操作行为是否合法;当权限管理对象对区块链的操作行为被确定为合法时,允许所述权限管理对象对区块链执行所述操作行为。
另外,区块链节点800还可以包括电源组件826和通信组件850,该电源组件826可以被配置为执行区块链节点800的电源管理,该通信组件850可以被配置为实现区块链节点800的通信,例如,有线或无线通信。此外,该区块链节点800还可以包括输入/输出(I/O)接口858。区块链节点800可以操作基于存储在存储器832的操作系统,例如WindowsServerTM,Mac OS XTM,UnixTM,LinuxTM等等。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的操作权限管理方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器832,上述程序指令可由区块链节点800的处理器822执行以完成上述的操作权限管理方法。
在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的操作权限管理方法的代码部分。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。