I've recently finished a "preview" - or an early alpha version of my idea on how to create a private blockchain. I've called it "Daisy" because... it's sort of like a daisy chain :)
I've created it in Go, and Daisy is available at GitHub.
The major idea here is that blocks do not necessarily need to be created by every single user of the system, they can just as easily be created by a few nodes which have the appropriate privilege.
Some possible use cases I've thought of for blockchains where everyone can download and verify the data, but only a few parties can publish:
- Distributing academic articles: create a new blockchain for academic institutions (and Arxiv and such) and allow them to push blocks with articles into the blockchain.
- Distributing municipal and governmental records: each institution / agency could be allowed to publish blocks with records and documents into the blockchain.
- Distributing scientific data: only certified research institutions publish data into the blockchain.
- Distributing sensor data, by having gateways publishing daily aggregate data from sensor networks.
- Distributing sports / betting / lottery results
- Wikileaks, of course
- Making a gigantic world-wide database of e.g. product information: manufacturers could add information about their products, keyed on e.g. UPC codes
Basic crypto, block and db operations are implemented, the network part is mostly done. A simple form of DB queries is done. Automated key management operations (i.e. signing someone else's key) are pending (they're manual now).
You should check it out if you're into blockchain technologies!