Coin tainting in Bitcoin

by Albert Szmigielski Coin tainting in Bitcoin is a way to mark certain coins for the purpose of devaluing them. Since all transaction are stored on the blockchain, a history of a coin can be traced all the way to its coinbase transaction. This fact enables tracking of coins belonging to any address. Certain addresses can be marked by some powerful entity as bad. As a result peers may choose not to accept funds from those addresses. If these entities gain support of the core developers then a blacklist of addresses can be hard-coded into the Bitcoin core software. Coin tainting can be used to incorporate measures of accountability in Bitcoin, but can also lead to abuses of the system.

Read more

Countermeasures to information leakage of Bloom Filters in Bitcoin lightweight clients

by Albert Szmigielski Keep the state about the seed. When a device restarts and uses a different seed (as well as other filter information) to create a new bloom filter, the probability of having the same false positives is very low. Therefore an adversary with access to two bloom filters from the same client, created with different seeds can easily check if addresses appear in both filters. If so, they are addresses of the SPV client, otherwise they are false positives. Keeping the state about the seed would not give that advantage to the adversary. When an SPV client restarts it will create the exact same filter. Disadvantages The need to store a seed and some other information about the

Read more

Accountability Measures in Bitcoin

by Albert Szmigielski Accountability measures in Bitcoin are a good idea. However, they should be implemented in such a way, so that they cannot be abused by just anyone. Accountability goes against privacy, if a system is to be 100% private then accountability mechanisms may not be possible. Currently, there is a basic accountability system implemented in the Bitcoin core software. The system bans IP addresses of misbehaving nodes for a period of time. While this is a good start, it is not sufficient to prevent bad actors from trying to attack the network. Blacklisting One mechanism of accountability would be to blacklist Bitcoin addresses that do not observe the rules and misbehave. This mechanism would essentially freeze the funds

Read more

Bitcoin Security and Privacy

Bitcoin Security and Privacy By Albert Szmigielski Bitcoin is a decentralized currency and payment system. In order to be an effective and secure payment system it should satisfy several security requirements. The first of these requirements is fairness. On the surface Bitcoin meets the property as users can only sign for coins that they control. However, upon further examination of recent research we do see that several double-spend attacks have been performed that would negate the fairness property of Bitcoin. On the other hand Bitcoin does satisfy resistance to impersonation attacks very well. No one can obtain the private keys (assuming they are stored properly and securely) of another person in the system to sign their transactions. As a result

Read more

Bloom Filters in Bitcoin SPV (Lightweight) Clients – Part I

Bitcoin lightweight clients are wallets that do not download and store the whole blockchain locally. Currently (Oct 2015), the Bitcoin blockchain is about 45GB and growing. Downloading the whole blockchain onto a smart phone makes no sense. Satoshi envisioned lightweight clients in the original whitepaper [1]. The whitepaper introduced Simple Payment Verification – a way to verify payments without having to download the complete blockchain. A thin client (another name for a lightweight client) only downloads the block headers by connecting to a full node. Then it requests transactions matching its own addresses. To be clear a lightweight client sends its addresses to a full node requesting all the transaction that mach those addresses. The full node responds with those

Read more