Auditor (voting pools)
The Auditor listens to the Audit Streams broadcast by all the Notaries and independently verifies them for correctness. The same stream which carries regular OT transaction information also contains the OT receipts for Bitcoin withdrawal requests from the pool. The auditor initiates or authorizes a blockchain withdrawal transaction via the wallet if and only if the audit for that service is clean (verified correct).
The auditor is responsible for maintaining an independent copy of the same deposit database as the transaction server. It also tracks withdrawals from the time at which it receives an OT receipt, containing a withdrawal request, until the corresponding Bitcoin transaction is fully confirmed on the blockchain.
All messages which must travel between the transaction server and the blockchain wallet pass through the auditor.
In order to create withdrawal transactions, wallets must be able to select inputs and change outputs, and calculate the minimum required transaction fee deterministically. In order to achieve determinism, the sequence of withdrawals must be globally consistent. Before sending any withdrawal request to the wallet, the auditors are responsible for achieving consensus on a serialization order for withdrawals.