CN115118423A - 一种可信区块链的共识方法、装置和可信区块链系统 - Google Patents

一种可信区块链的共识方法、装置和可信区块链系统 Download PDF

Info

Publication number
CN115118423A
CN115118423A CN202210239581.9A CN202210239581A CN115118423A CN 115118423 A CN115118423 A CN 115118423A CN 202210239581 A CN202210239581 A CN 202210239581A CN 115118423 A CN115118423 A CN 115118423A
Authority
CN
China
Prior art keywords
block
node
signature
participating
block chain
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.)
Pending
Application number
CN202210239581.9A
Other languages
English (en)
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.)
Cloudminds Shanghai Robotics Co Ltd
Original Assignee
Cloudminds Shanghai Robotics 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 Cloudminds Shanghai Robotics Co Ltd filed Critical Cloudminds Shanghai Robotics Co Ltd
Priority to CN202210239581.9A priority Critical patent/CN115118423A/zh
Publication of CN115118423A publication Critical patent/CN115118423A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • 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
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3234Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Technology Law (AREA)
  • General Business, Economics & Management (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本说明书一个或多个实施例公开了一种可信区块链的共识方法、装置和可信区块链系统,该方案包括:产生区块节点接收参与节点发送的预签名区块,基于参与节点发布的区块链账户参数,对预签名区块进行验证;在验证通过后,根据预签名区块中记录的难度目标,以设定算力进行共识计算,得到满足难度目标的随机数;将随机数添加到预签名区块,并使用自身区块链账户参数进行签名以构造完整签名区块。通过PoW机制基于预签名和完整签名实现对区块的共识,且在TEE实现对区块完整签名,保证区块合法性。同时,产生区块节点的区块链账户在TEE中产生,无法通过修改TEE程序来扩大算力,避免非法增加算力,保证可信区块链的共识安全、可信,并减少资源浪费。

Description

一种可信区块链的共识方法、装置和可信区块链系统
技术领域
本文件涉及区块链技术领域,尤其涉及一种可信区块链的共识方法、装置和可信区块链系统。
背景技术
区块链,是利用分布式账本技术解决多方信任问题的去中心化创新性的解决方案,是当前社会的前沿技术。
区块链主要有三大类型,分别是公有链、联盟链、私有链。其中,联盟链,只针对特定某个群体的成员和有限的第三方,内部指定多个预选的节点为记账人,每个块的生成由所有的预选节点共同决定,其他接入节点可以参与交易,但不过问记账过程,其他第三方可以通过该区块链开放的API进行限定查询。
企业应用一般采用联盟链系统,目前的联盟链系统一般采用Raft、PBFT 等共识机制,这些共识机制在安全性上能力不足,导致联盟链系统本身的整体安全性和可信性不足。
发明内容
本说明书一个或多个实施例的目的是提供一种可信区块链的共识方法、装置和可信区块链系统,以在TEE环境下通过合法性验证实现的共识方案,保证可信区块链的共识安全、可信,并减少资源浪费。
为解决上述技术问题,本说明书一个或多个实施例是这样实现的:
第一方面,提出了一种可信区块链的共识方法,应用于产生区块节点的可信执行环境TEE中,所述方法包括:
接收参与节点发送的预签名区块,其中,所述预签名区块是由所述参与节点从缓存的合法交易中选择的部分交易或所有交易构造并签名得到;
基于所述参与节点发布的区块链账户参数,对所述预签名区块进行验证;
在验证通过后,根据所述预签名区块中记录的难度目标,以设定算力进行共识计算,得到满足所述难度目标的随机数;
将所述随机数添加到所述预签名区块,并使用自身区块链账户参数进行签名以构造完整签名区块。
第二方面,提出了一种可信区块链的共识装置,应用于产生区块节点的可信执行环境TEE中,所述装置包括:
接收模块,用于接收参与节点发送的预签名区块,其中,所述预签名区块是由所述参与节点从缓存的合法交易中选择的部分交易或所有交易构造并签名得到;
验证模块,用于基于所述参与节点发布的区块链账户参数,对所述预签名区块进行验证;
共识模块,用于在验证通过后,根据所述预签名区块中记录的难度目标,以设定算力进行共识计算,得到满足所述难度目标的随机数;
签名模块,用于将所述随机数添加到所述预签名区块,并使用自身区块链账户参数签名以构造完整签名区块。
第三方面,提出了一种可信区块链系统,包括:客户端、参与节点和产生区块节点;其中,所述产生区块节点的可信执行环境TEE中部署有第二方面所述的可信区块链的共识装置;
所述产生区块节点接收参与节点发送的预签名区块,其中,所述预签名区块是由所述参与节点从缓存的合法交易中选择的部分交易或所有交易构造并签名得到;基于所述参与节点发布的区块链账户参数,对所述预签名区块进行验证;在验证通过后,根据所述预签名区块中记录的难度目标,以设定算力进行共识计算,得到满足所述难度目标的随机数;将所述随机数添加到所述预签名区块,并使用自身区块链账户参数签名以构造完整签名区块。
第四方面,提出了一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行第一方面所述的可信区块链的共识方法。
第四方面,提出了一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行第一方面所述的可信区块链的共识方法。
由以上本说明书一个或多个实施例提供的技术方案可见,通过PoW机制对可信区块链进行共识计算,同时,将共识计算部署在产生区块节点的TEE 中,以及在该TEE中为共识计算预先设定算力,从而,通过TEE提供了一个安全隔离的共识计算环境,而且通过设计固定算力,减小或避免遭受恶意51%攻击;保证可信区块链的共识安全、可信,并减少资源浪费。
附图说明
为了更清楚地说明本说明书一个或多个实施例或现有技术中的技术方案,下面将对一个或多个实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本说明书实施例提供的可信区块链的系统总体技术架构示意图。
图2是本说明书实施例提供的一种可信区块链的共识方法的步骤示意图。
图3是本说明书实施例提供的一种可信区块链的共识装置的结构示意图。
图4是本说明书的一个实施例提供的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述,显然,所描述的一个或多个实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的一个或多个实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本文件的保护范围。
考虑到目前的联盟链系统一般采用Raft、PBFT等共识机制,这些共识机制在安全性上能力不足。为此,本说明书实施例提出了一种基于工作量证明 (Proof of Work,PoW)机制的共识方案。
鉴于PoW是区块链系统中安全性最高的一种共识机制,即同时具备高容错能力(例如产生区块节点宕机等)和高抗恶意攻击能力(例如不诚实产生区块等);其他例如PoS、Raft、PBFT等共识机制的安全性均没有PoW好,且有些共识机制完全不具备抗恶意攻击能力,例如Raft。因此,本说明书实施例中共识机制选用安全性较高的PoW机制,利用PoW机制难于计算、易于验证的特点对区块进行共识计算。
PoW机制的核心是合法区块的哈希值应小于通过某种机制设定难度目标所换算得到的随机数值。哈希算法是一种单向密码算法,仅可基于原始数据计算得到其哈希值,不可通过哈希值反向计算得到原始数据。因此,在PoW机制下,要得到一个合法的区块,可通过不断调整区块本身尝试计算得到区块哈希值后,判断是否满足难度目标。通常的做法是不断跳至区块数据结构中的一个随机数,直到找到一个随机数使得整个区块的哈希值满足难度目标。
从以上PoW工作原理可知,如果想要更快的产生区块,必须具有更快的哈希算法运算速度,即算力。因此,产生区块节点间的产生区块竞争即从根本上变成了其所拥有的算力竞争。如果某个产生区块节点所拥有的算力占据了区块链系统中所有算力总和的绝大部分,则该产生区块节点成功产生区块的几率就极大地大于其他产生区块节点,同时这个产生区块节点就可以控制区块中所包含的交易,甚至重新计算历史区块,由此,PoW机制中存在51%攻击的危险。同时,由于算力从根本上而言主要消耗的就是电力,因此,算力竞争还会带来资源浪费的问题。
由于公有链系统更庞大,其所拥有的总算力也就更大,如果要进行51%攻击所要付出的算力成本就相对大很多。但是联盟链系统规模小,其总算力一般非常小,如果直接采用未经在可信性和安全性方面增强的PoW共识机制,则极易遭受51%攻击。
为此,本说明书实施例在引入PoW机制对可信区块链进行共识计算的同时,还进一步将共识计算部署在产生区块节点的TEE中,以及在该TEE中为共识计算预先设定算力,从而,通过TEE提供了一个安全隔离的共识计算环境,而且通过设计固定算力,减小或避免遭受恶意51%攻击。
首先,参照图1所示,介绍本说明书实施例提供的可信区块链的系统总体技术架构,该可信区块链系统中可以包含多个主体,这些主体可以按照功能部署划分为参与节点、产生区块节点和客户端3种类型。应理解,随着可实现功能的增加或者细分,该可信区块链系统可以随之定义或划分出更多功能类型的主体,本说明书实施例并不对此进行限定。
下面对本说明书实施例中每个主体的功能进行简单介绍。
参与节点:是构成区块链网络的核心节点,主要用于接收客户端产生的交易或其他参与节点转发的交易,并对交易进行验证后缓存或转发到其他参与节点;同时,可以构建预签名区块并发送给产生区块节点,并接收产生区块节点处理、签名后的完整区块或其他参与节点转发的完整区块,对完整区块进行验证后存储或转发到其他参与节点;再者,为客户端提供访问区块链网络的各种接口,例如,读类型接口、写类型接口等。
产生区块节点:也是构成区块链网络的核心节点,主要用于接收参与节点发送的预签名区块,并进行验证;同时,对验证通过的预签名区块进行共识计算,构造完整区块并签名;之后,返回完整区块给参与节点。
客户端:主要用于产生并签名交易;将签名后的交易发送给参与节点;根据业务需要,调用参与节点所提供的区块链访问接口,以实现所需的业务能力。
在本说明书实施例所涉及的可信区块链系统中,可以包含系统级智能合约和业务级智能合约;其中,系统级智能合约指内置到创世块中的或节点中的智能合约,而非客户端部署的智能合约。系统级智能合约主要用于可信区块链系统的管理,从管理范围的不同,至少可分为账户管理、密码参数管理和联盟管理3种类型,因此,系统级智能合约还可以细分为:系统级账户管理智能合约、系统级密码参数管理智能合约和系统级联盟管理智能合约。业务级智能合约是客户端部署的智能合约,主要涉及与业务交易相关的合约参数。
一般情况下,可通过系统级账户管理智能合约为各主体配置一种或多种允许行为。在本说明书实施例中,针对参与节点,可配置“读取”行为许可,以便于接入区块链网络;其实,还可以为参与节点配置“产生区块”行为许可,这样,该参与节点也具有上述产生区块节点的功能,其产生的区块才能被验证为合法区块。针对产生区块节点,可配置“产生区块”行为许可,否则,其产生的区块被验证为非法区块。针对客户端,可以根据需求配置“读取”、“调用”、“部署”、“管理”等行为许可,其中,“读取”行为许可是必要的,“调用”、“部署”和“管理”行为许可可以根据用户需求对客户端进行灵活配置。例如,针对管理用户使用的客户端,可以配置“调用”、“部署”和“管理”行为许可,既可以实现业务级智能合约的部署、访问,也可以实现系统级智能合约的访问。针对普通用户使用的客户端,可以配置“调用”、“部署”行为许可,从而,实现业务级智能合约的部署、访问。
应理解,以上配置过程,可通过具有管理行为许可的管理客户端调用系统级智能合约的写类型接口完成。而在读取或验证主体是否具有被允许的行为时可通过调用系统级智能合约的读类型接口实现。
本说明书实施例以下所要介绍的可信区块链的共识方案,可以适用于各类可信区块链类型,例如,公有链、私有链、联盟链、许可链等。尤其适用于联盟链,解决联盟链安全性不高且易于受到恶意攻击的缺陷。
实施例一
参照图2所示,为本说明书实施例提供的一种可信区块链的共识方法的步骤示意图,应用于图1所示产生区块节点的可信执行环境TEE中。换言之,在图1所示的可信区块链系统中,产生区块节点部署在具有TEE的计算设备上,且产生区块节点的产生区块程序安装在TEE中。由于TEE是处理器中的安全区域,因此,可以为产生区块程序以及其运行代码和业务数据提供了安全隔离的运行环境,保证运行其中的代码和数据不被外部软件(包括操作系统、BIOS等)或硬件(处理器的其他区域)非法获取或者篡改,保证数据完整性和机密性。
图2中共识方法的执行主体可以是产生区块节点,该产生区块节点可以是可以执行图2所示共识方法的硬件设备或软件装置,例如,服务器、计算机、应用客户端等。所述共识方法可以包括以下步骤:
步骤202:接收参与节点发送的预签名区块,其中,所述预签名区块是由所述参与节点从缓存的合法交易中选择的部分交易或所有交易构造并签名得到。
步骤204:基于所述参与节点发布的区块链账户参数,对所述预签名区块进行验证。
步骤206:在验证通过后,根据所述预签名区块中记录的难度目标,以设定算力进行共识计算,得到满足所述难度目标的随机数。
步骤208:将所述随机数添加到所述预签名区块,并使用自身区块链账户参数进行签名以构造完整签名区块。
应理解,参与节点缓存的合法交易,是接收的来自客户端产生的交易。参与节点可以缓存一个或多个合法交易,形成交易池。
一般而言,区块的产生在一个节点上;而本说明书实施例中,区块产生分别在参与节点和产生区块节点,具体流程可分为两个阶段:1)参与节点生成预签名区块,并发送给产生区块节点;2)产生区块节点基于预签名区块,完成产生区块计算得到随机数Nonce,并完成完整区块签名后返回参与节点。
在产生区块之前,参与节点和产生区块节点可以分别产生各自的区块链账户,并分别在系统级账户管理智能合约中配置相应行为许可。由于本方案只对产生区块节点进行共识方案进行改进,因此,并不关心参与节点的相关配置,一切可以配合本说明书实施例中产生区块节点进行区块产生、验证以及共识的参与节点都属于本申请保护范围。
一种可实现的方案,在接收参与节点发送的预签名区块之前,可以基于产生区块程序为产生区块节点产生区块链账户,并在系统级账户管理智能合约中为区块链账户配置产生区块行为许可;该产生区块行为许可用于为所述参与节点对所述完整签名区块进行合法性验证时提供验证依据。
进一步,还可以在产生区块节点所在TEE环境中设置存储与该产生区块节点具有合法区块关联关系的参与节点的区块链账户地址集合;和/或,在系统级账户管理智能合约中为该产生区块节点对应的区块链账户配置读取行为许可。这些配置均可以在后续产生区块节点对预签名区块进行核验时,提供合法性验证依据。
应理解,与所述产生区块节点具有合法区块关联关系的参与节点,可以是指能够产生并发送预签名区块给所述产生区块节点,且具有产生区块行为许可的参与节点;或者,可以是在系统级账户管理智能合约中配置有专门用于标志该关联关系的其它参数的参与节点。在本说明书实施例中,主要以前者为例进行说明,即参与节点具有产生区块行为许可。
一种可实现的方案,该可信区块链包含多个子链;则发送给参与节点的交易可以包含有联盟标识,即联盟ID;且预签名区块中所包含的交易的联盟标识相同。
在本说明书实施例中,参与节点可以事先在区块链中发布自己的区块链账户参数,应理解,这里的区块链账户参数可以是参与节点根据随机数产生的公私钥对,其中,发布的区块链账户是公私钥对中的公钥,私钥保留。这样,接收预签名区块的产生区块节点才可以基于该区块链账户参数对预签名区块进行验证。
可选地,步骤204在基于所述参与节点发布的区块链账户参数,对所述预签名区块进行验证时:
可以基于参与节点发布的区块链账户参数,解析所述预签名区块以验证该预签名区块的签名是否正确,如果验签成功,则表示该预签名区块合法,否则,该预签名区块不合法;或者,
也可以基于参与节点发布的区块链账户参数,解析所述预签名区块以验证该预签名区块的签名是否正确,在验证签名正确后,根据从所述预签名区块中获取的所述参与节点的区块链账户地址,验证所述预签名区块是否合法。
进一步,可以根据预先配置信息选择以下任一方式,通过参与节点的区块链账户地址验证所述预签名区块是否合法:
方式一:当所述产生区块节点所在TEE环境中存储有所述区块链账户地址集合,则判断本地存储的区块链账户地址集合中,是否有所述参与节点的区块链账户地址;如果有,则验证所述预签名区块合法,否则,验证所述预签名区块不合法。
方式二:当所述产生区块节点具有读取行为许可,则读取系统级账户管理智能合约,并基于读取结果判断所述参与节点是否与所述产生区块节点具有合法区块关联关系;如果是,则验证所述预签名区块合法,否则,验证所述预签名区块不合法。
由此可知,本说明书实施例中,一个完整的区块的产生,要经历两个过程,且这两个过程分别在不同的节点执行:预签名区块在参与节点产生,完整签名区块在产生区块节点产生。下面简单描述这两个产生流程。
预签名区块产生过程:
a1、参与节点从缓存的合法交易中选择部分或所有交易。
其实,在针对联盟链时,可以从缓存的合法交易中选择联盟Chain ID相同的部分交易或全部交易,此时获得待构造区块的交易的Chain ID(联盟ID)和Transactions(交易数据)。
a2、参与节点从上一区块中获得Parent Block ID(父区块ID)。
a3、参与节点根据预定协议计算得到Difficulty Target(难度目标)。
针对联盟链,每个子链可以设置有独立的预定协议进行难度目标的计算。
a4、参与节点使用自己区块链账户所对应的Node Para(区块链账户参数) 对Chain ID、Parent Block ID、Difficulty Target、Transactions、Node Para进行数字签名,得到PreSignature。
a5、参与节点组装Chain ID、Parent Block ID、Difficulty Target、Transactions、 Node Para、PreSignature,完成预签名区块的产生。
a6、参与节点将预签名区块发送给产生区块节点。
由此,在参与节点生成预签名区块,并由参与节点发送给产生区块节点以构造完整签名区块。
完整签名区块产生过程:
b1、产生区块节点使用NodePara(区块链账户参数)验证PreSignature,如果验证通过,则执行步骤b2,否则,直接返回失败消息给节点,不再进行以下流程。
b2、产生区块节点通过预签名区块获得参与节点(其产生节点)的区块链账户ID,并对该参与节点是否具有“产生区块”许可进行判定。
其实,在对参与节点进行产生区块合法性验证时,可以根据预先配置信息选择何种验证方式。a)如果TEE产生区块程序中记录有具有产生区块行为许可的参与节点的区块链账户地址集合,则选择方式一判定上述预签名区块的产生节点是否在记录的该区块链账户地址集合中;b)如果产生区块同时也是一个合法的“客户端”,则选择方式二读取系统级账户管理智能合约,判断上述预签名区块的产生节点是否具有“产生区块”行为许可。
如果上述a)或b)判定结果中任一判定结果为是,则继续以下步骤b3,否则,不做处理。
b3、产生区块节点中产生区块程序根据预签名区块中的“难度目标”,以固定的Hash速率(即设定算力)进行PoW计算,得到满足“难度目标”的计算结果Nonce。
b4、产生区块节点使用自己的区块链账户对应的区块链账户参数MinerPara,对Chain ID、ParentBlock ID、Difficulty Target、Transactions、 Node Para、PreSignature、Nonce、Miner Para进行数字签名,得到 FinalSignature。
具体实现时,可以按照Chain ID、ParentBlock ID、Difficulty Target、Transactions、Node Para、PreSignature、Nonce、Miner Para的顺序进行组装并签名,得到FinalSignature。
b5、产生区块节点组装Chain ID、ParentBlock ID、Difficulty Target、Transactions、Node Para、PreSignature、Nonce、Miner Para、FinalSignature,完成完整签名区块的产生;
b6、产生区块节点返回完整签名区块给参与节点。
这里的参与节点应该是向产生区块节点发送预签名区块的参与节点。
b7、参与节点对完整签名区块进行合法性判定,丢弃非法区块,存储记录合法区块,并将合法区块转发给已建立网络连接的其他节点。
至此,以上流程a1-a6以及b1-b7共同完成了完整签名区块的生成,由此,可以通过预签名以及完整签名两个过程,分别对区块进行签名以保证完整签名区块的合法性,而且,参与节点和产生区块节点也都在系统级账户管理智能合约中进行相关配置,进一步保证产出的完整签名区块是合法的。同时,产生区块节点部署有TEE环境,且产生区块节点的区块链账户在TEE环境中产生,私钥仅在TEE中可见和可使用,公钥或地址可从TEE中导出,以便在系统级账户管理智能合约中为产生区块节点配置权限。私钥仅在TEE中可见和可使用保证了算力安全,换言之:一方面,TEE中算力是通过TEE产生区块程序限制的,TEE程序本身具有防篡改的安全机制,保证无法通过修改TEE程序来扩大算力,另一方面,无法将产生区块节点的私钥挪到其他机上使用,也就避免了非法的增加算力。如此,解决了原始PoW资源浪费问题和51%攻击问题。
实施例二
参照图3所示,为本说明书实施例提供的一种可信区块链的共识装置300,应用于产生区块节点的可信执行环境TEE中,所述装置300包括:
接收模块302,用于接收参与节点发送的预签名区块,其中,所述预签名区块是由所述参与节点从缓存的合法交易中选择的部分交易或所有交易构造并签名得到;
验证模块304,用于基于所述参与节点发布的区块链账户参数,对所述预签名区块进行验证;
共识模块306,用于在验证通过后,根据所述预签名区块中记录的难度目标,以设定算力进行共识计算,得到满足所述难度目标的随机数;
签名模块308,用于将所述随机数添加到所述预签名区块,并使用自身区块链账户参数签名以构造完整签名区块。
可选地,作为一个实施例,所述装置还包括:配置模块,用于在接收模块 302接收参与节点发送的预签名区块之前,为所述产生区块节点产生区块链账户,并在系统级账户管理智能合约中为所述区块链账户配置产生区块行为许可;其中,所述产生区块行为许可用于为所述参与节点对所述完整签名区块进行合法性验证时提供验证依据。
在本说明书实施例的一种具体实现方式中,所述验证模块304在基于所述参与节点发布的区块链账户参数,对所述预签名区块进行验证时,具体用于基于所述参与节点发布的区块链账户参数,解析所述预签名区块以验证该预签名区块的签名是否正确;在验证签名正确后,根据从所述预签名区块中获取的所述参与节点的区块链账户地址,验证所述预签名区块是否合法。
在本说明书实施例的再一种具体实现方式中,所述产生区块节点所在TEE环境中存储有与该产生区块节点具有合法区块关联关系的参与节点的区块链账户地址集合;和/或,在系统级账户管理智能合约中所述产生区块节点对应的区块链账户配置有读取行为许可。
在本说明书实施例的再一种具体实现方式中,所述验证模块304在根据从所述预签名区块中获取的所述参与节点的区块链账户地址,验证所述预签名区块是否合法时,具体用于当所述产生区块节点所在TEE环境中存储有所述区块链账户地址集合,则判断本地存储的区块链账户地址集合中,是否有所述参与节点的区块链账户地址;如果有,则验证所述预签名区块合法,否则,验证所述预签名区块不合法;或者,当所述产生区块节点具有读取行为许可,则读取系统级账户管理智能合约,并判断所述参与节点是否与所述产生区块节点具有合法区块关联关系;如果是,则验证所述预签名区块合法,否则,验证所述预签名区块不合法。
在本说明书实施例的再一种具体实现方式中,与所述产生区块节点具有合法区块关联关系的参与节点,是指能够产生并发送预签名区块给所述产生区块节点,且具有产生区块行为许可的参与节点。
在本说明书实施例的再一种具体实现方式中,所述可信区块链中包含多个子链;则所述预签名区块中所包含的交易的联盟标识相同。
本说明书实施例还提供一种可信区块链系统,具体参照图1所示,包括:客户端、参与节点和产生区块节点;其中,客户端、参与节点和产生区块节点的数目并不做限定。所述产生区块节点的可信执行环境TEE中部署有上述可信区块链的共识装置;所述产生区块节点接收参与节点发送的预签名区块,其中,所述预签名区块是由所述参与节点从缓存的合法交易中选择的部分交易或所有交易构造并签名得到;基于所述参与节点发布的区块链账户参数,对所述预签名区块进行验证;在验证通过后,根据所述预签名区块中记录的难度目标,以设定算力进行共识计算,得到满足所述难度目标的随机数;将所述随机数添加到所述预签名区块,并使用自身区块链账户参数签名以构造完整签名区块。
应理解,该可信区块链的共识装置以及可信区块链系统还可执行图2的方法,并实现相应装置在图2所示实施例的功能,本说明书实施例在此不再赘述。
实施例三
图4是本说明书的一个实施例电子设备的结构示意图。请参考图4,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory, RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成可信区块链的共识装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
接收参与节点发送的预签名区块,其中,所述预签名区块是由所述参与节点从缓存的合法交易中选择的部分交易或所有交易构造并签名得到;
基于所述参与节点发布的区块链账户参数,对所述预签名区块进行验证;
在验证通过后,根据所述预签名区块中记录的难度目标,以设定算力进行共识计算,得到满足所述难度目标的随机数;
将所述随机数添加到所述预签名区块,并使用自身区块链账户参数进行签名以构造完整签名区块。
上述如本说明书图2所示实施例揭示的装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路 (Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field- Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本说明书一个或多个实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本说明书一个或多个实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
该电子设备还可执行图2的方法,并实现相应装置在图2所示实施例的功能,本说明书实施例在此不再赘述。
当然,除了软件实现方式之外,本说明书实施例的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
实施例四
本说明书实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图2所示实施例的方法,并具体用于执行以下方法:
接收参与节点发送的预签名区块,其中,所述预签名区块是由所述参与节点从缓存的合法交易中选择的部分交易或所有交易构造并签名得到;
基于所述参与节点发布的区块链账户参数,对所述预签名区块进行验证;
在验证通过后,根据所述预签名区块中记录的难度目标,以设定算力进行共识计算,得到满足所述难度目标的随机数;
将所述随机数添加到所述预签名区块,并使用自身区块链账户参数进行签名以构造完整签名区块。
本说明书实施例通过PoW机制对可信区块链进行共识计算的同时,还进一步将共识计算部署在产生区块节点的TEE中,以及在该TEE中为共识计算预先设定算力,从而,通过TEE提供了一个安全隔离的共识计算环境,而且通过设计固定算力,减小或避免遭受恶意51%攻击。
总之,以上所述仅为本说明书的较佳实施例而已,并非用于限定本说明书的保护范围。凡在本说明书的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本说明书的保护范围之内。
上述一个或多个实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

Claims (11)

1.一种可信区块链的共识方法,其特征在于,应用于产生区块节点的可信执行环境TEE中,所述方法包括:
接收参与节点发送的预签名区块,其中,所述预签名区块是由所述参与节点从缓存的合法交易中选择的部分交易或所有交易构造并签名得到;
基于所述参与节点发布的区块链账户参数,对所述预签名区块进行验证;
在验证通过后,根据所述预签名区块中记录的难度目标,以设定算力进行共识计算,得到满足所述难度目标的随机数;
将所述随机数添加到所述预签名区块,并使用自身区块链账户参数进行签名以构造完整签名区块。
2.如权利要求1所述的可信区块链的共识方法,其特征在于,在接收参与节点发送的预签名区块之前,所述方法还包括:
为所述产生区块节点产生区块链账户,并在系统级账户管理智能合约中为所述区块链账户配置产生区块行为许可;其中,所述产生区块行为许可用于为所述参与节点对所述完整签名区块进行合法性验证时提供验证依据。
3.如权利要求1或2所述的可信区块链的共识方法,其特征在于,基于所述参与节点发布的区块链账户参数,对所述预签名区块进行验证,具体包括:
基于所述参与节点发布的区块链账户参数,解析所述预签名区块以验证该预签名区块的签名是否正确;
在验证签名正确后,根据从所述预签名区块中获取的所述参与节点的区块链账户地址,验证所述预签名区块是否合法。
4.如权利要求3所述的可信区块链的共识方法,其特征在于,所述产生区块节点所在TEE环境中存储有与该产生区块节点具有合法区块关联关系的参与节点的区块链账户地址集合;和/或,
在系统级账户管理智能合约中所述产生区块节点对应的区块链账户配置有读取行为许可。
5.如权利要求4所述的可信区块链的共识方法,其特征在于,根据从所述预签名区块中获取的所述参与节点的区块链账户地址,验证所述预签名区块是否合法,具体包括:
当所述产生区块节点所在TEE环境中存储有所述区块链账户地址集合,则判断本地存储的区块链账户地址集合中,是否有所述参与节点的区块链账户地址;
如果有,则验证所述预签名区块合法,否则,验证所述预签名区块不合法;
或者,
当所述产生区块节点具有读取行为许可,则读取系统级账户管理智能合约,并判断所述参与节点是否与所述产生区块节点具有合法区块关联关系;
如果是,则验证所述预签名区块合法,否则,验证所述预签名区块不合法。
6.如权利要求5所述的可信区块链的共识方法,其特征在于,与所述产生区块节点具有合法区块关联关系的参与节点,是指能够产生并发送预签名区块给所述产生区块节点,且具有产生区块行为许可的参与节点。
7.如权利要求1所述的可信区块链的共识方法,其特征在于,所述可信区块链中包含多个子链;
则所述预签名区块中所包含的交易的联盟标识相同。
8.一种可信区块链的共识装置,其特征在于,应用于产生区块节点的可信执行环境TEE中,所述装置包括:
接收模块,用于接收参与节点发送的预签名区块,其中,所述预签名区块是由所述参与节点从缓存的合法交易中选择的部分交易或所有交易构造并签名得到;
验证模块,用于基于所述参与节点发布的区块链账户参数,对所述预签名区块进行验证;
共识模块,用于在验证通过后,根据所述预签名区块中记录的难度目标,以设定算力进行共识计算,得到满足所述难度目标的随机数;
签名模块,用于将所述随机数添加到所述预签名区块,并使用自身区块链账户参数签名以构造完整签名区块。
9.一种可信区块链系统,其特征在于,包括:客户端、参与节点和产生区块节点;其中,所述产生区块节点的可信执行环境TEE中部署有权利要求8所述的可信区块链的共识装置;
所述产生区块节点接收参与节点发送的预签名区块,其中,所述预签名区块是由所述参与节点从缓存的合法交易中选择的部分交易或所有交易构造并签名得到;基于所述参与节点发布的区块链账户参数,对所述预签名区块进行验证;在验证通过后,根据所述预签名区块中记录的难度目标,以设定算力进行共识计算,得到满足所述难度目标的随机数;将所述随机数添加到所述预签名区块,并使用自身区块链账户参数签名以构造完整签名区块。
10.一种电子设备,其特征在于,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行权利要求1-7任一项所述的可信区块链的共识方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行权利要求1-7任一项所述的可信区块链的共识方法。
CN202210239581.9A 2022-03-11 2022-03-11 一种可信区块链的共识方法、装置和可信区块链系统 Pending CN115118423A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210239581.9A CN115118423A (zh) 2022-03-11 2022-03-11 一种可信区块链的共识方法、装置和可信区块链系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210239581.9A CN115118423A (zh) 2022-03-11 2022-03-11 一种可信区块链的共识方法、装置和可信区块链系统

Publications (1)

Publication Number Publication Date
CN115118423A true CN115118423A (zh) 2022-09-27

Family

ID=83324910

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210239581.9A Pending CN115118423A (zh) 2022-03-11 2022-03-11 一种可信区块链的共识方法、装置和可信区块链系统

Country Status (1)

Country Link
CN (1) CN115118423A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116405324A (zh) * 2023-06-06 2023-07-07 广州万协通信息技术有限公司 一种数据处理方法、装置、设备及存储介质
CN117473557A (zh) * 2023-12-22 2024-01-30 北京天润基业科技发展股份有限公司 一种可信设置方法及装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116405324A (zh) * 2023-06-06 2023-07-07 广州万协通信息技术有限公司 一种数据处理方法、装置、设备及存储介质
CN116405324B (zh) * 2023-06-06 2023-09-26 广州万协通信息技术有限公司 一种数据处理方法、装置、设备及存储介质
CN117473557A (zh) * 2023-12-22 2024-01-30 北京天润基业科技发展股份有限公司 一种可信设置方法及装置
CN117473557B (zh) * 2023-12-22 2024-02-27 北京天润基业科技发展股份有限公司 一种可信设置方法及装置

Similar Documents

Publication Publication Date Title
Saad et al. Exploring the attack surface of blockchain: A comprehensive survey
US11438165B2 (en) Method and apparatus for processing transaction requests
Zhang et al. Security and trust in blockchains: Architecture, key technologies, and open issues
JP7030981B2 (ja) 資産管理方法および装置、および電子デバイス
US11233656B2 (en) Method for mining a block in a decentralized blockchain consensus network
US11212081B2 (en) Method for signing a new block in a decentralized blockchain consensus network
WO2020134942A1 (zh) 身份核实方法及其系统
GB2539430A (en) Digital token exchange system
US20210099431A1 (en) Synthetic identity and network egress for user privacy
Bambacht et al. Web3: A decentralized societal infrastructure for identity, trust, money, and data
CN110400217B (zh) 智能合约的规则变更处理方法及装置
CN115118423A (zh) 一种可信区块链的共识方法、装置和可信区块链系统
US20200204338A1 (en) Securing public key cryptographic algorithms
US20230291566A1 (en) Blockchain identities
JP6911231B1 (ja) デジタル資産データパケットの信頼性検証システム
US20200202349A1 (en) Multiple asset transactions
CN112822267A (zh) 基于区块链的数据处理方法和装置
Kairaldeen et al. Data integrity time optimization of a blockchain IoT smart home network using different consensus and hash algorithms
US20200202344A1 (en) Private asset transactions
Li et al. A noninteractive multireplica provable data possession scheme based on smart contract
Hadi et al. A vision of blockchain technology and its integration with IOT: Applications, challenges, and opportunities; from the authentication perspective
NS et al. Security Attacks and Key Challenges in Blockchain Technology: A survey
Niavis et al. Consenseiot: A consensus algorithm for secure and scalable blockchain in the iot context
Sanjay et al. Security and Privacy Trade-Off in Cryptocurrencies: An Implementation of Blockchain Technology
Kizza Blockchains, Cryptocurrency, and Smart Contracts Technologies: Security Considerations

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