Framework for modular input selection policy for Bitcoin wallets

Framework for modular input selection policy for Bitcoin wallets


  
From: Justus Ranvier @ 2014-02-11  6:05 UTC ( / )
  To: bitcoin-development




One of the areas that isn't as well developed as it could be in terms of
wallet design is fine-grained control over input selection policy.

Coin control is great when a human is manually crafting transactions,
but that's not really a very scalable solution.

The attached image is a possible way to stack different independent
selection algorithms. If wallets implemented something like this, it
would be easy for other programs to implement new application-specific
algorithms that would not need to completely reinvent the wheel.

As an example, voting pools in Open-Transactions will implement cold
storage in a FIFO manner, meaning that UTXOs will be clustered into
groups which should be consumed in a specific sequence. Within that
constraint, however, they still want to minimize transaction size.

If wallets were designed to make selection policy modular, they'd only
need to implement their FIFO algorithm and stack it in before the
default algorithm. Surely this capability would be useful to other
projects as well.

It would also allow people who want to prioritize privacy over
transaction cost to easily modify the behavior of their clients and
would make it easier to incorporate new tx construction algorithms like
CoinJoin.

Link to the image in case attachment is stripped:
http://i.imgur.com/Fkkq7pI.png
-- 
Support online privacy by using email encryption whenever possible.
Learn how here: http://www.youtube.com/watch?v=bakOKJFtB-k