CN113360578B - 一种分层裁剪区块链交易内数据的方法、系统和存储介质 - Google Patents
一种分层裁剪区块链交易内数据的方法、系统和存储介质 Download PDFInfo
- Publication number
- CN113360578B CN113360578B CN202110682927.8A CN202110682927A CN113360578B CN 113360578 B CN113360578 B CN 113360578B CN 202110682927 A CN202110682927 A CN 202110682927A CN 113360578 B CN113360578 B CN 113360578B
- Authority
- CN
- China
- Prior art keywords
- data
- hash
- transaction
- data set
- clipping
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000005520 cutting process Methods 0.000 title claims abstract description 39
- 238000004364 calculation method Methods 0.000 claims abstract description 32
- 238000013515 script Methods 0.000 claims description 77
- 238000004590 computer program Methods 0.000 claims description 6
- 230000000717 retained effect Effects 0.000 claims description 5
- 238000000638 solvent extraction Methods 0.000 claims description 5
- 238000013138 pruning Methods 0.000 claims 1
- 230000008569 process Effects 0.000 abstract description 24
- 230000005540 biological transmission Effects 0.000 abstract description 11
- 238000012795 verification Methods 0.000 abstract description 6
- 238000013500 data storage Methods 0.000 abstract description 2
- 230000002829 reductive effect Effects 0.000 description 8
- 238000012423 maintenance Methods 0.000 description 7
- 238000013508 migration Methods 0.000 description 4
- 230000005012 migration Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000013144 data compression Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000009966 trimming Methods 0.000 description 1
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/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- 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
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- 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
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Business, Economics & Management (AREA)
- Computing Systems (AREA)
- Accounting & Taxation (AREA)
- Computer Hardware Design (AREA)
- Finance (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种分层裁剪区块链交易内数据的方法,其应用于交易数据上链过程中的交易识别号计算,实现对区块链交易内部数据做分层裁剪与局部复用。该方法可在不改变原始交易数据集与其传输格式的情况下,通过对交易数据中的数据字段进行分层的哈希计算,使得不同层次的交易数据均可被裁剪,且不影响对其他部分交易数据的哈希验证,即使用被裁剪数据的哈希值与其他未裁剪数据仍然可以计算出交易识别号。多个交易中的相同的可裁剪数据可以基于相同的哈希指针而被共用,实现对该数据在存储与传输过程中的复用,提高数据存储与传输效率。另外,针对特定区块链系统,设计了具体的分层哈希指针计算模型。
Description
技术领域
本发明涉及区块链领域,尤其涉及一种分层裁剪区块链交易内数据的方法、系统和存储介质。
背景技术
分布式账本技术,或者是更广为人知的区块链技术,是一种由分布在不同地理位置的多个账本维护节点共同参与记账,将交易数据记录到一个分布式数据库网络中的技术。所述账本维护节点为运行兼容的同类记账软件且有机会成为记账节点的节点。所述交易数据定义为所有账本维护节点间传输的功能完整且独立不可分割的记账数据单元。每次记账由用户广播或点对点的发送一个交易到分布式网络中,并由根据共识规则选出的记账节点添加到账本数据库中,最后通过其他账本维护节点的验证来实现。
网络中也存在不参与记账但仍记录完整的或部分的、历史的或当前的交易数据的节点,可称为账本同步节点。网络中还存在一些用户节点,其只保存用户自身或者用户群组自身相关的交易数据,或者也保存最基本的区块头结构数据,其被称为轻节点。特别的,在基于工作量证明的狭义区块链网络中,账本维护节点被称为矿工,账本数据库为交易区块。本文中,使用“区块链”仅为了简化描述,其含义不限于此狭义的区块链网络,而是包括所有形式的分布式分类账,其中的记账交易亦不必被打包为一个区块,也可以以相对独立的方式加入到分布式账本中。
现有的区块链技术中,交易中的主要数据被整体哈希以得到交易识别号TXID,当节点需要使用哈希计算来验证其中部分交易数据的真伪时,必须同时接收其他冗余数据,增加了交易数据的存储、传输与二次利用成本,增大了不必要的用户负担。
发明内容
为了解决上述现有区块链技术中对交易内数据的复用效率不高的缺陷,本发明提出了一种应用于区块链与分布式账本技术领域的可分层裁剪交易内数据的上链方法、系统和存储介质。
本发明的目的之一采用以下技术方案:
一种分层裁剪区块链交易内数据的方法,通过数据裁剪模型F对区块链交易内数据做分层裁剪,数据裁剪模型F为:
Y=S∪{HASH(binW1),HASH(binW2),...,HASH(binWv)},
其中,S和W1、W2、……、Wv为输入数据集X的子集,S记作保留数据集,W1、W2、……、Wv记作可裁剪数据集,v表示可裁剪数据集的数量;X={x1,x2,x3......xa},S={s1,s2,s3......sb},a表示输入数据集X中的数据元素的数量,b表示保留数据集S中的数据元素的数量,h表示可裁剪数据集的序号,1≤h≤v,ch表示可裁剪数据集Wh中元素的个数,且ch≥1,binWh表示数据子集Wh的序列化编码值;HASH(binWh)表示binWh的哈希值;Y表示输入数据集X经数据裁剪模型F裁剪后的数据;
HASH(p)表示对数据p进行一次或一次以上嵌套的哈希计算后获得的哈希值;对数据p进行一次哈希计算获得的哈希值记作hash(p),对数据p进行r次嵌套的哈希计算后获得的哈希值记作HASHr(p),HASHr(p)=hash(HASHr-1(p)),r>=1,HASH0(p)=p;hash(HASHr-1(p))中的hash表示对参数HASHr-1(p)进行哈希计算时使用的hash函数,HASHr由r个任意的hash函数嵌套组成;
hash(p)记作窄义的哈希计算,HASH(p)记作广义的哈希计算。
优选的,X=S∪W1∪W2∪…∪Wv。
优选的,包括以下步骤:
步骤2、根据数据裁剪模型F对原始数据集X0进行z层裁剪,获得目标数据集Xz,z≥1;对原始数据集X0的裁剪过程为:
其中,Xi+1表示原始数据集X0经数据裁剪模型F的i+1层裁剪后的数据,Xi为第i+1层裁剪时数据裁剪模型F的输入数据集,Yi为第i+1层裁剪时数据裁剪模型F的输出数据集,Si和为Xi的子集,Si表示第i+1层裁剪时的保留数据集,其中bi表示第i+1层裁剪时的保留数据集的元素个数;表示第i+1层裁剪时的可裁剪数据集,其中vi表示第i+1层裁剪时需要进行裁剪的数据子集的数量;第i+1层裁剪时的第h个可裁剪数据集记作ci,h为中元素个数;
步骤3:对目标数据集Xz进行序列化编码,获得序列化编码值binXz,并对序列化编码值binXz进行广义的哈希计算,获得目标哈希值HASH(binXz),并将此目标哈希值用作上链时使用的交易识别号TXID。
优选的,应用于UTXO模型下的分布式账本时,在第一层裁剪时,交易的每一个输入(TxIn)的Unlocking Script元素形成独立的可裁剪数据集,交易的每一个输出(TxOut)的Locking Script元素形成独立的可裁剪数据集。
优选的,应用于UTXO模型下的分布式账本时,在第一层裁剪时,交易的每一个输入(TxIn)的Unlocking Script元素与Unlocking Script Size元素组成一个可裁剪数据集,交易的每一个输出(TxOut)的Locking Script元素与Locking Script Size元素组成一个可裁剪数据集。
优选的,应用于UTXO模型下的分布式账本时,在第二层及大于第二层的任一层裁剪中,跟任意一个交易输入的内容相关的数据元素均同属于一个可裁剪数据集,并且跟任意一个交易输出的内容相关的数据元素均同属于另一个可裁剪数据集。
优选的,S0不为空集。
本发明的目的之二采用以下技术方案:
一种分层裁剪区块链交易内数据的系统,其特征在于,包括存储模块和处理器,存储模块中存储有计算机程序,处理器执行所述计算机程序时实现所述的分层裁剪区块链交易内数据的方法。
本发明的目的之三采用以下技术方案:
一种存储介质,其特征在于,存储有计算机程序,所述计算机程序被执行时实现所述的分层裁剪区块链交易内数据的方法。
本发明的优点在于:
(1)本发明可用于对区块链交易内数据做分层裁剪与局部复用。通过对原始数据集进行多层哈希处理,原始数据集中的每一个数据均以原数据的形态或者哈希编码的形态存在于区块链或分布式网络中对应该原始数据集的节点中。如此,实现了在区块链上对原始数据集的选择性存储,同时通过分层哈希进行数据校验,使得该原始数据集在节点间迁移的过程中按需缩减冗余数据,以减少数据传输过程中的数据包大小,避免冗余数据的重复传输,从而提高数据传输和处理效率。同时,由于数据迁移过程中,至少以哈希编码的形式存在于数据节点中,保证了数据的可靠性验证,避免数据被篡改。且,通过数据的分层哈希,方便了对指定数据的追溯,使得用户可根据需要进行数据节点的下载,以获得需要数据的同时,也避免冗余数据的重复下载。
(2)通过该应用于区块链的分层裁剪数据上链方法对TXID进行计算时,不需要改变交易方式,对现有的区块链计算方式适应性好。
(3)通过数据裁剪模型F对数据进行哈希计算的过程中,任一裁剪数据集Wk中包含的数据可以是一个,也可以是多个。如此,通过多个数据打包成一个裁剪数据集进行统一编码和哈希变换,减少了工作量,提高了工作效率。
(4)通过在同一层哈希裁剪中对裁剪数据集的划分,实现了对不同类数据的分开哈希与编码,有利于后续对数据的追溯和解码。例如,对同一层哈希中的输入数据和输出数据分开打包编码,便于数据解码验证。
(5)本发明中,原始数据集包含所有数据,在后层以数据哈希值取代原始数据,数据迁移过程中,原始数据的痕迹始终存在,以方便数据追溯。
(7)本发明可应用于该领域中的智能合约设计,节点之间的数据压缩传输,以及对交易(Transaction,TX)的简单支付验证(Simplified Payment Verification,SPV)。
(8)UTXO模型下的分布式账本中,每个交易输入中的Unlocking Script数据用于向账本维护节点(矿工)证明该笔交易的合法有效性,其可能包括前序交易的数据或其他可以导致交易体积很大的数据。当该笔交易被验证通过并写入分布式账本数据库以后,账本维护节点基本不再需要此数据。本发明,将每个交易输入中的Unlocking Script数据单独哈希后,可以在后续的交易脚本或节点交互中按需裁剪掉该数据内容,仅保留其哈希值,来验证该笔交易中其他数据的真实合法性。同理,每个交易输出中的锁定脚本LockingScript表示该交易输出的花费条件,该花费条件可以在不同交易的不同输出中具有同样的内容,用于表达相同的交易接受方。该脚本可以具有较大的体积,并在某些场景下被多次使用。本发明中,每个输出的锁定脚本被单独哈希,一方可以在不给出该脚本的完整内容的情况下,仅使用其哈希值便可以证明该脚本是某一交易中特定位置的交易输出,以此减少交易脚本或者节点间的交互数据的大小。
(9)UTXO模型下的分布式账本中,交易每一个输入与输出中的所有数据中,仅有Unlocking Script Size与Locking Script Size数据使用了变长数据格式,其字节长度大小不是恒定的。将每一个Unlocking Script Size或Locking Script Size数据分别跟随Unlocking Script或Locking Script数据,划入同一个可裁剪数据集,可以使得此次裁剪后的输出数据集中跟交易输入与输出内容有关的数据均具有恒定不变的字节长度,方便未来对交易数据的快速分割与解析。
(10)应用于UTXO模型下的分布式账本时,在第二层及大于第二层的任一层裁剪中,通过对每一个交易输入(输出)内容相关的全部数据做整体哈希,可以在后续的交易脚本或节点交互中,当一方需证明一个交易识别号所指向的交易中的某一个非交易输入(输出)数据的真实合法性时,可以将该交易数据中的所有交易输入(输出)数据全部裁剪掉,仅使用相应的哈希值,即可达到同样的哈希验证可靠性。
(11)本发明中,针对层及第二层以上的任一层裁剪中,均只设置两个可裁剪数据集,一个用于收容跟任意一个交易输入的内容相关的数据元素,一个用于收容跟任意一个交易输出的内容相关的数据元素。如此,可通过第一层裁剪消减冗余数据,通过第二层及第二层以上的两个可裁剪数据集的划分,使得输入相关数据和输出相关数据相互独立,避免了可裁剪数据集过渡划分的情况,进一步方便了数据的溯源。
附图说明
图1为一种应用于区块链的分层裁剪数据上链方法流程图;
图2为实施例1的数据分层示意图;
图3为实施例2的数据分层示意图;
图4为实施例3的数据分层示意图。
具体实施方式
本实施方式提出的一种分层裁剪区块链交易内数据的方法,通过数据裁剪模型F对区块链交易内数据做分层裁剪,数据裁剪模型F为:
Y=S∪{HASH(binW1),HASH(binW2),...,HASH(binWv)},
其中,S和W1、W2、……、Wv为输入数据集X的子集,S记作保留数据集,W1、W2、……、Wv记作可裁剪数据集,v表示可裁剪数据集的数量;X={x1,x2,x3......xa},S={s1,s2,s3......sb},a表示输入数据集X中的数据元素的数量,b表示保留数据集S中的数据元素的数量,h表示可裁剪数据集的序号,1≤h≤v,ch表示可裁剪数据集Wh中元素的个数,且ch≥1,binWh表示数据子集Wh的序列化编码值;HASH(binWh)表示binWh的哈希值;Y表示输入数据集X经数据裁剪模型F裁剪后的数据。
具体实施时,可进一步设置:X=S∪W1∪W2∪…∪Wv,以减少冗余数据。
具体实施时,还可进一步设置:X=S+W1+W2+...+Wv,a=b+c1+c2+...+cv、v+1≤a,以避免数据重复,提高数据裁剪效率。
具体的,本实施方式中,HASH(p)表示对数据p进行一次或一次以上嵌套的哈希计算后获得的哈希值;对数据p进行一次哈希计算获得的哈希值记作hash(p),对数据p进行r次嵌套的哈希计算后获得的哈希值记作HASHr(p),HASHr(p)=hash(HASHr-1(p)),r>=1,HASH0(p)=p。hash(HASHr-1(p))中的hash表示第r次哈希计算时使用的hash函数,其可以是任意一种哈希函数或者是新设计的具有同等功效的函数。HASHr由r个任意的hash函数嵌套组成,该r个hash函数可以不同或相同。
具体的,本实施方式中,对任意一个数据集R的序列化编码操作记为Encode(R),编码操作后的输出数据为二进制数据,可相应记为binR或者bin(R),即有bin(R)=binR=Encode(R)。该编码操作中可以加入一些常量数据与共识规则,以满足特定的检索与解码需要。该编码操作可以是具备逆向解码操作方法(记为Decode)的任意一种变换操作,即具有特性R=Decode(Encode(R))。
本实施方式中,通过数据裁剪模型F对区块链交易内数据做分层裁剪的具体方式包括以下步骤。
步骤1、获得由多段数据组合形成的原始数据集X0={x1,x2,x3......xn},n表示原始数据集X0中的数据元素的个数;原始数据集X0划分为保留数据集S0和可裁剪数据集W0 1、W0 2、......、W0 v0。即,X0=S0+W0 1+W0 2+...+W0 v0,也可以记作X0=S0∪W0 1∪W0 2∪...∪W0 v0。
步骤2、根据数据裁剪模型F对原始数据集X0进行z层裁剪,获得目标数据集Xz,z≥1;对原始数据集X0的裁剪过程为:
其中,Xi+1表示原始数据集X0经数据裁剪模型F的i+1层裁剪后的数据,Xi为第i+1层裁剪时数据裁剪模型F的输入数据集,Yi为第i+1层裁剪时数据裁剪模型F的输出数据集,Si和为Xi的子集,Si表示第i+1层裁剪时的保留数据集,其中bi表示第i+1层裁剪时的保留数据集的元素个数;表示第i+1层裁剪时的可裁剪数据集,其中vi表示第i+1层裁剪时需要进行裁剪的数据子集的数量;第i+1层裁剪时的第h个可裁剪数据集记作ci,h为中元素个数。
具体实施时,某些中间层裁剪的输出数据,如HASH(binWi 1)、HASH(binWi 2)、...、HASH(binWi vi),可以不在节点中存储,而仅在需要时通过其他数据经过临时计算而再次获得,以减小数据存储压力。
本实施方式中,在对原始数据集X0进行第1层裁剪时,结合数据裁剪模型F,将原始数据集X0赋予输入数据集X,根据设置的数据划分规则,将原始数据集X0划分为保留数据集S0和裁剪数据集或者直接由人工划分;S0和分别赋予S和W1、W2、……、Wv以通过数据裁剪模型F执行数据裁剪。对原始数据集X0进行第i+1层裁剪时,数据裁剪模型F的输入数据为Xi,数据裁剪模型F的输出数据为Xi+1。即,对原始数据集X0进行第i+1层裁剪时,将数据集Xi赋予输入数据集X,将数据集Xi划分为保留数据集Si和裁剪数据集Si和分别赋予S和W1、W2、……、Wv以执行数据裁剪。值得注意的是,数据裁剪模型F中,v为变量,在对原始数据集X0进行第1层裁剪时,v=v0;在对原始数据集X0进行第i+1层裁剪时,v=vi。
值得注意的是,本实施方式中,每一次通过数据裁剪模型F进行数据裁剪的过程都是相互独立的,即,v0、v1、v2、...vi...、vz-1均为独立常数。
步骤3:对目标数据集Xz进行序列化编码,获得序列化编码值binXz,并对序列化编码值binXz进行广义的哈希计算,获得目标哈希值HASH(binXz),并将此目标哈希值用作上链时使用的交易识别号TXID。
如此,本实施方式中,通过对原始数据集进行多层哈希处理,原始数据集中的每一个数据均以原数据的形态或者哈希编码的形态存在于区块链上对应该原始数据集的节点中。如此,本实施方式中,实现了在区块链上对原始数据集的选择性存储,同时通过分层哈希进行数据校验,使得该原始数据集在节点间迁移过程的中缩减冗余数据,以减少数据传输过程中的数据包大小,避免冗余数据的重复传输,从而提高数据传输和处理效率。同时,由于数据迁移过程中,至少以哈希编码的形式存在于数据节点中,保证了数据的可靠性验证,避免数据被篡改。且,通过数据的分层哈希,方便了对指定数据的追溯,使得用户可根据需要进行数据节点的下载,以获得需要数据的同时,也避免冗余数据的重复下载。
本实施方式中,通过数据裁剪模型F对数据进行哈希裁剪的过程中,任一裁剪数据集Wk中包含的数据可以是一个,也可以是多个。即,本实施方式中,在每一次数据裁剪过程中,任一裁剪数据集Wk中包含的数据可以是一个,也可以是多个。如此,通过多个数据打包成一个裁剪数据集进行统一编码和哈希变换,减少了工作量,提高了工作效率。通过同一层哈希裁剪中裁剪数据集的划分,实现了对不同类数据的分开哈希编码,有利于后续对数据的追溯和解码。
该方法,应用于UTXO模型下的分布式账本时,原始数据集X0包括:交易数据包括交易版本号Version、交易时间锁数据LockTime、交易输入的个数InputCount、每一个交易输入的数据TxIn中包含的所有数据元素,交易输出的个数OutputCount,以及每一个交易输出的数据TxOut中包含的所有数据元素。
每一个交易输入的数据TxIn中包含的所有数据元素有:TXID、VOUT、UnlockingScript Size、Unlocking Script与Sequence数据,其中TXID指定了该输入对应的前序交易,VOUT指定了此前序交易的交易输出的排序位置,两者共同指定了该输入所花费的前序交易的输出TxOut的位置,Unlocking Script记录了花费此交易输出所需要的解锁脚本。每一个交易输出的数据TxOut中包含的所有数据元素有:Value、Locking Script Size与Locking Script。
在上述UTXO模型下的分布式账本中对原始数据集X0进行分层裁剪时,交易版本号Version,交易时间锁数据LockTime,交易输入的个数InputCount,每一个交易输入的数据TxIn中的TXID、VOUT和Sequence,交易输出的个数OutputCount,以及每一个交易输出的数据TxOut中的Value均属于保留数据集S0。即,在对原始数据集X0进行第一层裁剪时,便对交易数据中的交易输入的数据TxIn中的Unlocking Script Size、Unlocking Script,以及交易输出的数据TxOut中的Locking Script Size与Locking Script进行广义的哈希计算,以缩小冗余数据。具体实施时,在裁剪过程中,将最后存在有交易版本号Version和交易时间锁数据LockTime中任一项的保留数据集记作Sg,令G=S0-Version-LockTime,将最后存在有数据集G中任一项数据的保留数据集记作Sg',g>g’,即如此,保证了区块链上,存在有交易版本号Version和交易时间锁数据LockTime的数据节点最靠近根节点,方便了对交易的识别。
以下,结合UTXO模型下的分布式账本下的三个实施例,对上述的应用于区块链的分层裁剪数据上链方法进行具体说明。在以下实施例中,以比特币中本聪远景(BSV)区块链作为示例,但本领域技术人员应当理解的是,这并不构成对本发明保护范围的限定,该实施的目标区块链可以是包括比特币(BTC)区块链、狗狗币(DOGE)区块链、莱特币(LTC)区块链、比特币现金(BCH)区块链在内的其他具有同类交易数据元素的UTXO模型区块链。
为方便说明,以下三个实施例均采用两输入两输出的交易,其也可以是任意输入数与任意输出数的交易,只需将对前两个交易输入或交易输出的实施方式同样施加到其他交易输入或输出即可。
表1:实施例1-3中的原始数据集的组成
实施例1
本实施例中,仅对上述原始数据集XO进行一层裁剪,裁剪过程中,保留数据集S和裁剪数据集W的划分如下表2和图2所示。
本实施例中,在第一层裁剪时,交易的每一个输入(TxIn)的Unlocking Script元素与Unlocking Script Size元素组成一个可裁剪数据集,交易的每一个输出(TxOut)的Locking Script元素与Locking Script Size元素组成一个可裁剪数据集。
表2:实施例1数据裁剪过程中对原始数据集X0的划分。
该实施例中对原始数据集的裁剪过程以公式表示如下:
W0 1={x7,x8},W0 2={x12,x13},W0 3={x16,x17},W0 4={x19,x20},
S0=X0\(W0 1∪W0 2∪W0 3∪W0 4),即,W0 1∪W0 2∪W0 3∪W0 4∪S0=X0,
X1=S0∪{HASH(binW0 1),HASH(binW0 2),HASH(binW0 3),HASH(binW0 4)。
本实施例下,当一个节点或合约需要验证其他节点或用户提供的该交易的TxIn1:TXID与TxIn1:VOUT数据的真伪时,仅需要联合该交易的交易识别号TXID与集合{x1,x2,x3,x4,HASH(binW0 1),x9,x10,x11,HASH(binW0 2),x14,x15,HASH(binW0 3),x18,HASH(binW0 4)}中的数据,即可通过哈希计算来验证提供的数据是否确实为该交易中的相应数据。此过程中,所有输入的Unlocking Script与Unlocking Script Size原始数据与所有输出的LockingScript与Locking Script Size原始数据均可以被裁剪,达到缩减数据的目的。
本实施例下,当一个节点或合约需要验证其他节点或用户提供的该交易的TxOut1:Locking Script数据的真伪时,仅需要联合该交易的交易识别号TXID与集合{x1,x2,x3,x4,x5,x6,HASH(binW0 1),x9,x10,x11,HASH(binW0 2),x14,x15,x18,HASH(binW0 4)}中的数据,即可通过哈希计算来验证提供的数据是否确实为该交易中的相应数据。此过程中,所有输入的Unlocking Script与Unlocking Script Size原始数据与第二个输出中的LockingScript与Locking Script Size原始数据均可以被裁剪,达到缩减数据的目的。
本实施例下,当一个节点需要复用TxOut1:Locking Script数据时,可以将该数据使用哈希指针HASH(binW0 3)来存储,当其他交易也具有相同的Locking Script数据时,可以共用此哈希指针指向的数据。
实施例2
本实施例中,在表1的基础上,对原始数据集中的数据进行了两层裁剪,裁剪过程中,保留数据集S和裁剪数据集W的划分如下表3和图3所示。
本实施例中,在第一层裁剪时,交易的每一个输入(TxIn)的Unlocking Script元素与Unlocking Script Size元素组成一个可裁剪数据集,交易的每一个输出(TxOut)的Locking Script元素与Locking Script Size元素组成一个可裁剪数据集。
本实施例中,在第二层裁剪中,跟任意一个交易输入的内容相关的数据元素均同属于一个可裁剪数据集,并且跟任意一个交易输出的内容相关的数据元素均同属于另一个可裁剪数据集。
f1=HASH(binx'),x'∈R(f1)
f2=HASH{bin(f1∪A1)},f1∈R(f2),R(f2)=f1∪A1
f3=HASH{bin(f2∪A2)},f2∈R(f3),R(f3)=f2∪A2
......
fk=HASH{bin(fk-1∪Ak-1)},fk-1∈R(fk),R(fk)=fk-1∪Ak-1,
其中,Aj为包含有任意数据元素的集合或者空集,fj表示哈希值,1≤j≤k;R(fj)表示哈希值fj的原像,所述原像为数据集合或者字符串集合;则,x'为任意一个交易输入中的数据元素时,x'、f1、f2、f3、......、fk均为跟交易输入内容相关的数据元素;x'为任意一个交易输出中的数据元素时,x'、f1、f2、f3、......、fk均为跟交易输出内容相关的数据元素。
具体的,本实施例中,在第二层裁剪中,设置了两个可裁剪数据集,一个W1 1用于收容跟任意一个交易输入的内容相关的数据元素,一个W1 2用于收容跟任意一个交易输出的内容相关的数据元素。
具体实施时,针对第二层及大于第二层的任一层裁剪中,均只设置两个可裁剪数据集,一个用于收容跟任意一个交易输入的内容相关的数据元素,一个用于收容跟任意一个交易输出的内容相关的数据元素。如此,可通过第一层裁剪消减冗余数据,通过第二层及第二层以上的两个可裁剪数据集的划分,使得输入相关数据和输出相关数据相互独立,避免了可裁剪数据集过渡划分的情况,进一步方便了数据的溯源。
表3:实施例2数据裁剪过程中对原始数据集X0的划分。
该实施例中对原始数据集的裁剪过程以公式表示如下:
W0 1={x7,x8},W0 2={x12,x13},W0 3={x16,x17},W0 4={x19,x20},
S0=X0\(W0 1∪W0 2∪W0 3∪W0 4),
X1=S0∪{HASH(binW0 1),HASH(binW0 2),HASH(binW0 3),HASH(binW0 4)},
W1 1={x5,x6,HASH(binW0 1),x9,x10,x11,HASH(binW0 2),x14},
W1 2={x15,HASH(binW0 3),x18,HASH(binW0 4)},
S1={x1,x2,x3,x4},
X2=S1∪{HASH(binW1 1),HASH(binW1 2))。
本实施例下,当一个节点或合约需要验证其他节点或用户提供的该交易的TxIn1:TXID与TxIn1:VOUT数据的真伪时,仅需要联合该交易的交易识别号TXID与集合{x1,x2,x3,x4,HASH(binW0 1),x9,x10,x11,HASH(binW0 2),x14,HASH(binW1 2)}中的数据,即可通过哈希计算来验证提供的数据是否确实为该交易中的相应数据。此过程中,所有输入的UnlockingScript与Unlocking Script Size原始数据与所有的输出数据均可以被裁剪,达到缩减数据的目的。
本实施例下,当一个节点或合约需要验证其他节点或用户提供的该交易的TxOut1:Locking Script数据的真伪时,仅需要联合该交易的交易识别号TXID与集合{x1,x2,x3,x4,HASH(binW1 1),x15,x18,HASH(binW0 4)}中的数据,即可通过哈希计算来验证提供的数据是否确实为该交易中的相应数据。此过程中,所有的输入原始数据与第二个输出中的Locking Script与Locking Script Size原始数据均可以被裁剪,达到缩减数据的目的。
本实施例下,当一个节点需要复用TxOut1:Locking Script数据时,可以将该数据使用哈希指针HASH(binW0 3)来存储,当其他交易也具有相同的Locking Script数据时,可以共用此哈希指针指向的数据。
本实施例下,当一个节点或合约已经确定一个数据的哈希值为HASH(binW1 2)后,因该数据中表示每一个输出的数据段具有相等的字节长度,可以继续将该数据分为相等字节数的前后两部分数据,然后方便且安全地确定前一部分数据为{TxOut1:Value,HASH(binW0 3)}的编码值,后一部分数据为{TxOut2:Value,HASH(binW0 4)}的编码值,然后经过解码即可得到相应的数据。
实施例3
本实施例中,在表1的基础上,对原始数据集中的数据进行了两层裁剪。
本实施例中,交易数据中的计量元素,包括表示交易数据中某元素的字节长度的元素以及表示交易数据中某类型元素的个数的计数元素,不与其计量的目标元素一同被裁剪。具体的实施中,每一个交易输入数据中的Unlocking Script Size元素不与UnlockingScript元素同属于一个可裁剪集,每一个交易输出数据中的Locking Script Size元素不与Locking Script元素同属于一个可裁剪集,InputCount元素不与所有交易输入数据中的TXID同属于一个可裁剪集,OutputCount元素不与所有输出交易数据中的Value元素同属于一个可裁剪集。
具体的,本实施例中,在第一层裁剪时,交易的每一个输入(TxIn)的UnlockingScript元素形成独立的可裁剪数据集,交易的每一个输出(TxOut)的Locking Script元素形成独立的可裁剪数据集。
在本实施例的裁剪过程中,保留数据集S和裁剪数据集W的划分如下表4和图4所示。
表4:实施例3数据裁剪过程中对原始数据集XO的划分。
该实施例中对原始数据集的裁剪过程以公式表示如下:
W0 1={x8},W0 2={x13},W0 3={x17},W0 4={x20},
S0=X0\(W0 1∪W0 2∪W0 3∪W0 4),
X1=S0∪{HASH(binW0 1),HASH(binW0 2),HASH(binW0 3),HASH(binW0 4)},
W1 1={x5,x6,x7,HASH(binW0 1),x9,x10,x11,x12,HASH(binW0 2),x14},
W1 2={x15,x16,HASH(binW0 3),x18,x19,HASH(binW0 4)},
S1={x1,x2,x3,x4},
X2=S1∪{HASH(binW1 1),HASH(binW1 2)}。
本实施例下,当一个节点或合约需要验证其他节点或用户提供的该交易的TxIn1:TXID与TxIn1:VOUT数据的真伪时,仅需要联合该交易的交易识别号TXID与集合{x1,x2,x3,x4,x7,HASH(binW0 1),x9,x10,x11,x12,HASH(binW0 2),x14,HASH(binW1 2)}中的数据,即可通过哈希计算来验证提供的数据是否确实为该交易中的相应数据。此过程中,所有输入的Unlocking Script原始数据与所有的输出数据均可以被裁剪,达到缩减数据的目的。
本实施例下,当一个节点或合约需要验证其他节点或用户提供的该交易的TxOut1:Locking Script数据的真伪时,仅需要联合该交易的交易识别号TXID与集合{x1,x2,x3,x4,HASH(binW1 1),x15,x16,x18,x19,HASH(binW0 4)}中的数据,即可通过哈希计算来验证提供的数据是否确实为该交易中的相应数据。此过程中,所有的输入原始数据与第二个输出中的Locking Script与Locking Script Size原始数据均可以被裁剪,达到缩减数据的目的。
本实施例下,当一个节点需要复用TxOut1:Locking Script数据时,可以将该数据使用哈希指针HASH(binW0 3)来存储,当其他交易也具有相同的Locking Script数据时,可以共用此哈希指针指向的数据。
以上仅为本发明创造的较佳实施例而已,并不用以限制本发明创造,凡在本发明创造的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明创造的保护范围之内。
Claims (7)
1.一种分层裁剪区块链交易内数据的方法,其特征在于,包括以下步骤:
步骤1、获得由多段数据组合形成的原始数据集X0={x1,x2,x3……xn},n表示原始数据集X0中的数据元素的个数;原始数据集X0划分为保留数据集S0和可裁剪数据集其中v0≥1;当应用于UTXO模型下的分布式账本时,在第一层裁剪时,交易的每一个输入(TxIn)的Unlocking Script元素形成独立的可裁剪数据集,交易的每一个输出(TxOut)的Locking Script元素形成独立的可裁剪数据集;
步骤2、根据数据裁剪模型F对原始数据集X0进行z层裁剪,获得目标数据集Xz,z≥1;对原始数据集X0的裁剪过程为:
其中,Xi+1表示原始数据集X0经数据裁剪模型F的i+1层裁剪后的数据,Xi为第i+1层裁剪时数据裁剪模型F的输入数据集,Yi为第i+1层裁剪时数据裁剪模型F的输出数据集,Si和为Xi的子集,Si表示第i+1层裁剪时的保留数据集,其中bi表示第i+1层裁剪时的保留数据集的元素个数;表示第i+1层裁剪时的可裁剪数据集,其中vi表示第i+1层裁剪时需要进行裁剪的数据子集的数量;第i+1层裁剪时的第h个可裁剪数据集记作ci,h为中元素个数;
步骤3:对目标数据集Xz进行序列化编码,获得序列化编码值binXz,并对序列化编码值binXz进行广义的哈希计算,获得目标哈希值HASH(binXz),并将此目标哈希值用作上链时使用的交易识别号TXID;
数据裁剪模型F为:
Y=S∪{HASH(binW1),HASH(binW2),...,HASH(binWv)},
其中,S和W1、W2、……、Wv为输入数据集X的子集,S记作保留数据集,W1、W2、…、Wv记作可裁剪数据集,v表示可裁剪数据集的数量;X={x1,x2,x3……xa},S={s1,s2,s3……sb},a表示输入数据集X中的数据元素的数量,b表示保留数据集S中的数据元素的数量,h表示可裁剪数据集的序号,1≤h≤v,ch表示可裁剪数据集Wh中元素的个数,且ch≥1,binWh表示数据子集Wh的序列化编码值;HASH(binWh)表示binWh的哈希值;Y表示输入数据集X经数据裁剪模型F裁剪后的数据;
HASH(p)表示对数据p进行一次或一次以上嵌套的哈希计算后获得的哈希值;对数据p进行一次哈希计算获得的哈希值记作hash(p),对数据p进行r次嵌套的哈希计算后获得的哈希值记作HASHr(p),HASHr(p)=hash(HASHr-1(p)),r>=1,HASH0(p)=p;hash(HASHr-1(p))中的hash表示对参数HASHr-1(p)进行哈希计算时使用的hash函数,HASHr由r个任意的hash函数嵌套组成;
hash(p)记作窄义的哈希计算,HASH(p)记作广义的哈希计算。
2.如权利要求1所述的分层裁剪区块链交易内数据的方法,其特征在于,X=S∪W1∪W2∪…∪Wv。
3.如权利要求1所述的分层裁剪区块链交易内数据的方法,其特征在于,应用于UTXO模型下的分布式账本时,在第一层裁剪时,交易的每一个输入(TxIn)的Unlocking Script元素与Unlocking Script Size元素组成一个可裁剪数据集,交易的每一个输出(TxOut)的Locking Script元素与Locking Script Size元素组成一个可裁剪数据集。
4.如权利要求1或3所述的分层裁剪区块链交易内数据的方法,其特征在于,应用于UTXO模型下的分布式账本时,在第二层及大于第二层的任一层裁剪中,跟任意一个交易输入的内容相关的数据元素均同属于一个可裁剪数据集,并且跟任意一个交易输出的内容相关的数据元素均同属于另一个可裁剪数据集。
5.如权利要求1所述的分层裁剪区块链交易内数据的方法,其特征在于,S0不为空集。
6.一种分层裁剪区块链交易内数据的系统,其特征在于,包括存储模块和处理器,存储模块中存储有计算机程序,处理器执行所述计算机程序时实现如权利要求1~5任一项所述的分层裁剪区块链交易内数据的方法。
7.一种存储介质,其特征在于,存储有计算机程序,所述计算机程序被执行时实现如权利要求1~5任一项所述的分层裁剪区块链交易内数据的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110682927.8A CN113360578B (zh) | 2021-06-18 | 2021-06-18 | 一种分层裁剪区块链交易内数据的方法、系统和存储介质 |
PCT/CN2022/090567 WO2022262446A1 (zh) | 2021-06-18 | 2022-04-29 | 分层裁剪区块链交易内数据的方法、装置、设备及介质 |
GB2319803.9A GB2622343A (en) | 2021-06-18 | 2022-04-29 | Method and apparatus for hierarchically clipping data in blockchain transaction, and device medium |
US18/543,440 US20240168942A1 (en) | 2021-06-18 | 2023-12-18 | Method and apparatus for hierarchically pruning data in blockchain transaction, device and medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110682927.8A CN113360578B (zh) | 2021-06-18 | 2021-06-18 | 一种分层裁剪区块链交易内数据的方法、系统和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113360578A CN113360578A (zh) | 2021-09-07 |
CN113360578B true CN113360578B (zh) | 2023-04-07 |
Family
ID=77535251
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110682927.8A Active CN113360578B (zh) | 2021-06-18 | 2021-06-18 | 一种分层裁剪区块链交易内数据的方法、系统和存储介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20240168942A1 (zh) |
CN (1) | CN113360578B (zh) |
GB (1) | GB2622343A (zh) |
WO (1) | WO2022262446A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113360578B (zh) * | 2021-06-18 | 2023-04-07 | 中国科学技术大学 | 一种分层裁剪区块链交易内数据的方法、系统和存储介质 |
CN115207785B (zh) * | 2022-09-15 | 2023-02-03 | 四川瑞吉绿能科技有限公司 | 一种配电箱智能防火系统及其方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110727644A (zh) * | 2019-09-29 | 2020-01-24 | 南京金宁汇科技有限公司 | 一种区块链数据裁剪的方法、系统及存储介质 |
WO2020258853A1 (zh) * | 2019-06-28 | 2020-12-30 | 创新先进技术有限公司 | 基于区块链的分级存储方法及装置、电子设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106899412A (zh) * | 2017-03-30 | 2017-06-27 | 北京链银博科技有限责任公司 | 一种区块链隐私保护方法、装置及系统 |
CN109542455B (zh) * | 2018-11-29 | 2021-08-06 | 杭州复杂美科技有限公司 | 合约执行方法、合约精简方法、设备和存储介质 |
KR102046059B1 (ko) * | 2019-03-20 | 2019-11-18 | 엘에스웨어(주) | 블록체인의 정보변경장치 및 방법 |
CN111340496B (zh) * | 2020-05-20 | 2020-10-27 | 南京如般量子科技有限公司 | 一种自动优化历史交易数据的区块链系统及方法 |
CN113360578B (zh) * | 2021-06-18 | 2023-04-07 | 中国科学技术大学 | 一种分层裁剪区块链交易内数据的方法、系统和存储介质 |
-
2021
- 2021-06-18 CN CN202110682927.8A patent/CN113360578B/zh active Active
-
2022
- 2022-04-29 WO PCT/CN2022/090567 patent/WO2022262446A1/zh active Application Filing
- 2022-04-29 GB GB2319803.9A patent/GB2622343A/en active Pending
-
2023
- 2023-12-18 US US18/543,440 patent/US20240168942A1/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020258853A1 (zh) * | 2019-06-28 | 2020-12-30 | 创新先进技术有限公司 | 基于区块链的分级存储方法及装置、电子设备 |
CN110727644A (zh) * | 2019-09-29 | 2020-01-24 | 南京金宁汇科技有限公司 | 一种区块链数据裁剪的方法、系统及存储介质 |
Non-Patent Citations (2)
Title |
---|
Ling Cao et al..Anonymous scheme for blockchain atomic swap based on zero-knowledge proof.IEEE.2020,第371-374页. * |
江云超 ; 何小卫 ; 崔一举 ; .区块链节点存储优化方案.应用科学学报.2020,(01),第123-130页. * |
Also Published As
Publication number | Publication date |
---|---|
GB202319803D0 (en) | 2024-02-07 |
US20240168942A1 (en) | 2024-05-23 |
GB2622343A (en) | 2024-03-13 |
CN113360578A (zh) | 2021-09-07 |
WO2022262446A1 (zh) | 2022-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113360578B (zh) | 一种分层裁剪区块链交易内数据的方法、系统和存储介质 | |
US10031806B2 (en) | Efficient repair of erasure coded data based on coefficient matrix decomposition | |
Thompson | The irregular set for maps with the specification property has full topological pressure | |
US11522673B2 (en) | Method and device for blockchain full sharding based on a P2P storage network and a multi-layer architecture | |
US8782734B2 (en) | Semantic controls on data storage and access | |
EP3076310B1 (en) | Variable virtual split dictionary for search optimization | |
CN113468199B (zh) | 索引更新方法及系统 | |
CN112667860A (zh) | 一种子图匹配方法、装置、设备及存储介质 | |
CN101689239B (zh) | 安全令牌和生成该安全令牌并对其解码的系统及方法 | |
WO2022095574A1 (zh) | 一种基于区块链的资源共享的方法及装置 | |
US11449628B2 (en) | System and method for data security grading | |
CN104645610A (zh) | 一种游戏对象标识码的编码方法及系统 | |
US7624326B2 (en) | Encoding device and method, decoding device and method, program, and recording medium | |
CN116186640A (zh) | 企业数据治理的迭代优化方法及系统 | |
CN114398980A (zh) | 跨模态哈希模型的训练方法、编码方法、装置及电子设备 | |
CN112486412A (zh) | 一种基于分布式对象存储系统安全的信息分散方法及系统 | |
CN108733363A (zh) | 数字卫星载荷情报编码解码源代码书写方法 | |
CN115361454B (zh) | 消息序列编码、解码、传输方法及编码、解码设备 | |
Anily et al. | Ranking the best binary trees | |
CN101930451A (zh) | 用于存储高效地搜索至少一个询问数据元素的方法和装置 | |
CN117056342B (zh) | 一种基于区块链的数据处理方法及相关设备 | |
Kruglik | Secure MBR array codes in the presence of special type eavesdropper | |
US20230010912A1 (en) | Utilizing array field distribution data in database systems | |
Mital et al. | Functional broadcast repair of multiple partial failures in wireless distributed storage systems | |
CN117972781A (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 |