CN114547655A - 区块链的节点入网及装置、电子设备 - Google Patents
区块链的节点入网及装置、电子设备 Download PDFInfo
- Publication number
- CN114547655A CN114547655A CN202210179238.XA CN202210179238A CN114547655A CN 114547655 A CN114547655 A CN 114547655A CN 202210179238 A CN202210179238 A CN 202210179238A CN 114547655 A CN114547655 A CN 114547655A
- Authority
- CN
- China
- Prior art keywords
- blockchain
- commitment
- account
- node
- block
- 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
Links
Images
Classifications
-
- 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/602—Providing cryptographic facilities or services
-
- 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/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- 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/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本说明书实施例提供一种区块链的节点入网方法及装置、电子设备。所述方法应用在与区块链对应的服务端,所述方法包括:接收电子设备发送的入网申请;其中,所述入网申请包括所述电子设备从所述区块链中的其它节点处同步到的最新区块对应的区块链数据和最新的密码学承诺;所述密码学承诺是对所述区块链的区块链账本中记录的所有区块链账户以及与所述所有区块链账户对应的账户状态的真实性的承诺;对所述最新区块对应的区块数据和所述密码学承诺分别进行校验;如果校验通过,将所述电子设备作为节点设备加入到所述区块链网络。
Description
技术领域
本说明书一个或多个实施例涉及区块链技术领域,尤其涉及一种区块链的节点入网方法及装置、电子设备。
背景技术
现有的区块链中,每个新增节点需要同步区块链中全量的区块链账本才可以入网参与区块链业务。
然而,随着业务的增加,区块链账本的数据量越来越大,新增节点同步区块链账本的时间越来越长,无法实现快速入网。
发明内容
本说明书实施例提供的一种提高信息安全的方法及装置、电子设备。
根据本说明书实施例的第一方面,提供一种区块链的节点入网方法,所述方法应用在与区块链对应的服务端,所述方法包括:
接收电子设备发送的入网申请;其中,所述入网申请包括所述电子设备从所述区块链中的其它节点处同步到的最新区块对应的区块链数据和最新的密码学承诺;所述密码学承诺是对所述区块链的区块链账本中记录的所有区块链账户以及与所述所有区块链账户对应的账户状态的真实性的承诺;
对所述最新区块对应的区块数据和所述密码学承诺分别进行校验;
如果校验通过,将所述电子设备作为节点设备加入到所述区块链网络。
根据本说明书实施例的第二方面,提供一种区块链的节点入网装置,所述装置应用在与区块链对应的服务端,所述装置包括:
接收单元,接收电子设备发送的入网申请;其中,所述入网申请包括所述电子设备从所述区块链中的其它节点处同步到的最新区块对应的区块链数据和最新的密码学承诺;所述密码学承诺是对所述区块链的区块链账本中记录的所有区块链账户以及与所述所有区块链账户对应的账户状态的真实性的承诺;
验证单元,对所述最新区块对应的区块数据和所述密码学承诺分别进行校验;
入网单元,如果校验通过,将所述电子设备作为节点设备加入到所述区块链网络。
根据本说明书实施例的第三方面,提供一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为上述任一项区块链的节点入网方法。
本说明书实施例,申请入网的电子设备无需获取全量的区块链账本作为前提条件,该电子设备只需从区块链中的其它节点处同步到的最新区块对应的区块链数据和最新的密码学承诺,由于最新区块对应的区块链数据和最新的密码学承诺的数据量远小于全量的区块链账本,因此该电子设备可以快速加入到区块链中,并在加入区块链后参与部分的区块链业务。
附图说明
图1是一示例性实施例提供的区块链系统的架构示意图;
图2是一示例性实施例提供的一种区块链的节点入网方法的流程图;
图3是一示例性实施例提供的非完备节点时提供的区块链服务的流程图;
图4是一示例性实施例提供的一种电子设备的结构示意图;
图5是一示例性实施例提供的一种区块链的节点入网装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实现方式并不代表与本说明书一个或多个实施例相一致的所有实现方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
区块链技术,也被称之为分布式账本技术,是一种由若干台计算设备共同参与“记账”,共同维护一份完整的分布式数据库的新兴技术。由于区块链技术具有去中心化、公开透明、每台计算设备可以参与数据库记录、并且各计算设备之间可以快速的进行数据同步的特性,使得区块链技术已在众多的领域中广泛的进行应用。
一般的,区块链一般可以被划分为三种类型:公有链(Public Blockchain),私有链(Private Blockchain)和联盟链(Consortium Blockchain)。此外,还可以有上述多种类型的结合,比如私有链+联盟链、联盟链+公有链等。
其中,去中心化程度最高的是公有链。加入公有链的参与者(也可称为区块链中的节点)可以读取链上的数据记录、参与交易、以及竞争新区块的记账权等。而且,各节点可自由加入或者退出网络,并进行相关操作。
私有链则相反,该网络的写入权限由某个组织或者机构控制,数据读取权限受组织规定。简单来说,私有链可以为一个弱中心化系统,其对节点具有严格限制且节点数量较少。这种类型的区块链更适合于特定机构内部使用。
联盟链则是介于公有链以及私有链之间的区块链,可实现“部分去中心化”。联盟链中各个节点通常有与之相对应的实体机构或者组织;节点通过授权加入网络并组成利益相关联盟,共同维护区块链运行。
基于区块链的基本特性,区块链通常是由若干个区块构成。在这些区块中分别记录有与该区块的创建时刻对应的时间戳,所有的区块严格按照区块中记录的时间戳,构成一条在时间上有序的数据链条。
在区块链领域,有一个重要的概念就是账户(Account);在实际应用中,通常可以将账户划分为外部账户和合约账户两类;外部账户就是由用户直接控制的账户,也称之为用户账户;而合约账户则是由用户通过外部账户创建的,包含合约代码的账户(即智能合约)。
对于区块链中的账户而言,通常会通过一个结构体,来维护账户的状态数据。当区块中的交易被执行后,区块链中与该交易相关账户的状态数据通常也会发生变化。
在一个例子中,账户的结构体通常包括Balance,Nonce,Code和Storage等字段。其中:
Balance字段,用于维护账户目前的账户余额;
Nonce字段,用于维护该账户的交易次数;它是用于保障每笔交易能且只能被处理一次的计数器,有效避免重放攻击;
Code字段,用于维护该账户的合约代码;在实际应用中,Code字段中通常仅维护合约代码的hash值;因而,Code字段通常也称之为Codehash字段。
Storage字段,用于维护该账户的存储内容;对于合约账户而言,通常会分配一个独立的持久化的存储空间,用以存储该合约账户对应的存储空间中存储的合约数据;该独立的存储空间通常称之为该合约账户的账户存储。合约账户的存储内容通常会以key-value键值对的形式被构建成MPT(Merkle Patricia Trie)树的数据结构存储在上述独立的存储空间之中。MPT树是区块链领域用于存储和维护区块链数据的一种逻辑的树形结构,在这种树形结构中通常包括根节点、中间节点、叶子节点。
其中,基于合约账户的存储内容构建成的MPT树,通常也称之为Storage树。而Storage字段通常仅维护该Storage树的根节点的hash值;因此,Storage字段通常也称之为Storage Root hash字段。其中,对于外部账户而言,以上示出的Code字段和Storage字段的字段值均为空值。
对于大多数区块链模型,通常都会采用Merkle树;或者,基于Merkle树的数据结构的Merkle树变种等逻辑的树形结构,来存储和维护数据。例如,MPT树,就是一种用来存储和维护区块链数据的,融合了Trie字典树的树形结构的Merkle树变种。
以下以使用MPT树,来存储区块链数据为例进行说明;
在一个例子中,区块链中需要存储和维护的区块链数据,通常包括账户的状态数据、交易数据和收据数据;因此,在实际应用中,可以分别将上述状态数据、交易数据和收据数据以key-value键值对的形式,组织成MPT状态树(即world state)、MPT交易树和MPT收据树等三棵MPT树,分别进行存储和维护。
其中,除了以上三棵MPT树以外,合约账户对应的存储空间中存储的合约数据,通常也会被构建成为一棵MTP Storage树(以下简称为Storage树)。该Storage树的根节点的hash值,会被添加到与该Storage树对应的合约账户的上述结构体中的Storage字段。
MPT状态树,是由区块链中所有账户(包括外部账户和合约账户)的状态数据,以key-value键值对的形式组织成的MPT树;MPT交易树,是由区块链中的交易(transaction)数据,以key-value键值对的形式组织成的MPT树;MPT收据树,是区块中的交易在执行完毕后生成的与每笔交易对应的交易(receipt)收据,以key-value键值对的形式组织成的MPT树。
以上示出的MPT状态树、MPT交易树和MPT收据树的根节点的hash值,最终都会被添加至对应区块的区块头中。
其中,MPT交易树和MPT收据树均与区块相对应,即每一个区块都有自己的MPT交易树和MPT收据树。而MPT状态树是一个全局的MPT树,并不与某一个特定的区块相对应,而是涵盖了区块链中所有账户的账户状态数据。区块链每产生一个最新区块,则在该最新区块中的交易被执行之后,区块链中这些被执行交易的相关账户(可以是外部账户也可以是合约账户)的账户状态,通常也会随之发生变化。
例如,当区块中的一笔“转账交易”执行完毕后,与该“转账交易”相关的转出方账户和转入方账户的余额(即这些账户的Balance字段的字段值),通常也会随之发生变化。节点设备在区块链产生的最新区块中的交易执行完毕后,由于当前区块链中的账户状态发生了变化,因此节点设备需要根据区块链中所有账户当前的状态数据,来构建MPT状态树,用于维护区块链中所有账户的最新状态。
也即,每当区块链中产生一个最新区块,并且该最新区块中的交易执行完毕后,导致区块链中的部分账户的账户状态发生了变化,节点设备需要基于区块链中所有账户最新的状态数据,重新构建一棵MPT状态树。换句话说,区块链中每一个区块,都有一个与之对应的MPT状态树;该MPT状态树,维护了在该区块中的交易在执行完毕后,区块链中所有账户最新的账户状态。
对于链外产生的数据,可以将其构建成区块链所支持的标准的交易(transaction)格式,然后发布至区块链,由区块链中的节点设备对该交易进行共识(以确定交易是否合法),并在达成共识(交易合法)后,由区块链中作为记账节点的节点设备,将这笔交易打包进区块,在区块链中进行持久化存证。
现有的区块链在对交易进行共识时需要依赖前述的由区块链中所有账户的状态(state)数据构成的Merkle树(称为状态树或者状态数据库)。
每个共识节点在共识时都会进行交易的模拟执行,这里的模拟执行是指共识节点执行交易但不将执行后的状态数据记录到状态树。也就是说,模拟执行不影响世界状态。
交易模拟执行过程中会产生读写集;其中读集中包含共识节点从本地读取到的交易执行所需的最新的状态数据,写集包含模拟执行过程中更新的状态数据。
共识节点之间通过读集可以验证交易所需的状态数据是否一致,写集用于校验执行后的状态数据是否一致。当读写集都一致时,记账节点才可以将交易打包进区块,并基于写集更新世界状态。
基于上述验证过程可知,现有基于状态数据的交易验证方式中,每个共识节点本地都需要维护全量的状态数据库,而这需要占用大量的存储空间。尤其是针对多版本状态(历史状态数据+最新状态数据),即使存量的区块链账户没有变化,存储空间也将持续上升(大量历史状态数据造成状态数据膨胀)。而不断增加的状态数据不仅会持续占用存储空间,而且会降低共识节点的验证效率。
另外,对于新加入区块链的新增节点,该新增节点需要同步其它共识节点中全量的状态数据。只有在获取到全量的状态数据后,该新增节点才可以参与区块链的共识或者验证交易的合法性。
而同步全量的状态数据,取决于状态数据的大小,随着状态数据越来越多,同步所需时间也越来越久。从而出现新增节点实际加入区块链越来越慢的问题。
为了解决上述问题,本说明书旨在提供一种无状态(Stateless)的交易验证方案。不再基于状态数据来验证交易的合法性,而是基于向量承诺来验证交易的合法性。由于无需状态数据参与验证,因此共识节点本地就不需要存储状态数据;从而可以轻量化共识节点释放存储空间,提高共识节点的验证效率。
以及,基于在该无状态的交易验证方案基础上提供的一种区块链的节点加入方法。新增节点无需获取全量的区块链账本作为前提条件,只需同步最新的区块和最新的向量承诺,由于最新的区块和最新的向量承诺的数据量远小于全量的区块链账本,因此新增节点可以在加入区块链后快速参与部分的区块链业务。
请参见图1,图1是一示例性实施例提供的区块链系统的架构示意图。该区块链系统可以包括由若干的共识节点、新增节点构成的区块链,以及与区块链对应的客户端。
其中,所述共识节点存储有全量的区块链账本,该区块链账本可以包括区块链中的状态数据库,所述数据库中记录有所有账户以及账户的状态数据。
新增节点为加入区块链但未同步全量的区块链账本的节点。
客户端向区块链发布交易后,由区块链中的某个节点对交易进行合法性验证。
如果该交易发送给新增节点,则新增节点由于没有存储全量的区块链账本,无法独立进行验证。此时,新增节点需要从其它共识节点中获取该交易所需的状态数据以及密码学证明。
新增节点在获取到交易所需的状态数据和密码学证明后,可以基于密码学算法以及本地存储的密码学承诺,验证交易是否合法(具体验证过程在后续实施例中进行介绍)。
本说明书中的密码学算法可以包括向量承诺(Vector commitment)算法、多项式算法等。
在密码学算法为Vector commitment算法时,所述密码学承诺包括基于Vectorcommitment算法针对全量的区块链账本中记录的所有区块链账户以及与所述所有区块链账户对应的账户状态进行密码学计算得到的承诺值;相应的,所述密码学证明包括基于Vector commitment算法针对全量的区块链账本中记录的所述目标账户以及所述目标账户对应的状态数据进行密码学计算得到的证明值。
向量承诺算法具有证明体积小(相对于前述基于状态数据的验证),验证速度快(无需存储、读取状态数据)等特点。通过向量承诺可以证明某个数据位于集合中;以及能够证明该元素在集合中的位置。
以下结合图2所示的区块链的节点入网方法的流程示意图。所述方法应用在与区块链对应的服务端,所述方法包括:
步骤210:接收电子设备发送的入网申请。
其中,所述入网申请包括所述电子设备从所述区块链中的其它节点处同步到的最新区块对应的区块链数据和最新的密码学承诺;所述密码学承诺是对所述区块链的区块链账本中记录的所有区块链账户以及与所述所有区块链账户对应的账户状态的真实性的承诺。
步骤220:对所述最新区块对应的区块数据和所述密码学承诺分别进行校验。
服务端通过校验以确定最新区块对应的区块数据和密码学承诺是否被篡改。
在一示例性的实施例中,上述对所述最新区块对应的区块数据和所述密码学承诺进行校验,可以包括:
校验所述最新区块对应的区块数据是否与所述区块链中的其它节点本地维护的区块链账本中的最新区块对应的区块数据是否相同;以及,
校验所述密码学承诺与所述区块链中的其它节点本地维护的密码学承诺是否相同;
如果二者均相同,确定对所述最新区块对应的区块数据和所述密码学承诺的校验通过。
该示例中,由于电子设备是从区块链中的其它节点处同步到的最新区块对应的区块链数据和最新的密码学承诺;因此正常情况下,电子设备发送的这些数据必然与区块链中其它节点处的数据是一致的。否则,就证明了电子设备发送的这些数据是被篡改后的数据。
应用上述示例,服务端通过与区块链中的其它节点进行交互,就可以确定电子设备发送最新区块对应的区块链数据和最新的密码学承诺是否被篡改;只有最新区块对应的区块链数据和最新的密码学承诺未被篡改(即数据一致)时才可以确定校验通过。
步骤230:如果校验通过,将所述电子设备作为节点设备加入到所述区块链网络。
服务端在确定电子设备发送的这些数据必然与区块链中其它节点处的数据是一致的情况下,就可以将所述电子设备加入到所述区块链网络中;但是由于该电子设备此时还未同步全量的区块链账本无法为其它节点提供交易验证的服务,因此需要将所述电子设备作为限制了部分权限的非完备的节点设备加入到所述区块链网络。
其中,非完备的节点是相当于完备节点来说的,而完备节点就是指其它具有全量的区块链账本的共识节点。
在一示例性的实施例中,所述部分权限包括:
1、为交易发起方提供其发起的目标交易相关的目标账户的账户状态数据的权限;
由于非完备的节点不具有全量的区块链账本,在响应交易时存在无法查询到目标交易相关的目标账户的账户状态数据的可能,因此,需要限制非完备节点为交易发起方提供其发起的目标交易相关的目标账户的账户状态数据的权限。
也就是说,非完备的节点即使接收到交易发起方发起的交易,依然需要通过区块链中的其它完备节点来提供目标交易相关的目标账户的账户状态数据。
2、为交易发起方提供用于证明其发起的目标交易相关的目标账户;
由于非完备的节点不具有全量的区块链账本,存在无法查询到目标交易相关的目标账户的账户状态数据可能,因此也就无法给出对所述区块链的区块链账本中记录的所有区块链账户以及与所述所有区块链账户对应的账户状态的真实性承诺的密码学承诺;因此,需要限制非完备节点为交易发起方提供用于证明其发起的目标交易相关的目标账户的权限。
3、该目标账户的状态数据包含在全量的区块链账本中的密码学证明的权限。
由于非完备的节点不具有全量的区块链账本,存在无法查询到目标交易相关的目标账户的账户状态数据可能,因此也就无法给出目标账户的状态数据包含在全量的区块链账本中的密码学证明;因此,需要限制非完备节点提供目标账户的状态数据包含在全量的区块链账本中的密码学证明的权限。
在一示例性的实施例中,所述区块链采用的共识算法支持从共识节点中选举出主节点;
所述部分权限还包括:参与主节点选举的权限。
该示例中,针对有些共识算法(例如pbft算法)在进行共识时需要从共识节点中选举出主节点,并且主节点需要具备全量的区块链账本;所以新加入区块链的电子设备作为非完备的节点设备不具有全量的区块链账本,不能参与主节点选举。
在将所述电子设备作为限制了部分权限的非完备的节点设备加入到所述区块链网络后,该电子设备其可以逐步从其它节点处同步全量的区块链账本,并同步了全量区块链账本后,服务器可以将所述电子节点切换为具有所有权限的完备的节点设备;完备的节点设备可以用于向客户端或其它非完备的节点设备提供交易所需的最新的状态数据和密码学证明,也可以用于向申请入网的电子设备提供最新区块对应的区块链数据和最新的密码学承诺。
其中,所述密码学承诺以及所述密码学证明,可以用于对接收到的交易进行合法性校验。其中,所述密码学证明是对与所述交易相关的目标账户和所述目标账户的状态数据包含在所述区块链的区块链账本中的证明。所述密码学承诺是对所述区块链的区块链账本中记录的所有区块链账户以及与所述所有区块链账户对应的账户状态的真实性的承诺。上述合法性校验的校验过程后续实施例中再进行介绍。
在本说明书中,所述服务端包括所述区块链中的任一具有全量区块链账本的节点;或者,与区块链对应的中心化服务器。
在一种实施方式中,中心化服务器可以包括用于提供区块链即服务(BaaS,Blockchain as a Service)的BaaS平台(也称之为BaaS云)。BaaS平台可以通过为区块链上发生的活动(诸如订阅和通知、用户验证、数据库管理和远程更新),提供预先编写的软件的方式,面向与BaaS平台耦接的客户端侧计算设备,提供简单易用,一键部署,快速验证,灵活可定制的区块链服务,进而可以加速区块链业务应用开发、测试、上线,助力各行业区块链商业应用场景的落地。
例如,在一个例子中,与BaaS平台可以提供诸如MQ(Message Queue,消息队列)服务之类的软件;与BaaS平台耦接的客户端侧计算设备,可以订阅BaaS平台耦接的区块链系统中某一区块链上部署的智能合约,在触发执行后在区块链上产生的合约事件;而BaaS平台可以监听该智能合约在触发执行后在区块链上产生的事件,再基于MQ服务相关的软件,将该合约事件以通知消息的形式添加到消息队列中,使得订阅该消息队列的客户端侧计算设备,能够得到与上述合约事件相关的通知。
在一种实施方式中,BaaS平台还可以提供基于区块链技术的企业级平台服务,以帮助企业级客户构建安全且稳定的区块链环境,并轻松管理区块链的部署、操作、维护和开发。
例如,在一个例子中,BaaS平台可以基于云技术实现丰富的安全策略和多租户的隔离环境、基于芯片加密技术来提供高级的安全保护、基于高度可靠的数据存储,提供可以快速扩展,而不会中断的端到端的高可用性服务;
在另一个例子中,还可以提供增强的管理功能,以帮助客户构建企业级区块链网络环境;以及,还可以为标准区块链应用和数据提供本地支持,支持例如HyperledgerFabric和Enterprise Ethereum-Quorum的主流开源区块链技术,以构建开放且包容的技术生态系统。
以下以电子设备为执行主体介绍,电子设备入网后作为非完备节点时提供的区块链服务,如图3所示可以包括以下步骤:
步骤310:电子设备接收客户端发起的交易。
其中,所述电子设备存储有从区块链中的其它节点中同步的最新区块对应的区块链数据和最新的密码学承诺;其中,所述密码学承诺是对所述区块链的区块链账本中记录的所有区块链账户以及与所述所有区块链账户对应的账户状态的真实性的承诺。
步骤320:响应于所述交易,从所述区块链中的其它节点中获取与所述交易相关的目标账户和所述目标账户的状态数据包含在所述区块链的区块链账本中的密码学证明。
在接收到交易后,电子设备需要对交易进行合法性验证。由于电子设备本地没有全量的区块链账本,其无法提供交易相关的目标账户和所述目标账户的账户状态,因此无法独立对交易进行验证。
而区块链中的其它节点存储有全量的区块链账本,因此电子设备可以从其它节点处获取该交易所需的最新的账户状态和向量承诺证明,所述向量承诺证明是对目标账户和所述目标账户的状态数据包含在所述区块链的区块链账本中的证明。
在本说明书中,所述区块链账本记录了区块链中所有账户以及账户最新的账户状态。
在一实施例中,所述账户状态可以是指用户账户的Balance字段的值。
步骤330:针对所述交易进行合法性校验;其中,所述合法性校验包括基于密码学算法对所述密码学证明进行校验。
其中,所述合法性校验可以包括基于密码学算法对所述密码学证明进行校验;也可以包括对所述交易的数据格式进行合法性校验,还可以对所述交易相关的账户状态进行合法性校验等等。
以下介绍所述其它节点向电子设备返回账户状态和密码学证明的过程:
S11:其它节点从本地存储的区块链账本中查询与所述交易相关的目标账户和所述目标账户的状态数据,以及本地存储的最新的密码学承诺。
S12:其它节点基于密码学算法对所查询到的账户状态和密码学承诺进行计算,得到用于证明所述账户状态位于区块链账本中的密码学证明;
S13:其它节点将所述目标账户的状态数据、密码学证明返回给所述电子设备。
本说明书中电子设备、其它节点采用的是相同的密码学算法。
在一示例性的实施例中,所述基于密码学算法对所述密码学证明进行校验,包括:
基于密码学算法对所述密码学证明进行计算得到密码学承诺;
确定计算出的密码学承诺,是否与所述其它节点本地维护的与所述区块链账本对应的密码学承诺相同;
如果相同,确定针对所述交易的合法性校验通过。
该示例中,由于密码学证明是基于密码学算法对密码学承诺和目标账户的账户状态计算得到的;即密码学算法(密码学承诺+账户状态)→密码学证明。
而电子设备在获取到其它节点发送的目标账户的账户状态和密码学证明的情况下,采用相同的密码学算法,就可以反推出非共识节点生成该密码学证明时的密码学承诺;即密码学承诺算法(密码学证明+账户状态)→密码学承诺。
通过比较电子设备本地存储的密码学承诺与计算结果(该反推出的密码学承诺),可以确定账户状态是否为真。
由于其它节点本地存储的密码学承诺与电子设备本地存储的密码学承诺是完全相同,如果密码学承诺与计算结果一致,则说明密码学证明和账户状态是可信的。如果不一致,则说明密码学证明和目标账户的账户状态是被篡改过的。
应用该示例可以确定密码学证明和目标账户的账户状态是否被篡改过,只有未被篡改时,才可以确定针对所述交易的合法性校验通过。
在一示例性的实施例中,所述交易还包括所述客户端从所述区块链中不参与共识的节点设备处获取到的所述目标账户的最新账户状态;
所述合法性校验还包括:
校验所述目标账户对应的最新账户状态是否与所述区块链中非共识节点(即不参与共识的节点设备)维护的所述目标账户对应的最新账户状态是否相同;
如果相同,确定针对所述交易的合法性校验通过。
该示例中,共识节点可以与非共识节点进行交互,以确定对客户端发送的目标账户对应的最新账户状态,是否与非共识节点维护的目标账户对应的最新账户状态相同。
由于客户端发送的最新账户状态是从非共识节点获取的,因此在正常情况下,目标账户的最新账户状态应该是一致相同的;如果不一致,则说明客户端发送的最新账户状态是被篡改过的。
应用该示例可以确定客户端发送的目标账户的最新账户状态是否被篡改过,只有未被篡改时,才可以确定针对所述交易的合法性校验通过。
通过上述实施例,不再基于状态数据来验证交易的合法性,而是基于密码学承诺来验证交易的合法性。由于无需账户状态参与验证,因此电子设备即使本地没有全量的区块链账本也能参与区块链服务。
在一实施例中,所述方法还包括:
S21:在确定所述合法性校验通过后,基于所述最新的账户状态执行所述交易,得到交易执行后更新的账户状态。
S31:基于密码学算法,对所述更新的账户状态和所述密码学承诺进行计算,得到更新的密码学承诺。将本地存储的密码学承诺修改为所述更新的密码学承诺。
S31:将所述更新的密码学承诺和所述更新的账户状态同步给所述其它节点;以使所述其它节点更新存储的密码学承诺和账户状态。
该实施例中,所述电子设备还需要对最新的密码学承诺进行共识,如果一致;则将本轮记账的交易打包为区块;并将该区块追加到电子设备存储的最新区块之后,从而完成区块链的记账过程。
由于电子设备执行了客户端发送的交易,导致交易涉及的目标账户的账户状态发生了改变。而由于账户状态改变,会导致区块链账本也发生了改变,因此对区块链账本承诺的密码学承诺也需要更新。
具体地,基于密码学算法对所述最新的账户状态和所述密码学承诺进行计算得到最新的密码学承诺;即密码学算法(密码学承诺(旧)+最新的账户状态)=最新的密码学承诺。
由于电子设备此时并未存储全量的区块链账本,因此需要将最新的账户状态同步给其它节点。同样地,最新的密码学承诺也需要同步给其它节点。
在本说明书中,电子设备作为非完备的节点,其并不具备独立验证交易合法性的能力。为此,在电子设备加入区块链之后,可以从所述区块链中的其它节点中逐步获取全量的区块链账本;
并在获取到全量的区块链账本后,将所述电子设备切换为完备节点;完备节点用于向其它节点提供交易所需的账户状态和密码学证明。
其中,所述从所述区块链中的其它节点中逐步获取全量的区块链账本,可以采用同步方式也可采用异步方式。
在获取过程中,也需要对获取到的区块链账本进行校验,对于能够校验通过的账户状态,才可以保存在电子设备的本地。
当电子设备完整的获取了全量的区块链账本后,这个电子设备就可以作为完备节点为其它节点(如其它非完备的节点)提供账户状态和密码学证明。
具体地,在获取到其它非完备的节点发送的交易后,响应于该交易,从本地获取的所述交易所需的最新的账户状态,以及基于密码学算法对从本地获取到的所述交易所需的最新的账户状态和最新的密码学承诺进行计算,得到所述交易对应的密码学证明;然后将获取到的账户状态和计算出的密码学证明发送给所述其它非完备的节点。
本说明书提供了一种快速加入区块链的方案,申请入网的电子设备无需获取全量的区块链账本作为前提条件,该电子设备只需从区块链中的其它节点处同步到的最新区块对应的区块链数据和最新的密码学承诺,由于最新区块对应的区块链数据和最新的密码学承诺的数据量远小于全量的区块链账本,因此该电子设备可以快速加入到区块链中,并在加入区块链后参与部分的区块链业务。
与上述方法实施例相对应,本说明书还提供了一种区块链的节点入网装置的实施例。
本说明书的区块链的节点入网装置的实施例可以应用在电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。
从硬件层面而言,如图4所示,为本说明书的区块链的节点入网装置所在电子设备的一种硬件结构图,除了图4所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。
图5是本说明书一示例性实施例示出的一种区块链的节点入网装置的框图。所述区块链的节点入网装置可以应用在前述图4所示的电子设备中,并与前述图2所示方法实施例对应,所述装置包括:
接收单元410,接收电子设备发送的入网申请;其中,所述入网申请包括所述电子设备从所述区块链中的其它节点处同步到的最新区块对应的区块链数据和最新的密码学承诺;所述密码学承诺是对所述区块链的区块链账本中记录的所有区块链账户以及与所述所有区块链账户对应的账户状态的真实性的承诺;
验证单元420,对所述最新区块对应的区块数据和所述密码学承诺分别进行校验;
入网单元430,如果校验通过,将所述电子设备作为节点设备加入到所述区块链网络。
可选的,所述验证单元420,包括:
校验所述最新区块对应的区块数据是否与所述区块链中的其它节点本地维护的区块链账本中的最新区块对应的区块数据是否相同;以及,
校验所述密码学承诺与所述区块链中的其它节点本地维护的密码学承诺是否相同;
如果二者均相同,确定对所述最新区块对应的区块数据和所述密码学承诺的校验通过。
可选的,所述入网单元430还包括:
将所述电子设备作为限制了部分权限的非完备的节点设备加入到所述区块链网络。
可选的,所述部分权限包括:
为交易发起方提供其发起的目标交易相关的目标账户的账户状态数据的权限;以及,为交易发起方提供用于证明其发起的目标交易相关的目标账户,以及该目标账户的状态数据包含在全量的区块链账本中的密码学证明的权限。
可选的,所述区块链采用的共识算法支持从共识节点中选举出主节点;
所述部分权限还包括:
参与主节点选举的权限。
可选的,所述共识算法包括pbft算法;
可选的,所述装置还包括:
切换单元,响应于所述电子设备从其它节点处同步了全量的区块链账本,将所述电子节点切换为具有所有权限的完备的节点设备。
可选的,所述密码学承诺以及所述密码学证明,用于对接收到的交易进行合法性校验。
可选的,所述密码学承诺包括基于Vector commitment算法针对全量的区块链账本中记录的所有区块链账户以及与所述所有区块链账户对应的账户状态进行密码学计算得到的承诺值;
相应的,所述密码学证明包括基于Vector commitment算法针对全量的区块链账本中记录的所述目标账户以及所述目标账户对应的状态数据进行密码学计算得到的证明值。
可选的,所述服务端包括所述区块链中的任一具有全量的区块链账本的节点。
可选的,所述区块链包括联盟链。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实现方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
Claims (23)
1.一种区块链的节点加入方法,所述方法应用在与区块链对应的服务端,所述方法包括:
接收电子设备发送的入网申请;其中,所述入网申请包括所述电子设备从所述区块链中的其它节点处同步到的最新区块对应的区块链数据和最新的密码学承诺;所述密码学承诺是对所述区块链的区块链账本中记录的所有区块链账户以及与所述所有区块链账户对应的账户状态的真实性的承诺;
对所述最新区块对应的区块数据和所述密码学承诺分别进行校验;
如果校验通过,将所述电子设备作为节点设备加入到所述区块链网络。
2.根据权利要求1所述的方法,对所述最新区块对应的区块数据和所述密码学承诺进行校验,包括:
校验所述最新区块对应的区块数据是否与所述区块链中的其它节点本地维护的区块链账本中的最新区块对应的区块数据是否相同;以及,
校验所述密码学承诺与所述区块链中的其它节点本地维护的密码学承诺是否相同;
如果二者均相同,确定对所述最新区块对应的区块数据和所述密码学承诺的校验通过。
3.根据权利要求1所述的方法,将所述电子设备作为节点设备加入到所述区块链网络,包括:将所述电子设备作为限制了部分权限的非完备的节点设备加入到所述区块链网络。
4.根据权利要求3所述的方法,所述部分权限包括:
为交易发起方提供其发起的目标交易相关的目标账户的账户状态数据的权限;以及,为交易发起方提供用于证明其发起的目标交易相关的目标账户,以及该目标账户的状态数据包含在全量的区块链账本中的密码学证明的权限。
5.根据权利要求4所述的方法,所述区块链采用的共识算法支持从共识节点中选举出主节点;
所述部分权限还包括:
参与主节点选举的权限。
6.根据权利要求5所述的方法,所述共识算法包括pbft算法。
7.根据权利要求1所述的方法,所述方法还包括:
响应于所述电子设备从其它节点处同步了全量的区块链账本,将所述电子节点切换为具有所有权限的完备的节点设备。
8.根据权利要求4所述的方法,所述密码学承诺以及所述密码学证明,用于对接收到的交易进行合法性校验。
9.根据权利要求8所述的方法,所述密码学承诺包括基于Vector comm itment算法针对全量的区块链账本中记录的所有区块链账户以及与所述所有区块链账户对应的账户状态进行密码学计算得到的承诺值;
相应的,所述密码学证明包括基于Vector commitment算法针对全量的区块链账本中记录的所述目标账户以及所述目标账户对应的状态数据进行密码学计算得到的证明值。
10.根据权利要求1所述的方法,所述服务端包括所述区块链中的任一具有全量的区块链账本的节点。
11.根据权利要求1所述的方法,所述区块链包括联盟链。
12.一种区块链的节点入网装置,所述装置应用在与区块链对应的服务端,所述装置包括:
接收单元,接收电子设备发送的入网申请;其中,所述入网申请包括所述电子设备从所述区块链中的其它节点处同步到的最新区块对应的区块链数据和最新的密码学承诺;所述密码学承诺是对所述区块链的区块链账本中记录的所有区块链账户以及与所述所有区块链账户对应的账户状态的真实性的承诺;
验证单元,对所述最新区块对应的区块数据和所述密码学承诺分别进行校验;
入网单元,如果校验通过,将所述电子设备作为节点设备加入到所述区块链网络。
13.根据权利要求12所述的装置,所述验证单元,包括:
校验所述最新区块对应的区块数据是否与所述区块链中的其它节点本地维护的区块链账本中的最新区块对应的区块数据是否相同;以及,
校验所述密码学承诺与所述区块链中的其它节点本地维护的密码学承诺是否相同;
如果二者均相同,确定对所述最新区块对应的区块数据和所述密码学承诺的校验通过。
14.根据权利要求12所述的装置,所述入网单元还包括:
将所述电子设备作为限制了部分权限的非完备的节点设备加入到所述区块链网络。
15.根据权利要求14所述的装置,所述部分权限包括:
为交易发起方提供其发起的目标交易相关的目标账户的账户状态数据的权限;以及,为交易发起方提供用于证明其发起的目标交易相关的目标账户,以及该目标账户的状态数据包含在全量的区块链账本中的密码学证明的权限。
16.根据权利要求15所述的装置,所述区块链采用的共识算法支持从共识节点中选举出主节点;
所述部分权限还包括:
参与主节点选举的权限。
17.根据权利要求16所述的装置,所述共识算法包括pbft算法。
18.根据权利要求12所述的装置,所述装置还包括:
切换单元,响应于所述电子设备从其它节点处同步了全量的区块链账本,将所述电子节点切换为具有所有权限的完备的节点设备。
19.根据权利要求15所述的装置,所述密码学承诺以及所述密码学证明,用于对接收到的交易进行合法性校验。
20.根据权利要求19所述的装置,所述密码学承诺包括基于Vector commitment算法针对全量的区块链账本中记录的所有区块链账户以及与所述所有区块链账户对应的账户状态进行密码学计算得到的承诺值;
相应的,所述密码学证明包括基于Vector commitment算法针对全量的区块链账本中记录的所述目标账户以及所述目标账户对应的状态数据进行密码学计算得到的证明值。
21.根据权利要求12所述的装置,所述服务端包括所述区块链中的任一具有全量的区块链账本的节点。
22.根据权利要求12所述的装置,所述区块链包括联盟链。
23.一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如权利要求1-11中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210179238.XA CN114547655A (zh) | 2022-02-25 | 2022-02-25 | 区块链的节点入网及装置、电子设备 |
PCT/CN2022/135616 WO2023160093A1 (zh) | 2022-02-25 | 2022-11-30 | 区块链的节点入网及装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210179238.XA CN114547655A (zh) | 2022-02-25 | 2022-02-25 | 区块链的节点入网及装置、电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114547655A true CN114547655A (zh) | 2022-05-27 |
Family
ID=81678974
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210179238.XA Pending CN114547655A (zh) | 2022-02-25 | 2022-02-25 | 区块链的节点入网及装置、电子设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114547655A (zh) |
WO (1) | WO2023160093A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023160093A1 (zh) * | 2022-02-25 | 2023-08-31 | 蚂蚁区块链科技(上海)有限公司 | 区块链的节点入网及装置和电子设备 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10586210B2 (en) * | 2016-11-30 | 2020-03-10 | International Business Machines Corporation | Blockchain checkpoints and certified checkpoints |
US11182403B2 (en) * | 2019-05-22 | 2021-11-23 | Chainstack Pte. Ltd. | Systems and methods of launching new nodes in a blockchain network |
CN111698244B (zh) * | 2020-06-08 | 2022-05-10 | 杭州溪塔科技有限公司 | 一种新增节点快速参与共识的方法、装置及电子设备 |
CN112383610B (zh) * | 2020-11-11 | 2022-12-09 | 上海保险交易所股份有限公司 | 区块链状态数据的同步处理方法及系统 |
CN112256800A (zh) * | 2020-12-21 | 2021-01-22 | 支付宝(杭州)信息技术有限公司 | 一种基于向量承诺的联盟链数据处理方法、装置以及设备 |
CN114547655A (zh) * | 2022-02-25 | 2022-05-27 | 蚂蚁区块链科技(上海)有限公司 | 区块链的节点入网及装置、电子设备 |
-
2022
- 2022-02-25 CN CN202210179238.XA patent/CN114547655A/zh active Pending
- 2022-11-30 WO PCT/CN2022/135616 patent/WO2023160093A1/zh unknown
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023160093A1 (zh) * | 2022-02-25 | 2023-08-31 | 蚂蚁区块链科技(上海)有限公司 | 区块链的节点入网及装置和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2023160093A1 (zh) | 2023-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11829494B2 (en) | Distributed privately subspaced blockchain data structures with secure access restriction management | |
CN112492006B (zh) | 一种基于区块链的节点管理方法和装置 | |
US11449476B2 (en) | Extracting data from a blockchain network | |
CN109583887B (zh) | 一种区块链的交易方法和装置 | |
CN110009349B (zh) | 区块链中生成和验证可链接环签名的方法及装置 | |
CN111753335A (zh) | 区块内容的编辑方法及装置 | |
CN112422341B (zh) | 区块链网络的故障检测方法及相关设备 | |
CN104346365A (zh) | 确定与特定业务相关的关联日志的方法和装置 | |
CN114500119B (zh) | 区块链服务的调用方法和装置 | |
CN113723962A (zh) | 区块链权限管理方法和区块链系统 | |
CN114529415A (zh) | 基于区块链的交易验证方法及装置、电子设备 | |
CN113609231B (zh) | 一种维护区块链系统的网络架构信息的方法和装置 | |
CN115296794A (zh) | 基于区块链的密钥管理方法及装置 | |
CN114547655A (zh) | 区块链的节点入网及装置、电子设备 | |
Palm | Implications and impact of blockchain transaction pruning | |
Kanimozhi et al. | Immediate detection of data corruption by integrating blockchain in cloud computing | |
Görkey et al. | Comparative study of byzantine fault tolerant consensus algorithms on permissioned blockchains | |
CN113327169B (zh) | 基于区块链的理赔方法及装置、电子设备 | |
CN114757777A (zh) | 用于区块链的最优链路选择方法及装置和电子设备 | |
CN115118434A (zh) | 基于区块链的密钥管理方法及装置 | |
CN115131029A (zh) | 基于区块链的数字文件签署方法及装置 | |
CN117118640A (zh) | 一种数据处理方法、装置、计算机设备以及可读存储介质 | |
CN111383008B (zh) | 基于账户模型的区块链转账方法及装置 | |
CN113282671A (zh) | 基于区块链的理赔方法及装置、电子设备 | |
CN115481121A (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 |