Blockchain technology is a decentralized digital ledger system that records transactions across many computers in such a way that the registered transactions cannot be altered retroactively. This post will focus on basic things of blockchain. Once you get the idea, you can make a lot of applications with it.
この記事の目次
Structure
Ledger
Ledger is where all information gets stored. It can be a single file or multiple files. If you use blockchain to create a cryptocurrency system, this will store user accounts, balance and transaction between them.
Block
Block stores transactions that describe changes of your entity. It is similar to traditional database transactions but how to process data here is different. It needs some kind of processing and confirming mechanism.
Blockchain
Blocks don’t stay individually but chained together using constraint. With a chaining mechanism we can trace back transaction history and it is hard to edit transactions. For example I use hash as a pointer to the previous block.
Everyone has equal authority when accessing data in the blockchain. This is crucial because this is a decentralized system, no one has a special role to perform suspicious operations. Users can be divided into two groups: users that perform read/write operations or as validation nodes.
Example with cryptocurrency:
Traders: users can receive/send coins from/to other users. Fee is needed to perform transactions.
Miners: users who validate transactions and receive coins as reward.
Transactions
Validation occurs when a new block needs to be added to the blockchain.
Proof of Work (PoW)
A lot of computers (nodes) connect to the mainnet to build the block and calculate block hash. The block will be confirmed when over 50% of the nodes agreed with that block. Nodes can get their reward for doing validation work. If this blockchain is used to create cryptocurrency, validation nodes will be rewarded with some coins.
Proof of Stake (PoS)
It is similar to PoW but the difference is validators are chosen based on the number of tokens they hold and are willing to “stake” as collateral. For example I require 100 coins be staked before a user can operate a validation node on my blockchain. Then, when it comes to validation I can select a node randomly to do the work.
There are more consensus mechanisms that you can use: Delegated Proof of Stake, Proof of Authority, Proof of Activity, .etc
Security
Normally blocks chained together by using hash. Once a block is added to the blockchain, it cannot be altered without changing all subsequent blocks, which requires consensus from the network. With the PoW mechanism if attackers want to add a suspicious block, they will need over 50% confirmation of all validation nodes. So I can say the security of your blockchain depends on the compute power of the network. In reality, there will be millions to billions of CPU/GPU joining the validation process. It’s not theoretically possible to attack top tier blockchain today.
Applications
Cryptocurrencies: Bitcoin, Ethereum, and other digital currencies use blockchain to manage and record transactions.
Supply Chain Management: Ensures transparency and traceability of goods from origin to destination.
Healthcare: Securely stores and shares patient records.
Voting Systems: Provides a transparent and tamper-proof voting process.
Financial Services: Streamlines processes like cross-border payments, trade finance, and more.
Challenges
Scalability: Handling a large number of transactions per second can be challenging.
Energy Consumption: PoW mechanisms consume significant energy.
Regulation: There is no limit for blockchain development. Any programming languages or frameworks may be used.
Legality:Because blockchain is a decentralized system. Anyone can use it, but not all countries have the same laws for these applications. Some countries may ban your applications.
Summary
Blockchain is technology for decentralized systems. It is continually evolving, with ongoing research and development aimed at addressing its challenges and expanding its applications.
このままだと危ない?システム保守・運用を外注すべきかの判断軸3点
SvelteKit vs Next.js: A Comprehensive Comparison for Modern Web Development
カテゴリー: