Basis for proof

Every bid, ask, cancel, trade, committed cash, committed security is recorded onto a private Ethereum blockchain. All bid, ask, cancel, and trade transactions are included in blocks that are "chained" together with a hash which is verifiable (with open source geth, or by hand by someone familiar with blockchains and sha256 hashes). To prove that the chain was not modified, or reconstructed after the fact, and to provide an unprecedented level of transparency, the last private Ethereum hash, which proves the entire Ethereum chain, is written into the tamper-proof Bitcoin blockchain every hour. The meta data about the Bitcoin transaction is published for everyone.

Verification of the chain is a technical task. To understand the reason a single private Ethereum chain hash embedded in the Bitcoin blockchain proves the entire trade history of the private chain requires understanding of the basics of sha256 hashes, Ethereum, and Bitcoin blockchains.

Important: Anchor data is published hourly and before the actual data export. Be sure to get a proof file prior to data export.


First place genesis.json and NEWEST.export into an empty folder.
From that folder:

geth --nodiscover --datadir ./data init genesis.json
geth --nodiscover --datadir ./data import NEWEST.export
# To get a console:
geth --nodiscover --datadir ./data console

For proofs

eth.getBlock(0xeff3) (where 0xeff3 is the ethBlockNumber from the proof json).
Ensure the hash matches to prove the entire private Ethereum chain. Check that the hash is embedded in the tamper-proof Bitcoin blockchain with the URL to a third-party block explorer or use the btcAnchorHash with any Bitcoin blockchain explorer. Download setup.js.

# Place setup.js in the same folder
geth --nodiscover --datadir ./data console

This data can be queried via a set of functions (once the code is loaded into Ethereum (geth).


To verify funds for trader 0x8ce5… at a certain block (e.g. Block 95039):

// For OSTKP:
security.balanceOf("0x8ce59e99928287ee3c6812c822d25919246d6512", 95039)

// For USD:
currency.balanceOf("0x8ce59e99928287ee3c6812c822d25919246d6512", 95039)

// To see all trades:
exchange.Settle({}, {fromBlock:0}).get()

// To see all issuances:
security.Issue({}, {fromBlock:0}).get()

// To see buy orders placed:
exchange.CommitCurrency({}, {fromBlock:0}).get()

// To see sell orders placed:
exchange.CommitSecurity({}, {fromBlock:0}).get()

// To see total issued:
security.Issue({}, {fromBlock:0}).get().reduce(function(a, b) {
  return a + Number(b.args.amount);
}, 0);