While Bitcoin's "blockchain" is a step in the direction of a public ledger, it only works with Bitcoin and does not show the other side of the transaction. There are companies who are attaching data to the "blockchain" to try and create a public ledger for all transactions, however, the design of the "blockchain" was for Bitcoin and not as a generalized public ledger.
The solution below WAS designed as a general public ledger. It will support any transaction in any currency and any form of value. It was designed in late 2007.
The "smart-contract" format described will create an event-based public ledger. Please note: the "blockchain" has two main functions: 1. verify integrity of the data so it can't be modified, 2. propagate that data across different databases.