Graph Aware Sync Protocol
Ragnar Friedman ragnar.friedman@proton.me
Abstract
GASP is designed to synchronize transaction data between two parties in a blockchain environment. It ensures the legitimacy and completeness of transaction data using a recursive reconciliation method.
Participants
Alice: Initiates the sync process.
Bob: Responds and participates in the sync process.
Protocol Steps
Initialization
Alice starts by sending a bloom filter containing all current spendable TXID+VOUTs as elements.
Receiving and Building List
Bob receives the filter and builds a list of his items that are not members of the set.
Transaction Verification
Bob sends an INV (Inventory) message to Alice for each item not in the set.
The INV includes:
Output, transaction, and associated merkle proof.
Any metadata (such as labels, descriptions, or local timestamps) associated with transactions or outputs.
A list of VOUTs spent by its inputs and associated metadata hashes.
The preimage for each hash, including all metadata and the merkle proof or broadcast response.
Alice's Response
For each INV, Alice responds with a list of input transactions she does not know about.
If Alice has the transaction but the metadata hash differs, she requests updated metadata.
If Alice lacks the transaction, she requests the entire transaction.
Recursive Transaction Sync
Bob responds to Alice's requests with an INV containing the encompassing transaction, done recursively.
When including the full transaction, all metadata is provided.
When only metadata is included, it encompasses the list of spent VOUTs and associated metadata hashes.
Error Handling and Recovery
In case of errors, affected transactions are ignored and not synced.
If errors prevent a party from fully anchoring transactions back to the blockchain, these transactions are ignored.
Failures experienced by one party are not communicated to the other due to the declaratory nature of the protocol.
Finalization of Sync
The process continues until there are no more INVs for Bob to send.
Once complete, all of Bob's records are considered synced with Alice.
Role Reversal
The roles reverse, with Bob sending Alice a bloom filter.
The parties then exchange data in the other direction, following the same steps.
Security Measures
Verification of merkle proofs and the longest chain of block headers.
Recursively requesting information until all inputs are fully proven.
Invalidating transactions that cannot be linked back to a valid proof.
Notes
The protocol is adaptable to various blockchain environments.
The recursive nature ensures thorough and complete data synchronization.
The protocol emphasizes security, efficiency, and data integrity.
Conclusion
GASP offers a robust and secure method for synchronizing transaction data between parties in a blockchain network, leveraging recursive data exchange and thorough verification mechanisms.
Last updated