Trusted Transaction Processing on Shared Databases
Blockchain technology has developed very well in recent years and is used in many different areas. One application is data sharing, for which a database based on a blockchain is used in this work. This allows parties that do not trust each other to share data without the need for a central instance. To get a transaction processing on such a database, components like a Recovery Manager and a Concurrency Control have to be added.
An on-chain transaction processing, where it is implemented directly on the blockchain, would process transaction reliably without additional effort ensuring trust. But a major disadvantage is that a blockchain has no good performance and thus the transaction processing. Another possibility, which is implemented in this work, is an off-chain transaction processing. That is, the processing of the transactions takes place outside the blockchain. The blockchain thus serves only as a storage. However, this approach requires additional effort to ensure trusted transaction processing. The Concurrency Control, for example, need to be adapted to be trusted in a decentralized network.
The existing BigchainDB system, which can only perform single operations, will be extended so that transactions can also be processed and different levels of isolation can be used. For this purpose, a transaction layer is added to the existing system, which, among other things, has a locked-based Concurrency Control and a Recovery Manager. A trusted execution environment is used to get a trusted locking that is verified in the blockchain to avoid invalid access to the database.
It is shown that extended BlockchainDB is able to process normal SQL transactions and significantly improves the bad performance of a blockchain through database techniques such as sharding. The effect of different isolation levels on the system performance is studied.