On Creating Public Transparent Transactions

One of the major criticisms of the Federal Reserve is the lack of transparency—no one is allowed to directly audit their books. ξFin however is an inside out bank–all transactions are public [privacy is earned by the careful management of cash, but that’s another blog post] so they are immediately audit-able by the market (or world) that uses the system. The creation of new ξ-money in ξFin follows a verifiable algorithm. New ξ-money cannot be flooded into a system outside of the limits of the algorithms. While the rest of the world goes on in a tantrum about the Fed, we’ll just design and implement our own system.

  1. Transactions are simple line-oriented records with fields separated by tab characters.
  2. Every transaction has a monotonically increasing transaction id aka "xid".
  3. Every transaction has seal: a cryptographically secure hash of the last transaction seal, the current xid and current transaction data.
  4. Transaction data is limited to characters in the set [ a-zA-Z0-9.-].
  5. Whitespace in front or after the data area is always trimmed away.
  6. Whitespace inside the data area is always restricted to one character. E.g. "hello___world" becomes "hello_world" if the _ was a space.

Any tampering with the public transaction stream that changes, reorders, omits or adds transactions is immediately detectable. An example stream of transactions using a SHA1 hash may look like:

0000000001 cc065abdbc81b27a41485902912f9d8ca1df6f7b intitialize
0000000002 30b1d4b22d55b4d75ae86883ea8ef966e94c42ca new-identity acrylicist
0000000003 df03ea31751f90fa7d1fed05e485ce4442f2e3fc credit-level 1 0.0
0000000004 26ec105c6cf6703f7d814bf37bb8a7ededfe2ecf new-account acrylicist credit 0
0000000005 f2ab5f320461486c46ed16d24e86d6b060b8c0bf new-account acrylicist debit 0
0000000006 d3d43489863ddad6c94c1ee42abe34c6fc229dbf new-identity donbueno
0000000007 85a0184f854ddad516ac6a8348380a1c5232d243 credit-level 2 0.693147
0000000008 6c37d0e6e09afc7cb0e40eadd5c6624207a4d23d new-account donbueno debit 0

If we changed the data for transaction 6 from "new-identity donbeuno" to "new-identity danbueno", the following transactions would change:

0000000001 cc065abdbc81b27a41485902912f9d8ca1df6f7b intitialize
0000000002 30b1d4b22d55b4d75ae86883ea8ef966e94c42ca new-identity acrylicist
0000000003 df03ea31751f90fa7d1fed05e485ce4442f2e3fc credit-level 1 0.0
0000000004 26ec105c6cf6703f7d814bf37bb8a7ededfe2ecf new-account acrylicist credit 0
0000000005 f2ab5f320461486c46ed16d24e86d6b060b8c0bf new-account acrylicist debit 0
0000000006 2305f9d4507b4ff1ba73b96ec7ad4a05a23d5ff1 new-identity danbueno
0000000007 f49962c3cdad4de7623e4daea147f953e908c2de credit-level 2 0.693147
0000000008 8ea5591c47bf78fa0f09f30eaef3644e7918e7e5 new-account donbueno debit 0

That is, every seal including and after the changed transaction is changed. This seal is going to change a lot, and considering that all the transactions will be available for market-review/archival in real time, detection of fraud becomes easier. This doesn’t detail the algorithms for the creation of credit, that’s for another post. This was to explain how we’re to make a tamper-proof transactions stream. You wouldn’t use a bottle of Tylenol unless it had its unbroken protective seal, and neither should your financial system.

Advertisements

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s