Blockchain Non-functional Properties
Advantages
Blockchain technologies may provide advantages for immutability, non-repudiation, integrity, transparency, and equal rights1.
- If data is contained in a commited transaction, it would eventually become practically immutable.
- The immutable chain of cryptographically signed historical transactions provides non-repudiation of the stored data
- Cryptographic tools also support data integrity
- The public access provides data transparency
- Equal rights allows every participant the same ability to access and manipulate the blockchain. Those rights can weighted by the compute power or stake owned by the miner.
Trust in the blockchain is achieved from the interactions between nodes within the network1.
Advantages of On-chain data and code
On-chain data - in the form of confirmed transactions organized in ordered block - and on-chain code - in the form of programs written in a general purpose, Turing-complete language - require validation and consensus by network peers and result in append-only changes to the blockchain as a shared data store cannot be reversed. 2
Limitations
Data privacy: there are no privileged users, and every participant can join the network to access all the information on blockchain and validate new transactions1.
Scalability of public blockchain has limits on:
- the size of the data on blockchain, due to the global replication of all data across all full nodes
- the transaction processing rate
- the latency of data transmission. Read latency can be good because nodes can have local copies of the blockchain. However, write latency is typically not good.
Disadvantages of On-chain data and code
Transaction validation, consensus protocols, and decentralized program execution may, however, describe a communication and execution overhead. And they simply do take time.
In addition, miners typically charge fees, thereby incurring financial costs.
Overall, scalability of the blockchain based system may suffer.
Anything on the public blockchain is not inherently anonymous, but on the contrary purposely visible; privacy and confidentiality are not guaranteed for on-chain transactions. 2
Checking end game conditions, however, is computationally expensive. All potential moves have to be calculated and verified to check the check mate condition. This is not possible in a smart contract as it violates the complexity upper bound for on-chain transactions. 2
- Architecture for Blockchain Applications↩
- On or off the blockchain? insights on off-chaining computation and data; European Conference on Service-Oriented and Cloud Computing↩