David Stancel
Cryptocurrency Expert, Advisor, Lecturer, Author, & exCTO @ Fumbi
Lecture 8
There are two major ways of controlling the network:
1. Controlling the information flow between peers
2. Controlling the computational power of the network – remember that decisions are based on consensus/majority.
An adversary that controls more than half of the network's computing power can effectively control the entire network.
While controlling the network, the attacker can:
However, the attacker cannot:
A denial of service (DoS) attack is an attempt to make an online service unavailable by overwhelming it with traffic.
---> overloading a network/computer with requests above the capacity that the network/computer can handle.
In Blockchain, this can be achieved by sending lots of junk data to a node. The nodes under attack will not be able to process normal transactions.
a (bitcoin) node/peer:
--> a malicious user gains control over a node's access to information in the peer-to-peer network.
Three prerequisites:
If the above criteria are met then:
The computing power of honest miners is wasted.
--> selfish miners increase the impact of their own mining power on the network and enjoy additional power and profits.
Selfish mining increases transaction confirmation times, because transactions confirmed by the selfish miner in private, are not broadcast to the public immediately.
Selfish mining also increases the threat of double spending, as both honest and selfish miners can add mutually exclusive transactions to the private and public chains.
May be possible with 1/3 of network (33% attack).
CoinJoin is a trustless method for combining multiple Bitcoin payments from multiple spenders into a single transaction to make it more difficult for outside parties to determine which spender paid which recipient or recipients.
Unlike many other privacy solutions, coinjoin transactions do not require a modification to the bitcoin protocol.
Processing Power - the more processing power your computer has, the more transactions it can process.
- mostly for verifying transactions using:
In theory, Bitcoin is able to verify approximately 4,000 transactions per second on an average CPU.
In reality we cannot hope to scale beyond 200 transactions per second
Storage - Maintaining a full bitcoin node means storing every single transaction ever recorded on the blockchain.
As of November 2020, the Bitcoin blockchain takes around 303 GB and increases by cca 5GB per month.
If the network grows to the size of competing networks, storage requirements will skyrocket:
For 200 transactions per second (tps) – a reasonable target, given
PayPal's current rate of 100 tps –nodes would require an additional storage space of 3Tb per year.
Bandwidth - Assuming that a bandwidth of 10Mbits/s is available, the rate with which nodes can receive transactions is limited to approximately 2,000 transactions per second.
+ each node is informed about every transaction multiple times and that other non-transaction messages are broadcasted over the network
If bandwidth is not enough, peers won’t be able to receive and validate transactions in time, making them unable to synchronize with the rest of the network.
1) Users run a Lightning Node.
2) Two users lock funds in a multisig on the blockchain. This opens a bi-directional payment channel between both of their Lightning Nodes.
3) Lightning transactions instantly update the balance of the payment channel without needing to involve the blockchain. The transaction data is stored locally on the Lightning Node.
4) As more Lightning Nodes come online, and more payment channels connect them, a peer-to-peer mesh network begins to form. This means that even if two nodes don't directly connect, they can still transact as payments are routed over the network of connected nodes.
5) To settle, a user closes their payment channel, with the net balance finally being broadcast to the blockchain.
By David Stancel
Security, Anonymity & Scalability of Cryptocurrencies
Cryptocurrency Expert, Advisor, Lecturer, Author, & exCTO @ Fumbi