An Honest Price Discovery Mechanism for Bitcoin


Although the bitcoin protocol itself is fairly robust, our dependence on centrally managed bitcoin exchanges for price discovery creates a single point of failure for the system as a whole.

What is needed is an honest price discovery mechanism that is both decentralized and resistant to DDoS, HFT and other forms of price manipulation.


What I have in mind is a distributed network of independent, yet loosely cooperating bitcoin exchanges that all communicate via some well defined protocol. The network as a whole should be very resistant to attack, since if one exchange goes down the rest of the network picks up the slack. The concept is similar to how the Internet itself works.


Individual traders broadcast orders (bids + asks) to the entire exchange network (or some portion thereof), thus creating a race condition among exchanges to fill orders faster than the competition. The exchange with the fastest matching engine wins the race and collect a small transaction fee.

From an engineering perspective, race conditions are normally considered BAD. But from the free market perspective, this specific race condition is GOOD because it creates incentives for fast service and low transaction fees.


To make it work, people would need an easy way to transfer funds over the Internet. That's where bitcoin escrow services come in. The first step would be to sign up with a trusted escrow service and deposit funds there. Then you'd be free to make trades over the network. Escrow companies would have the job of tracking transactions for their clients and settling up accounts at the end of the day. Note that escrow companies and exchanges could be totally separate entities.


  1. Trader A deposits funds into a trusted escrow service.
  2. Trader A downloads (or updates) a list of all open orders (bids + asks) from the exchange network
  3. Trader A decides to place a bid and sends the relevant details to his escrow service.
  4. The escrow service responds with a tx_id as proof of funds.
  5. Trader A broadcasts his order to a number of different exchanges, including tx_id in the order.
  6. Trader B decides to fill Trader A's order and sends his escrow service the tx_id provided.
  7. Escrow companies handle it from there.
  8. Market price at any given time is determined by the whole network.
  9. All identities verified with digital signatures, needless to say


The main idea boils down to a shared protocol that allows traders, exchanges, and escrow companies to communicate in real time. Healthy competition among participants should result in improved quality of service all. Obviously, this is all just a rough sketch and specifics still need to be hammered out. If you'd like to contribute ideas or code, please contact


I'm a software developer with 12 years experience in the financial services industry.
Donations also gratefully accepted: 1CuWjseY3ppDeVShwRFkwSpm369CNoFUca

1 Comment

What would the latency be for such a system as you describe? How would you ensure your system can become more efficient (less opportunity for arbitrage)? What kind of costs would these escrow companies charge? How are flickering quotations handled? Is the system capable of weeding out bad participants?

Leave a comment

About Papa Scratchy Beard

user-pic Perl developer and Bitcoin enthusiast