[论文解读] BlockSci: Design and applications of a blockchain analysis platform
BlockSci 是一个开源的内存中区块链分析平台,支持多条区块链,提供 Python(Jupyter)和 C++ 接口,并具备内置分析功能以加速研究和商业分析。它比现有工具快得多,并集成了 mempool 和汇率数据。
Analysis of blockchain data is useful for both scientific research and commercial applications. We present BlockSci, an open-source software platform for blockchain analysis. BlockSci is versatile in its support for different blockchains and analysis tasks. It incorporates an in-memory, analytical (rather than transactional) database, making it several hundred times faster than existing tools. We describe BlockSci's design and present four analyses that illustrate its capabilities. This is a working paper that accompanies the first public release of BlockSci, available at https://github.com/citp/BlockSci. We seek input from the community to further develop the software and explore other potential applications.
研究动机与目标
- 实现区块链数据在科学研究和商业研究中的快速、灵活分析。
- 提供一个通用接口和高效解析器以支持多条区块链。
- 提供内置分析功能(例如地址聚类、CoinJoin检测)和数据源(mempool、汇率)以获得更丰富的分析。
- 提供直观的用户界面(Jupyter 笔记本)和高性能的 C++ 内核,以在易用性和速度之间取得平衡。
提出的方法
- 将区块链视为适用于内存分析数据库的追加只读静态快照,而不是传统事务数据库。
- 开发高性能、空间和时间效率的解析器,将多样化的区块链转换为通用的内部格式,并采用优化的数据布局(如指针样链接、定长编码、去重地址)。
- 提供内存中交易图,支持可并行化的 mapreduce 风格查询,以及用于局部性和可扩展性的内存映射数据布局。
- 暴露 Python(通过 Jupyter)界面以便探索,以及用于性能关键任务的 C++ 界面;支持内联 C++ 和基于选择器的查询选项以加速工作流。
- 通过通用 API 支持额外的数据源(mempool 数据、汇率)和多条区块链,且正在制定更多脚本类型和山寨币的计划。
实验结果
研究问题
- RQ1如何在内存分析数据库下实现对区块链数据的高效大规模分析?
- RQ2在代表性查询下,<BlockSci> 相比现有区块链分析工具的性能提升是多少?
- RQ3数据集成(mempool、汇率)如何提升对区块链经济学和用户行为的分析?
- RQ4在多条区块链中,地址联接和脚本解析在多大程度上可以提升隐私保护和取证分析?
主要发现
- BlockSci 在区块链分析方面比现有工具快15x–600x。
- 它使用内存分析模型加载并分析区块链,能够快速进行 mapreduce 风格的查询。
- 它通过一个通用导入器和格式支持多条区块链(Bitcoin、Litecoin、Namecoin、Dash、Zcash)。
- 分析揭示多签名隐私弱点、Dash 隐私、区块空间经济学和加密货币流通速度等洞见。
- Python 接口(通过 Jupyter)补充高性能 C++ 后端,性能敏感代码用 C++ 编写,且内联选择器以提升速度。
- 通过定长编码、指针样引用和去重地址实现内存高效和局部性。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。