Skip to content

Algorithm flowcharts

Tim Hobson edited this page Oct 30, 2022 · 1 revision

Verification

Timestamp verification (simplified)

%%
%% DID TIMESTAMP VERIFICATION (SIMPLIFIED)
%%
flowchart TD
    %%% Simplified version
    S1["Given a DID"] -->
    S2["Get the DID's Bitcoin transaction"] -->
    PK1["Extract the IPFS address from the OP_RETURN"] -->
    PK2["Retrieve the DID document from IPFS"] -->
    PK3["Hash the DID document (including public keys)"] -->
    PK4["Check the hash matches the IPFS address"] -->
    PK["This proves that the public keys have not <br> changed since the transaction was mined"]
    style PK fill:#6BD09D,stroke:#333,stroke-width:4px
    S2 --> TS1["Get the corresponding Bitcoin block header"] -->
    TS2["Get the Merkle proof for the transaction"] -->
    TS3["Verify that the Merkle proof produces <br> the Merkle root contained in the header"] -->
    TS4["Get the block timestamp from the header"] -->
    TS["This proves that the transaction is <br> contained in the block with this timestamp"]
    style TS fill:#6BD09D,stroke:#333,stroke-width:4px
Loading