Blockchains
Blockchains are applications accessible at layer 7 of the OSI stack. They provide a distributed, cryptographically secured digital ledger with no central instance. Thus, there needs to be a consensus mechanism for recording transactions and an incentive mechanism for those parties doing the work. This structure enables transactions between parties when there is no single party trusted by everyone. The transactions are subject to a fee. If computing resources are used, there is a charge for that as well.
The wallet for authentication
The connection to a blockchain requires a wallet for authentication and for storing digital assets on that blockchain. The transaction proof for the acquisition and the sale of those digital assets is on the blockchain itself.
There are many different blockchains with different properties. It started with the original Bitcoin blockchain with limited scripting support, followed by the Ethereum blockchain, which introduced smart contracts, a compute layer on top of a blockchain. Many other blockchains followed. Today there is a large number of blockchains, most of them public, some of them private.
Ownership of a wallet for a specific blockchain is a precondition for accessing a specific blockchain. Blockchains use asymmetric cryptography for user authentication. Each user has its own private and public key. The private key is stored in the wallet. Each user’s private/public key pair for a specific blockchain is limited to the use on a specific blockchain. For accessing different blockchains, a user either needs a different wallet for each of those blockchains or a meta-wallet that can hold different wallets for different blockchains. Most wallets also have a web interface and most meta-wallets are made available through web services. Each blockchain has its own token, e.g. Bitcoin for the Bitcoin network and Ether for Ethereum. The transferability of assets is limited. Bitcoins cannot be directly transferred to the Ethereum blockchain and it doesn’t work directly the other way around either. While there are partial solutions such as the intermediary offered by BTCrelay.org, the possibilities are currently limited.
With blockchains that support smart contracts, each smart contract, like each user, has its own address on the blockchain (e.g. Ethereum). The smart contract must be tokenized in order to execute. Contract execution costs depend on the actual transaction and computing costs on the blockchain at the time of contract execution. Blockchains provide the ability to use a decentralized, cryptographically secured and tamper-proof ledger and transaction execution. However, they are not databases and can only execute a very limited number of transactions per second.
Diagram Blockchain on OSI 7 layer stack
The challenges
There are some challenges for public blockchains that can also apply for private blockchains:
- Complexity of use
- Each blockchain requires its own wallet
- Data on a blockchain is public, not private. Therefore, private data should not be publicly exposed on a public blockchain.
- The authentication towards a blockchain is through a wallet. The wallet itself needs a different authentication mechanism to ensure that the owner of a wallet is actually the pretended person or entity. The private key in the wallet is a single-factor authentication. Whoever is in possession of the private key can access the digital assets assigned to that wallet. No further protection is provided. Only additional authentication mechanisms can prevent misuse.
- High transaction and computing cost
- Limited scalability
For general usability of the technology outside of digital asset trading, these issues must be resolved. Even trading digital assets is expensive on the Bitcoin Blockchain and the Ethereum Blockchain when executed on these Blockchains. There are a number of different approaches available for addressing and resolving these issues.
The first four challenges apply to all Blockchains, while the other two apply primarily to Bitcoin and Ethereum. For Ethereum, however, there are already solutions that address the problem of lack of scalability and the problem of high transaction costs: sidechains and layer 2 roll-ups. And layer 2 roll-ups can also elegantly solve the problem of public data on a blockchain, in this case Ethereum, by allowing the actual transactions to be executed outside of Ethereum. Polygon, Matter Labs and Starkware are offering solutions.