usenx2019-Tracing Transactions Across Cryptocurrency Ledgers.pdf
概述:关于跨账本(比特币、以太坊、EOS)交易追踪技术
论文发表在USENIX2019期刊。这是信息安全类顶级期刊,具有很高的学术价值。
[1 Introduction]
加密货币的假名机制没有实现匿名需求。不仅是比特币存在交易追踪的问题,即使是以匿名为主要优势的dash,Monet,zcash也存在被追踪的风险。
犯罪份子必须通过交易所才能获得收益,目前大多数追踪技术都依赖于获取交易所中的账号信息。当前交易所普遍实现了KYC/AML政策,犯罪分子会泄漏他们的身份信息。此外,传统的交易所面临被黑客攻击、加密货币丢失等风险。
作为一种回应,最近几年兴起了去中心化交易所,用户不需要把资金寄存在平台方。
加密货币种类的快速扩张使跨账本的交易追踪变得非常重要。wannncry 勒索病毒就利用shapeshift服务将勒索到的比特币转移到monero.
[2 Related Work]
引用文献
介绍启发式算法的进展。
介绍隐私加密货币面临的追踪风险。
[3 Background]
加密货币
加密货币通过公钥存储,通过私钥使用。一个用户对应多个公钥(假名)。
加密货币不是和帐号绑定,而是和UTXO绑定。这样可以防止双花。一个公钥对应多个UTXO。防止双花的措施:检测交易的输入是否在UTXO集合,并在使用后移除。
UTXO集合的数据是由客户端程序自行维护的,根据历史数据集和新接收到的交易数据维护UTXO集合。
数字资产交易平台
(1) custodial exchange
一笔跨账本交易需要两笔转账,交易所作为中间人
(2) abstracted exchange
自动化转账,无需中间人手动操作
[4 Data Collection and Statistics]
数据搜集和统计
(1) changelly
api
shapeshift
(2) api web scraper
(3) blockchain
Blockscl bitcoin,dash,zcash
Python script others
数据存放在 spark,提高查找速度。
[5 Identifying Blockchain Transaction]
识别方法
算法概述
针对ShapeShift交易的识别分为两个部分:
Phase 1 :用户转入资金的交易
Phase 2 :用户提取资金的交易
交易识别启发式算法
(1) basic
根据ShapeShift网站公开的交易时间、交易金额等参数去账本中找类似交易。如果搜索结果只有1条,算法结束;如果找到多条,还需要进一步分析。
(2) Augmented
根据basic算法找到疑似交易,用疑似交易中地址去ShapeShift网站的API中查询是否有交易记录。如果有,则算法结束。
算法详细解释
在理解作者算法之前,首先需要了解shapeshift的工作原理,API有什么功能
数据搜集方法
-blockSci Bitcoin,Dash,Zcash
-Python scripts
一笔shapeshift交易(内部交易)包含两笔链上交易:
Phase 1 存款
phase 2 取款
shapeshift提供的API
(1)交易对(btc:etc;etc:eos)的实时兑换比例
- (curIn;curOut)
- the rate
- the limit (i.e., the maximum that can be exchanged),
- the minimum that can be exchanged, and the miner fee (denominated in curOut)
(2)最近50笔交易列表 - (curIn;curOut;amt; t; id)
- curIn (i.e., the currency from which they would like to move
money) - curOut (the currency that they would like to obtain).
- t is a UNIX timestamp
- id is an internal identifier for this transaction.
(3)根据指定addrs查询一个shapeshift交易的详细信息 - (status; address;withdraw;inCoin;inType;outCoin;
outType; tx;txURL; error) - "status" is a flag that is either "complete", to mean the transaction was successful; "error", to mean an issue occurred with the transaction or the queried address was not a ShapeShift address; or "no_deposits", to mean a user initiated a transaction but did not send any coins.
- "address" is the same address addrs used by ShapeShift
- "withdraw" is the address addru (i.e., the user’s recipient address in the
curOut blockchain). - "inType" and "outType" are the respective
curIn and curOut currencies - "inCoin" is the amt received.
- "outCoin" is the amount sent in the curOut blockchain
- "tx" is the transaction hash in the curOut blockchain
- "txURL" is a link to this transaction in an online explorer
- "error" appears when an error is returned and gives a reason for the error.
(1) basic
API[2] 提供了最近50笔交易列表,通过持续调用此API,能够获得更多的交易列表;
API[2]提供数据中包括(curIn;curOut;amt; t; id),利用这些信息去对应的账本中搜索疑似交易。
- Phase 1 (存款交易)启发式识别方法:利用curIn(存款交易的接收地址),t(时间),amt(金额)3和参数去账本中查找疑似交易。如果搜索结果只有1条,算法结束;如果找到多条,还需要进一步分析。
(2) Augmented
API[3]提供根据addrs 查找详细交易信息的功能。
可以利用此API验证basic方法中的疑似交易是否正确。此方法可以用于解决basic找到多个疑似交易的问题。
小结
第5章主要介绍如何在区块链账本中识别跨链交易。本质上是利用shapeshift公开的数据发现跨链交易。
包括两种方法:
heuristic 根据时间和金额寻找
augmented heuristic
在第一部基础上,使用API查找(addrs=addr),如果shapeshift的输出币种相同,则说明正确
利用上述方法,能够找到大量的跨链交易对,基于此类数据挖掘跨链交易的特征。
[6 Tracking Cross-Currency Activity]
对跨账本交易的追踪分析
分为三种模式:
- pass-through
- U-turn
- Round-trip
pass-through
概念:phase1的发送地址和phase2的接收地址属于不同的账本
搜集办法:basic(shapeshift启发式算法)
U-turn
概念:phase1的发送地址和phase1的接收地址属于相同账本的同一个地址
搜集办法:basic(shapeshift启发式算法)
子分类:
addr-based:phase1的接收地址和phase2的发送地址相同
Utxo-based:phase1的UTXO和phase2的UTXO相同
round-trip
概念:两个shapeshift交易的输入地址和输出地址相同
搜集办法:4个判断条件。第一个交易是X-Y,第二个交易是Y-X,两笔交易的时间接近,两笔交易的金额接近。
子分类:
same addr: 两笔交易的输入地址和接收地址相同。
[7 Clustering Analysis]
待阅读
[8 Patterns of ShapeShift Usage]
待阅读
[9 Conclusions]
待阅读