Blockchain Basics: Security — Part 5
So far, we’ve gained a solid understanding of what blockchain is and how it works. Now, it’s time to explore some of the security concerns…
Blockchain Basics: Security — Part 5
So far, we’ve gained a solid understanding of what blockchain is and how it works. Now, it’s time to explore some of the security concerns that come with blockchain technology. After examining these security issues, I’ll explain how the topics we covered earlier address these concerns and how blockchain itself offers solutions to many of them
double spending
The very first concept we need to discuss when talking about blockchain is the double-spend problem. Double spending occurs when someone is able to spend the same coin more than once.
To understand this better, let’s compare it to physical money. If I hand my friend a $1 bill, I can’t spend that same bill again because it’s now physically in their possession — I’ve lost it, and it’s no longer with me.
However, when dealing with digital ledgers, things work differently. Since everything is represented in binary (0s and 1s), digital assets can easily be copied and pasted. This makes it possible for someone to try to “duplicate” digital money, which is the core of the double-spend problem
So, how do we avoid double spending? The solution is to keep track of all transactions that occur. Whenever you make a transaction, one of the key pieces of data included is a timestamp. One of the main reasons Satoshi Nakamoto included timestamps in blockchain was to prevent double spending.
Each transaction is recorded along with its timestamp, making it very difficult to spend the same funds twice. If someone tries to resend the same transaction, the system can check the records and say, “Hey, this transaction was already sent at this specific time, date, and even year.” As a result, miners (or validators, in Ethereum) will reject the duplicate transaction.
order
The next issue we’re going to deal with is transaction ordering. Earlier, we mentioned that transactions in a blockchain are stored in chronological order, and while that’s true for blocks, it’s not necessarily true for individual transactions.
Before transactions are added to a block, they sit in a transaction pool (also called the mempool). This pool contains all unconfirmed transactions, often in random order — for example, there could be 10,000 transactions waiting to be picked up by miners.
Miners don’t select transactions based on the exact order they were submitted. Instead, they often pick transactions randomly or based on factors like fees. This means transactions are not stored strictly in chronological order.
This can create a potential problem: in theory, someone could submit multiple copies of the same transaction to the transaction pool. If one of these transactions gets picked up and added to a block, and then another miner later tries to add the duplicate transaction to a new block, it would cause a conflict — because the funds have already been spent in the earlier block.
Fortunately, blockchain has mechanisms to handle this. The process is quite complex and involves consensus algorithms, which ensure that only valid transactions make it into the blockchain and that duplicates are rejected. We’ll dive deeper into how this works when we discuss consensus mechanisms.
balance
The next issue has to do with balances, specifically ensuring that the sender has sufficient funds to make a transaction. I’ll keep this part brief since we’ve already discussed how it works earlier.
One of the main reasons you need to provide transaction inputs is to prove to the blockchain that you have enough balance to cover the amount you want to send. By including these inputs, you’re essentially showing that the funds exist and are available for spending.
Without this proof, the blockchain (or more precisely, the miners) would need to scan through every single block starting from the genesis block, tracing all historical transactions to calculate your current balance. This would be inefficient and time-consuming.
For example, if you tried to send 10 BTC without providing any inputs, the network would have to verify whether you actually have 10 BTC by going through your entire transaction history. By requiring transaction inputs, blockchain avoids this problem and ensures that only valid transactions with sufficient funds are processed.
code
The next and quite interesting problem is related to code vulnerabilities. The actual source code of a blockchain can contain critical security flaws, which malicious actors can exploit.
Major blockchains like Bitcoin and Ethereum have thousands of security researchers constantly auditing, testing, and improving their code, making them extremely difficult to exploit.
However, newer blockchains often become targets almost immediately after launch. Due to poorly written code and a lack of thorough auditing, many of these blockchains have been exploited shortly after their release
51% attack
This next issue is one of the most well-known security problems in the blockchain space — the 51% attack.
A 51% attack occurs when a single entity or group gains control of more than 51% of a blockchain network’s resources, specifically the nodes, validators, or miners.
The basic idea is that if someone controls the majority of the network’s power, they can manipulate the blockchain to their advantage. With over 51% control, an attacker could potentially reverse transactions, double spend, or block other transactions from being confirmed.
This type of attack has already happened in several blockchain networks in the past, especially on smaller and less secure networks, where it’s easier for an attacker to gain majority control.
We haven’t yet covered the more complex aspects of blockchain, but this gives a solid overview of some of the key security concerns so far.
메타데이터
- post_id
- 2f7f2bee8040
- slug
- blockchain-basics-security-part-5-2f7f2bee8040
- url
- https://medium.com/@mrnazu/blockchain-basics-security-part-5-2f7f2bee8040
- canonical_url
- https://medium.com/@mrnazu/blockchain-basics-security-part-5-2f7f2bee8040
- author_url
- https://medium.com/@mrnazu
- status
- ok
- fetched_at
- 2026-06-24 18:57:25