generalizing blocksci to cross chain analyses of forked
play

Generalizing BlockSci to Cross-Chain Analyses of Forked Ledgers - PowerPoint PPT Presentation

Generalizing BlockSci to Cross-Chain Analyses of Forked Ledgers Masters Thesis Defensio , September 14 th 2020 Martin Plattner, Universitt Innsbruck martin@mplattner.at Agenda Motivation Implementing the Multi-Chain Mode for


  1. Generalizing BlockSci to Cross-Chain Analyses of Forked Ledgers Master’s Thesis Defensio , September 14 th 2020 Martin Plattner, Universität Innsbruck martin@mplattner.at

  2. Agenda Motivation ● Implementing the Multi-Chain Mode for BlockSci ● Cross-Chain Address Clustering ● Conclusion ●

  3. Motivation and Preliminaries

  4. Generalizing BlockSci to Cross-Chain Analyses of Forked Ledgers Motivation

  5. Generalizing BlockSci to Cross-Chain Analyses of Forked Ledgers Motivation BLOCK 1 BLOCK 2 BLOCK 3 BLOCK x Ledger tx1, tx2, ... tx1, tx2, ... tx1, tx2, ... tx1, tx2, ...

  6. Generalizing BlockSci to Cross-Chain Analyses of Forked Ledgers Motivation Single-chain analysis BLOCK 1 BLOCK 2 BLOCK 3 BLOCK x Ledger tx1, tx2, ... tx1, tx2, ... tx1, tx2, ... tx1, tx2, ...

  7. Generalizing BlockSci to Cross-Chain Analyses of Forked Ledgers Motivation Single-chain analysis BLOCK 1 BLOCK 2 BLOCK 3 BLOCK x Ledger tx1, tx2, ... tx1, tx2, ... tx1, tx2, ... tx1, tx2, ... BlockSci Blockchain analysis tool

  8. Generalizing BlockSci to Cross-Chain Analyses of Forked Ledgers Motivation Single-chain analysis BLOCK 1 BLOCK 2 BLOCK 3 BLOCK x Ledger tx1, tx2, ... tx1, tx2, ... tx1, tx2, ... tx1, tx2, ... BlockSci Blockchain analysis tool BLOCK 1 BLOCK 2 BLOCK 3 BLOCK x Forked Ledger tx1, tx2, ... tx1, tx2, ... tx1, tx2, ... tx1, tx2, ... Bitcoin Cash (Aug 2017) Hard-Fork due to changed rules

  9. Generalizing BlockSci to Cross-Chain Analyses of Forked Ledgers Motivation Single-chain analysis BLOCK 1 BLOCK 2 BLOCK 3 BLOCK x Ledger tx1, tx2, ... tx1, tx2, ... tx1, tx2, ... tx1, tx2, ... O I BlockSci Blockchain analysis tool BLOCK 1 BLOCK 2 BLOCK 3 BLOCK x Forked Ledger tx1, tx2, ... tx1, tx2, ... tx1, tx2, ... tx1, tx2, ... I Bitcoin Cash (Aug 2017) Hard-Fork due to changed rules

  10. Generalizing BlockSci to Cross-Chain Analyses of Forked Ledgers Motivation Cross-chain analysis BLOCK 1 BLOCK 2 BLOCK 3 BLOCK x Ledger tx1, tx2, ... tx1, tx2, ... tx1, tx2, ... tx1, tx2, ... BlockSci Blockchain analysis tool BLOCK 1 BLOCK 2 BLOCK 3 BLOCK x Forked Ledger tx1, tx2, ... tx1, tx2, ... tx1, tx2, ... tx1, tx2, ... Bitcoin Cash (Aug 2017) Hard-Fork due to changed rules

  11. Generalizing BlockSci to Cross-Chain Analyses of Forked Ledgers Motivation Cross-chain analysis BLOCK 1 BLOCK 2 BLOCK 3 BLOCK x Ledger BlockSci tx1, tx2, ... tx1, tx2, ... tx1, tx2, ... tx1, tx2, ... Blockchain analysis tool + multi-chain mode BLOCK 1 BLOCK 2 BLOCK 3 BLOCK x Forked Ledger tx1, tx2, ... tx1, tx2, ... tx1, tx2, ... tx1, tx2, ... Main contribution Multi-chain mode for BlockSci

  12. BlockSci BlockSci parser

  13. BlockSci Optimized blockchain data on disk BlockSci parser

  14. Optimized blockchain data (in memory) BLOCK 1 BLOCK 2 BLOCK 3 BLOCK x tx1, tx2, ... tx1, tx2, ... tx1, tx2, ... tx1, tx2, ... BlockSci mmap() Optimized blockchain data on disk BlockSci parser

  15. Optimized blockchain data (in memory) BLOCK 1 BLOCK 2 BLOCK 3 BLOCK x tx1, tx2, ... tx1, tx2, ... tx1, tx2, ... tx1, tx2, ... BlockSci mmap() Optimized blockchain data on disk BlockSci parser

  16. Optimized blockchain data (in memory) BLOCK 1 BLOCK 2 BLOCK 3 BLOCK x BLOCK 1 BLOCK 2 BLOCK 3 BLOCK x tx1, tx2, ... tx1, tx2, ... tx1, tx2, ... tx1, tx2, ... tx1, tx2, ... tx1, tx2, ... tx1, tx2, ... tx1, tx2, ... Goal mmap() Optimized blockchain data on disk BlockSci parser

  17. Implementing the Multi-Chain Mode Requirements, Required Changes, Evaluation

  18. Requirements Type No. Requirement Priority 1 Normalized addresses MUST 2 BTC and BCH support MUST Functional 3 Flexible configuration MUST 4 Anticipate cross-chain queries MUST 1 Optimize memory consumption MUST 2 Maintain high performance SHOULD Non-functional 3 Backwards compatibility (API) SHOULD 4 Extensibility SHOULD

  19. BLOCK 1 BLOCK 2 BLOCK 3 BLOCK x tx1, tx2, ... tx1, tx2, ... tx1, tx2, ... tx1, tx2, ... A3 A3 BLOCK 3 BLOCK x Requirements tx1, tx2, ... tx1, tx2, ... A3 Type No. Requirement Priority 1 Normalized addresses MUST 2 BTC and BCH support MUST Functional 3 Flexible configuration MUST 4 Anticipate cross-chain queries MUST 1 Optimize memory consumption MUST 2 Maintain high performance SHOULD Non-functional 3 Backwards compatibility (API) SHOULD 4 Extensibility SHOULD

  20. BLOCK 1 BLOCK 2 BLOCK 3 BLOCK x tx1, tx2, ... tx1, tx2, ... tx1, tx2, ... tx1, tx2, ... A3 A3 BLOCK 3 BLOCK x Requirements tx1, tx2, ... tx1, tx2, ... A3 Type No. Requirement Priority 1 Normalized addresses MUST 2 BTC and BCH support MUST Functional 3 Flexible configuration MUST 4 Anticipate cross-chain queries MUST 1 Optimize memory consumption MUST 2 Maintain high performance SHOULD Non-functional 3 Backwards compatibility (API) SHOULD 4 Extensibility SHOULD

  21. BLOCK 1 BLOCK 2 BLOCK 3 BLOCK x tx1, tx2, ... tx1, tx2, ... tx1, tx2, ... tx1, tx2, ... A3 A3 BLOCK 3 BLOCK x Requirements tx1, tx2, ... tx1, tx2, ... A3 BLOCK x tx1, tx2, ... Type No. Requirement Priority 1 Normalized addresses MUST 2 BTC and BCH support MUST Functional 3 Flexible configuration MUST 4 Anticipate cross-chain queries MUST 1 Optimize memory consumption MUST 2 Maintain high performance SHOULD Non-functional 3 Backwards compatibility (API) SHOULD 4 Extensibility SHOULD

  22. BLOCK 1 BLOCK 2 BLOCK 3 BLOCK x tx1, tx2, ... tx1, tx2, ... tx1, tx2, ... tx1, tx2, ... O I BLOCK 3 BLOCK x Requirements tx1, tx2, ... tx1, tx2, ... I O Output.getSpendingInputs() → [ , ] I I Type No. Requirement Priority 1 Normalized addresses MUST 2 BTC and BCH support MUST Functional 3 Flexible configuration MUST 4 Anticipate cross-chain queries MUST 1 Optimize memory consumption MUST 2 Maintain high performance SHOULD Non-functional 3 Backwards compatibility (API) SHOULD 4 Extensibility SHOULD

  23. BLOCK 1 BLOCK 2 BLOCK 3 BLOCK x tx1, tx2, ... tx1, tx2, ... tx1, tx2, ... tx1, tx2, ... BLOCK 1 BLOCK 2 BLOCK 3 BLOCK x Requirements tx1, tx2, ... tx1, tx2, ... tx1, tx2, ... tx1, tx2, ... Type No. Requirement Priority 1 Normalized addresses MUST 2 BTC and BCH support MUST Functional 3 Flexible configuration MUST 4 Anticipate cross-chain queries MUST 1 Optimize memory consumption MUST 2 Maintain high performance SHOULD Non-functional 3 Backwards compatibility (API) SHOULD 4 Extensibility SHOULD

  24. Requirements Type No. Requirement Priority 1 Normalized addresses MUST 2 BTC and BCH support MUST Functional 3 Flexible configuration MUST 4 Anticipate cross-chain queries MUST 1 Optimize memory consumption MUST 2 Maintain high performance SHOULD Non-functional 3 Backwards compatibility (API) SHOULD 4 Extensibility SHOULD

  25. Requirements Type No. Requirement Priority 1 Normalized addresses MUST 2 BTC and BCH support MUST Functional 3 Flexible configuration MUST 4 Anticipate cross-chain queries MUST 1 Optimize memory consumption MUST 2 Maintain high performance SHOULD Non-functional 3 Backwards compatibility (API) SHOULD 4 Extensibility SHOULD

  26. Requirements Type No. Requirement Priority 1 Normalized addresses MUST 2 BTC and BCH support MUST Functional 3 Flexible configuration MUST 4 Anticipate cross-chain queries MUST 1 Optimize memory consumption MUST 2 Maintain high performance SHOULD Non-functional 3 Backwards compatibility (API) SHOULD 4 Extensibility SHOULD

  27. Required Changes Parser Data layout Analysis library multi-chain mode chain-specific data handle new layout cross-chain address share common data shareable data de-duplication in memory Config file support links between chains

  28. Required Changes Parser Data layout Analysis library multi-chain mode chain-specific data handle new layout cross-chain address share common data shareable data de-duplication in memory # /bch/config.json "chainConfig": { "coinName": "bitcoin_cash", Config file "dataDirectory": "/bch/", "parentChainConfigPath": "/btc/config.json", "firstForkedBlockHeight": 478559, support links between chains "pubkeyPrefix": [0], "scriptPrefix": [5], "segwitActivationHeight": 481824, "segwitPrefix": "bc" }

  29. Required Changes Parser Data layout Analysis library multi-chain mode chain-specific data handle new layout cross-chain address share common data shareable data de-duplication in memory Config file support links between chains

  30. BLOCK 1 BLOCK 2 BLOCK 3 BLOCK x tx1, tx2, ... tx1, tx2, ... tx1, tx2, ... tx1, tx2, ... A3 A3 BLOCK 3 BLOCK x Required Changes tx1, tx2, ... tx1, tx2, ... A3 Parser Data layout Analysis library multi-chain mode chain-specific data handle new layout cross-chain address share common data shareable data de-duplication in memory Config file support links between chains

  31. BLOCK 1 BLOCK 2 BLOCK 3 BLOCK x tx1, tx2, ... tx1, tx2, ... tx1, tx2, ... tx1, tx2, ... BLOCK 3 BLOCK x Required Changes tx1, tx2, ... tx1, tx2, ... Parser Data layout Analysis library multi-chain mode chain-specific data handle new layout cross-chain address share common data shareable data de-duplication in memory Config file support links between chains

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend