Things i have learned in my journey learning Blockchain- Notes 1
✍ Blockchains are peer-to-peer distributed ledgers forged by consensus and can be combined with a system for 'smart contracts'.
✍ Smart contracts are computer programs that execute predefined actions when certain conditions within the system are met.
✍ Consensus algorithms are a key function of DLTs (Distributed ledger technologies) to form agreement as to the state of the network.
✍ In permissioned blockchains, a consortium of organizations are responsible for authenticating and controlling the participants in a blockchain.
✍ Blockchain is best suited for business applications where one or more of the following conditions apply:
- There is a need for a shared common database
- The parties involved with the process have conflicting incentives, or do not have trust among participants
- There are multiple parties involved or writers to a database
- There are currently trusted third parties involved in the process that facilitate interactions between multiple parties who must trust the third party. This could include escrow services, data feed providers, licensing authorities, or a notary public
- Cryptography is currently being used or should be used. Cryptography facilitates data confidentiality, data integrity, authentication, and non-repudiation
- Data for a business process is being entered into many different databases along the lifecycle of the process.
- It is important that this data is consistent across all entities, and/or digitization of such a process is desired
- There are uniform rules governing participants in the system
- Decision making of the parties is transparent, rather than confidential
- There is a need for an objective, immutable history or log of facts for parties’ reference
- Transaction frequency does not exceed 10,000 transactions per second.
✍ When Not to Use Blockchain:
- The process involves confidential data
- The process stores a lot of static data, or the data is quite large
- Rules of transactions change frequently
- The use of external services to gather/store data