Bitcoin Transactions and Anonymity
Published:
Content
[TOC]
Unspent Transaction output (UTXO)
- Ledger state where balance are not directly associated with addresses but with the output of transactions
- Amount of digital currency that remains after a cryptocurrency transaction. (Output of a transaction)
- Can be used as an input
- Not a lower denomination of the currency
- Only choose TXOs that is unspent
- After an input, the unspent TXOs will be mark spends
Process of a transaction
- Process of a transaction
- Inputs: One or more UTXOs
- Payer provide their digital signature to confirm ownership over the input
- UTXOs consumed are now considered spent
Example of an transaction
- Alice have 0.45 BTC in her wallet.
- It’s a collections of UTXOs. Specifically 2 UTXO worth 0.4 BTC and 0.05 BTC. All those are output from past transactions
- Alice → Bob: 0.3 BTC
- Breakup her 0.4 BTC
- 0.4 BTC us now the spent output and can’t be used
- Meanwhile, 2 new UTXOs have been created (0.3 BTC and 0.1 BTC)
Anonymity
- Identity of the user are not tied to the public addresses
- Encourage to create new public address for every transaction
- Bitcoin does provide anonymity, but still relatively higher anonymity
Deanonymity Methods
Using P2P network traffic
- Maps IPs to public address based on statistic and intuition
- Calculation
- Analysis
Integrating off-network information
- Many organizations and services has information about it’s users
- Bitcoin Faucet
- Donate Bitcoins to be redistributed in small amounts to other users
- Possible to associate IP address with the recipients’ public key
- Map public keys to IP address ↔ Other public keys related to the public key can be linked
- Voluntary Disclosure
TCP/IP Layer Information
- PK and IP matching
- Assuming, the first node is the source
- Unable to derive for user using Tor or proxy
Egocentric Analysis and visualization
- Derive information from the user network
- From bitcoin transaction history
- E.g. using a graph
Context Discovery
- Using network structure and context
- Visualizing ego centric network with fixed radius
- E.g. Examine all the shortest paths between a set of vertices representing the users we identified using off-network method
Flow and temporal analyses
- Follow the signifacant Bitcoin flow
- Time between two large transaction deemed interesting
- Built a tool that tract significant flows of Bitcoin over time
Clustering
A single user may own a certain number of public addresses. the goal of clustering is to group together public addresses from the same user.
Heuristic Based clustering
Utilized structure information of certain transaction
Multiple input address
- Assume that all addresses in the inputs belong to a single user
For $(I, O, c, s)$ if num of input in $t$ is more than $( I >1)$ - All addresses in $I$ belong to the same user
- A reused in address imply that both cluster belong to the same user
- Sort address are not controlled by the same user into same cluster
One-time change address
- The input of a transaction must all be spent
- The result of a change in the transaction
- Requirement the maps the address is a change address which belongs to the same user as the input
- First appearance of address $O$
- Transaction $t$ is not coint generation
- There is no self-change address
- The output addresses other than $O$ do not satisfy condition (1)
- If $A_1$ is the input, then $A_1$ → $u$ then $O$ → $u$ as well
- If no change, may mistaken identify one of the recipient’s addresses as a change address
Address Reuse-Based Change Address Detection
- Requirement
- The first appearance of $O’$
- Transaction $t’$ is not coin generation
- No self-change address
- Output address other than $O’$ are reused as output addresses in some later transaction
- If $A_1$ is the input, then $A_1$ → $u$ then $O’$ → $u$ as well
- False Negative: Output addresses are not reused
- False Positive: If a change address is reused as an output address or no change occurs in the transaction, may mistaken recipient address as the change address by mistake.
Question
- How is a spent TXOs is marked on the blockchain, doesn’t it required to alter information in the block?
#
- WHat is Eutheruem
- How to deanonymize user in Eutheruem
Reference
https://en.wikipedia.org/wiki/Unspent_transaction_output https://academy.binance.com/en/glossary/unspent-transaction-output-utxo https://en.bitcoin.it/