Overview of ProvenDB

ProvenDB is a MongoDB compatible database service that combines traditional database capabilities with Blockchain characteristics such as immutability. Using ProvenDB, you can write applications which anchor data to a public Blockchain, providing cryptographic proofs of the integrity and history of the data.

Blockchain and databases

Cryptocurrency and Blockchain technologies have the potential to be as powerful and disruptive as the internet itself. Database systems need to evolve to leverage Blockchain capabilities.

Blockchain enables digital mediation of transactions free from banks, government-backed currencies, and third-party vendors. Blockchain technology may pave the way for a revolution of finance, disrupting centuries-old banking infrastructure. A new era of intelligent and autonomous currencies may well be at hand.

The Blockchain has many far-reaching practical applications, but little attention has been paid to its impact on Database Management Systems. The Blockchain itself can be thought of as a database: one that is uniquely public, distributed, tamper-proof and immutable. However, the Blockchain can be used as a datastore for only the most limited applications. As a database, the Blockchain has an unacceptably low throughput, high latency, limited storage capacity, simple data structures and - notwithstanding its reputation for anonymity – is excessively transparent.

Furthermore, developing Blockchain applications is time-consuming and error-prone, because familiar and well-established database development idioms are not available.

ProvenDB bridges the gap between traditional database systems and the Blockchain: It layers on top of a standard database engine adding core Blockchain characteristics to the database. The resulting database respects all usual database 'CRUD' operations (Create-Read-Update-Delete) – and also leverages the Blockchain to provide an immutable, tamperproof history of the data stored within the database.

Blockchain proofs

The immutability of data within a Blockchain constitutes a revolution in computer science. For the first time, we have a way of storing data which cannot be altered and whose creation date and integrity can be cryptographically proven. Data in a traditional database can be altered at any time by a database administrator or a privileged developer. In contrast, data in a public Blockchain is immutable. For the first time, we can have absolute mathematical proof of the veracity and provenance of a data item.

Blockchain cryptographic proofs are increasingly being recognized as legal proofs. We can foresee a day in which Blockchain records are recognized as being of as high a standard of proof as DNA or fingerprint records.

Drawbacks of the Blockchain

However public Blockchains– such as ethereum and bitcoin – are capable of only a handful of transactions per second. The cost of storing any nontrivial amount of data on these Blockchains is absolutely prohibitive. While there are alternative Blockchains which have higher throughput and lower latencies, these Blockchains do not provide the cryptographic strength of the major public Blockchains such as those underlying Ethereum or Bitcoin.

Bridging the gap with ProvenDB

ProvenDB layers on top of a standard database engine adding core Blockchain characteristics to the database. The result is a fully functional database service:

  • MongoDB compatible
  • Normal throughput and latency
  • Rich query and database operations
  • Strong privacy

but which also provides the following:

  • Immutability: By default, all versions of a data item are retained. Previous versions of a data item can be superseded, but the original version is never destroyed.
  • Tamper Detection: Selected versions of the database are hashed upon the Blockchain. These versions can be proven to have been created at the specified time and can be proven to have been unaltered.
  • Point-in-time History: The state of a database at any point in time can be retrieved.
  • Data Provenance: The complete history of any item can be retrieved, showing its initial contents, and the changes made to the document at each point in time.

You might, therefore, use ProvenDB:

  • To prove you created some content.
  • To prove that a document or data has not been tampered with or altered.
  • To prove the date of a legal or official document.
  • To prove the exact history (provenance) of some data.

ProvenDB is particularly useful for:

  • Document Management Systems
  • Intellectual Property and Media Management Solutions
  • Legal Record Keeping
  • Government and Regulatory Applications
  • Accounting Systems
  • Audit and Access Management Systems