US11456858B2ActiveUtilityA1
Bidirectionally linked blockchain structure
Est. expiryOct 19, 2037(~11.3 yrs left)· nominal 20-yr term from priority
G06F 21/602H04L 9/3073H04L 9/3239G06F 21/64H04L 9/3247H04L 9/50H04L 9/0825H04L 9/0637
62
PatentIndex Score
1
Cited by
47
References
19
Claims
Abstract
The invention relates to a method for the tamper-proof storing of data in a bidirectionally linked blockchain structure. The method comprises the steps of creating an additional block Bi to extend the blockchain structure which comprises the data to be stored as payload data creating a bidirectional linking of the additional block Bi to a predefined number of preceding blocks, wherein creating the bidirectional linking comprises performing a backward linking of the additional block to the predefined number of preceding blocks and performing a forward linking of the predefined number of preceding blocks to the additional block.
Claims
exact text as granted — not AI-modifiedThe invention claimed is:
1. A method for tamper-proof storing of data in an electronic store using a bidirectionally linked blockchain structure,
wherein the blockchain structure comprises a plurality of blocks, each comprising payload data and link data, wherein the payload data of each block of the blockchain structure are verifiable by means of the link data of a predefined number of blocks of the blockchain structure to which a corresponding block is bidirectionally linked,
the method comprising the steps of:
providing the bidirectionally linked blockchain structure;
providing the data to be stored;
creating an additional block B i to extend the blockchain structure which comprises the data to be stored as payload data;
creating a bidirectional linking of the additional block B i to a predefined number of preceding blocks that precede the additional block in the blockchain structure;
wherein creating the bidirectional linking comprises performing a backward linking of the additional block to the predefined number of preceding blocks and performing a forward linking of the predefined number of preceding blocks to the additional block,
where the backward linking comprises the steps of:
calculating a check value of the data to be stored;
extracting a number of first groups with check value portions from the check value of the data to be stored, wherein the number of first groups corresponds to the predefined number of preceding blocks;
storing the check value portions of the first groups in distributed form in the link data of each of the blocks of the predefined number of preceding blocks according to a distribution scheme, the distribution scheme being dependent on the data to be stored,
wherein the forward linking for each individual block of the predefined number of preceding blocks comprises the steps of:
calculating a check value of the payload data of a corresponding preceding block;
extracting a second group with check value portions from the check value of the payload data of the corresponding preceding block;
storing the check value portions of the second group in distributed form in the link data of the additional block according to a distribution scheme, the distribution scheme being dependent on the payload data of the corresponding preceding block.
2. The method according to claim 1 , wherein each block of the blockchain structure is bidirectionally linked to a plurality of preceding and/or succeeding blocks of the blockchain structure, wherein two bidirectionally linked blocks each comprise link data which are dependent on the payload data of another block of the two bidirectionally linked blocks.
3. The method according to claim 1 , wherein the method, prior to creating the bidirectional linking, further comprises the steps of:
dividing the data to be stored into a plurality of data records;
calculating a check value for each of the data records;
storing the check values of the data records as link data in the additional block B i ;
wherein the storing of the check value portions in the link data comprises in each case an at least partial overwriting of portions of existing link data.
4. The method according to claim 3 , wherein the dividing of the data to be stored comprises a dividing of the data D i to be stored in the additional block B i of the blockchain structure into b data records of equal length, and
wherein a hash value H X is calculated as check value for each of the data records:
H x=1, . . . ,b =H (⊖ x=1, . . . ,b b ( D i )),
where ⊖ 1 r (s) is the 1 th data portion of a character sequence s when the character sequence s is divided into r data portions of equal length and H(⊖ 1 r (s)) denotes the hash value of the 1 th data portion.
5. The method according to claim 3 , wherein the storing of the check values of the data records further comprises the steps of:
creating an error correction code for the check values of the data records to be stored;
storing the error correction code as link data in the additional block B i .
6. The method according to claim 5 , wherein the check values to be stored are arranged in two sequences V 1 and V 2 of the link data and the error correction code is generated as a third sequence V 3 of the link data in the form of a bitwise XOR operation of the first two sequences:
V 3 [ x ]=XOR( V 1 [ x ], V 2 [ x ]),
where x denotes an x th bit in a particular sequence.
7. The method according to claim 1 , wherein each block of the blockchain structure is assigned an owner, wherein each of the owners is assigned an asymmetric cryptographic key pair comprising a private and a public cryptographic key,
wherein the first and second groups with check value portions are each encrypted with the private cryptographic key of the owner assigned to the block of the blockchain structure in whose link data the check value portions of the corresponding group are stored.
8. The method according to claim 1 , wherein the first and second groups with check value portions are each stored bitwise distributed in the link data of corresponding blocks of the blockchain structure.
9. The method according to claim 1 , wherein the number of check value portions in the first groups varies in each case depending on a distance of a block of the blockchain structure, in whose link data the check value portions of the corresponding group are stored, from the additional block B i , and
wherein the number of check value portions in the second groups varies in each case as a function of the distance of the block of the blockchain structure, from whose useful data the check value portions of the corresponding group have been calculated and extracted, from the additional block B i .
10. The method according to claim 9 , wherein the creation of the bidirectional linking of the additional block B i comprises a bidirectional linking to k blocks B v of the blockchain structure with v=i−x and x=1, . . . , k which immediately precede the additional block B i ,
wherein for backward linking for each of the k blocks B v backward link data Ve rw are calculated from the data D i to be stored, with
Ve rw =E (Ø x 1 ( H ( B i ·D i )), O ( B v )· K Pr ),
where H(B i ·D i ) denotes a hash value of the data D i of block B i ,Ø x g (s) denotes a selection and stringing together of every x th character from a character sequence s starting at offset g, O(B v )·K Pr denotes a private cryptographic key K Pr of an owner O(B v ) of the block B v and E(m, K) denotes a character sequence m encrypted with the cryptographic key K,
for the backward link data Ve rw a positioner Po rw for backward linking with
Po rw =E (Ø x 1 ( H (⊕(⊖ 2 2 ( B i ·D i ),⊖ 1 2 ( B i ·D i )))), O ( B v )· K Pr )
is calculated and implements a distribution scheme dependent on the data D i to be stored, wherein ⊕(s 1 , s 2 ) denotes a sequence of the character sequences s 1 and s 2 ,
where the link data of the k blocks B v are each stored in w ∈ portions, and wherein the backward link for each of the k blocks B v comprises the following method steps starting with p=0, q=1:
1) q=(((q+Po rw [p]+1) % w)+1),
2
)
B
v
·
V
q
[
o
+
p
]
=
V
e
r
w
[
p
]
with
o
=
(
∑
j
=
1
,
…
,
x
❘
"\[LeftBracketingBar]"
V
1
❘
"\[RightBracketingBar]"
2
i
)
+
1
,
3) p=p+1, if p≤|Ve rw |, where |Ve rw | is the length of the backward link data Ve rw , the backward linking is continued with step 1), otherwise the execution of the backward linking for the corresponding block B v is terminated,
wherein for forward linking for each of the k blocks B v forward link data Ve vw is calculated from the data D v of the corresponding block B v with
Ve vw =E (Ø x 1 ( H ( B v ·D v )), O ( B i )· K Pr ),
for the forward link data Ve rw a positioner Po rw for backward linking with
Po vw =E (Ø x 1 ( H (⊕(⊖ 2 2 ( B v ·D v )), H (⊖ 1 2 ( B v ·D v )))), O ( B i )· K Pr )
is calculated,
where the link data of the additional block B i are divided into w E portions and the forward linking for each of the k blocks B v comprises the following method steps starting with p=0, q=1:
1) q=(((q+Po vw [p]+1) % w)+1),
2
)
B
i
·
V
q
[
o
+
p
]
=
V
e
r
w
[
p
]
with
o
=
(
∑
j
=
1
,
…
,
x
❘
"\[LeftBracketingBar]"
V
1
❘
"\[RightBracketingBar]"
2
i
)
+
1
,
if
x
≥
2
,
otherwise
o
=
1
,
3) p=p+1, if p≤|Ve vw |, where |Ve vw | is the length of the forward link data Ve rw , the method is continued with step 1), otherwise the execution of the forward linking for the corresponding block By is terminated.
11. The method according to claim 1 , wherein the method further comprises verifying a block of the blockchain structure, wherein the verification comprises the steps of:
dividing the payload data of the block to be verified into a plurality of data records;
calculating a check value for each of the data records;
comparing the calculated check values with the check values of the payload data of the block to be verified, wherein the check values of the payload data of the block to be verified are reconstructed from the link data of the block to be verified using an error correction code.
12. The method according to claim 11 , wherein the verification also comprises the steps of:
calculating at least a part of the check value portions which are created using the user data of the block to be verified and are stored in distributed form in the link data of those further blocks of the blockchain structure which are linked bidirectionally to the block to be verified,
comparing the calculated check value portions with the stored check value portions, wherein the block to be verified is successfully verified in the case of a match of the compared check value portions.
13. The method according to claim 11 , wherein the calculation of the check values and/or check value portions is carried out during the course of the verification using a hash function.
14. The method according to claim 11 , wherein the calculation of the check value portions during the course of the verification comprises the steps of:
encrypting the check value portions in each case with the private cryptographic key of the owner assigned to the block of the blockchain structure in whose link data the corresponding check value portions are stored.
15. The method according to claim 1 , wherein the data to be stored comprise data which are characterising for content of a digitally coded document, the providing the data to be stored comprising a receipt of the data by means of a communications interface via a network from a computer system creating the digitally coded document, the method also comprising the steps of:
receiving a request for a current version of the blockchain structure by means of the communications interface via the network from a requesting computer system;
sending the extended blockchain structure by means of the communications interface via the network to the requesting computer system in response to the received request.
16. The method according to claim 1 , wherein the data to be stored comprise data of a transaction, the providing the data to be stored comprising a receipt of the data by means of a communications interface via a network from a computer system involved in the execution of the transaction, the method also comprising the steps of:
receiving a request for a current version of the blockchain structure by means of the communications interface via the network from a requesting computer system;
sending the extended blockchain structure by means of the communications interface via the network to the requesting computer system in response to the received request.
17. The method according to claim 1 , wherein the data to be stored comprise status data of a device, the providing the data to be stored comprising a receipt of the data by means of a communications interface via a network from a computer system detecting the status data by means of a sensor, the method also comprising the steps of:
receiving a request for a current version of the blockchain structure by means of the communications interface via the network from a requesting computer system;
sending the extended blockchain structure by means of the communications interface via the network to the requesting computer system in response to the received request.
18. An electronic data storage system for tamper-proof storing of data in a bidirectionally linked blockchain structure,
wherein the blockchain structure comprises a plurality of blocks, each comprising payload data and link data, wherein the payload data of each block of the blockchain structure are verifiable by means of the link data of a predefined number of blocks of the blockchain structure to which a corresponding block is bidirectionally linked,
wherein the data storage system comprises a processor and an electronic store with machine-readable instructions, wherein an execution of the machine-readable instructions by the processor prompts the data storage system to execute a method comprising the steps of:
providing the bidirectionally linked blockchain structure;
providing the data to be stored;
creating an additional block B i to extend the blockchain structure which comprises the data to be stored as payload data;
creating a bidirectional linking of the additional block B i , to a predefined number of preceding blocks that precede the additional block in the blockchain structure; wherein creating the bidirectional linking comprises performing a backward linking of the additional block to the predefined number of preceding blocks and performing a forward linking of the predefined number of preceding blocks to the additional block,
where the backward linking comprises the steps of:
calculating a check value of the data to be stored;
extracting a number of first groups with check value portions from the check value of the data to be stored, wherein the number of first groups corresponds to the predefined number of preceding blocks;
storing of the check value portions of the first groups in distributed form in the link data of each of the blocks of the predefined number of preceding blocks according to a distribution scheme, the distribution scheme being dependent on the data to be stored,
wherein the forward linking for each individual block of the predefined number of preceding blocks comprises the steps of:
calculating a check value of the payload data of a corresponding preceding block;
extracting a second group with check value portions from the check value of the payload data of the corresponding preceding block;
distributed storage of the check value portions of the second group in the link data of the additional block according to a distribution scheme, the distribution scheme being dependent on the payload data of the corresponding preceding block.
19. A telecommunications system which comprises an electronic data storage system for tamper-proof storing of data in a bidirectionally linked blockchain structure and a communications interface for communication via a network,
wherein the blockchain structure comprises a plurality of blocks, each comprising payload data and link data, wherein the payload data of each block of the blockchain structure are verifiable by means of the link data of a predefined number of blocks of the blockchain structure to which a corresponding block is bidirectionally linked,
wherein the data storage system comprises a processor and an electronic store with machine-readable instructions, wherein an execution of the machine-readable instructions by the processor prompts the data storage system to execute a method comprising the steps of:
providing the bidirectionally linked blockchain structure;
providing the data to be stored;
creating an additional block B i to extend the blockchain structure which comprises the data to be stored as payload data;
creating a bidirectional linking of the additional block B i to a predefined number of preceding blocks that precede the additional block in the blockchain structure; wherein creating the bidirectional linking comprises performing a backward linking of the additional block to the predefined number of preceding blocks and performing a forward linking of the predefined number of preceding blocks to the additional block,
where the backward linking comprises the steps of:
calculating a check value of the data to be stored;
extracting a number of first groups with check value portions from the check value of the data to be stored, wherein the number of first groups corresponds to the predefined number of preceding blocks;
storing of the check value portions of the first groups in distributed form in the link data of each of the blocks of the predefined number of preceding blocks according to a distribution scheme, the distribution scheme being dependent on the data to be stored,
wherein the forward linking for each individual block of the predefined number of preceding blocks comprises the steps of:
calculating a check value of the payload data of a corresponding preceding block;
extracting a second group with check value portions from the check value of the payload data of the corresponding preceding block;
distributed storage of the check value portions of the second group in the link data of the additional block according to a distribution scheme, the distribution scheme being dependent on the payload data of the corresponding preceding block,
wherein the providing the data to be stored comprises a receipt of the data by means of the communications interface via the network, the executed method also comprising the steps of:
receiving a request for a current version of the blockchain structure by means of the communications interface via the network from a requesting telecommunications system;
sending the extended blockchain structure by means of the communications interface via the network to the requesting telecommunications system in response to the received request.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.