US 11,841,957 B2
Implementation of a file system on a block chain
Jonathan Andrew Crockett Moore, Portland, OR (US)
Assigned to SpiderOak, Inc., Lenexa, KS (US)
Filed by SpiderOak, Inc., Lenexa, KS (US)
Filed on Dec. 23, 2022, as Appl. No. 18/088,119.
Application 18/088,119 is a continuation of application No. 17/843,156, filed on Jun. 17, 2022, granted, now 11,544,392.
Application 17/843,156 is a continuation of application No. 17/359,252, filed on Jun. 25, 2021, granted, now 11,568,068.
Application 17/359,252 is a continuation of application No. 17/180,442, filed on Feb. 19, 2021, granted, now 11,087,016, issued on Aug. 10, 2021.
Claims priority of provisional application 63/068,051, filed on Aug. 20, 2020.
Prior Publication US 2023/0125725 A1, Apr. 27, 2023
Int. Cl. G06F 21/60 (2013.01); G06F 21/31 (2013.01); G06F 21/62 (2013.01); G06F 21/57 (2013.01); H04L 9/06 (2006.01); H04L 9/32 (2006.01); H04L 9/40 (2022.01); H04L 9/00 (2022.01)
CPC G06F 21/604 (2013.01) [G06F 21/31 (2013.01); G06F 21/57 (2013.01); G06F 21/602 (2013.01); G06F 21/6218 (2013.01); H04L 9/0643 (2013.01); H04L 9/3213 (2013.01); H04L 9/3297 (2013.01); H04L 63/08 (2013.01); G06F 2221/2107 (2013.01); G06F 2221/2141 (2013.01); H04L 9/50 (2022.05)] 20 Claims
OG exemplary drawing
 
1. A computer-implemented cryptographic method for generating a temporal permission for accessing encrypted data by a cryptographic token, the method comprising:
generating, by a computer system, a plurality of blocks for a block chain controlling access to the encrypted data;
generating a cryptographic hash tree comprising a plurality of endpoints representing the plurality of blocks,
wherein only a subset of the plurality of blocks are members of the cryptographic hash tree,
wherein each block of the plurality of blocks comprises a wall clock field, a sequence clock field, and a root of the cryptographic hash tree, and
wherein the wall clock field is indicated by a clock of a server storing the block chain;
generating the temporal permission for the cryptographic token based on a particular sequence clock field of the plurality of blocks;
incorporating the temporal permission into the cryptographic token to prevent access to the encrypted data by the cryptographic token after a particular time specified by the particular sequence clock field has passed; and
sending the cryptographic token to a user device for use in accessing the encrypted data.