While attackers would not typically announce their intentions publicly, the purpose of the attack would be for education, as the entire process will be live-streamed to allow anyone interested in learning how the often purely theoretical process works in reality.
BTCManager spoke to @geocold51, otherwise known as team-periwinkle, to get a better understanding of the experiment.
Why are you doing this?
I’m doing this to raise awareness about the real threat of 51% attacks. Many people sort of know the rough idea, but are pretty misinformed about them and think they’re super hard. But they’re not. The hardest part is compiling a given coin and waiting for the blockchain to sync.
Whenever someone brings up the idea of a small coin being attacked, you’ll see legions of people saying “Oh, you couldn’t really, it would be super hard, it would be super expensive, etc., etc.” But none of that is true.
The cost to 51% attack various coins. Most of these coins cost a pittance to attack. If your savings are in a coin, or anything else, that costs less than $1m/day to attack, you should reconsider what you are doing.https://t.co/WcyW0vfcuS
— Emin Gün Sirer🔺 (@el33th4xor) May 30, 2018
There are a ton of coins that could be attacked very easily and very cheaply. I want to show this to people. I also want to show everyone how easy these attacks are and how anyone could do them. Many people have maybe read about the possibility in, say, a white paper, but few people really understand how you do such an attack and therefore think it’s super hard or something.
Also, many times after a coin is attacked the devs will implement some sort of fix and that reduces the chances of an attack and makes crypto more secure (sometimes the fix is awful, however).
Without going into too much detail, how will you be conducting the 51% attack?
For the sake of clarity, I’m going to explain this as if I were attacking an exchange because that’s what an attacker would do, but I am not attacking any exchange.
Set up two servers running the coin I’m attacking with the same wallet. Then, set up a mining pool on one server. Take the wallet hooked up to a pool off the network by setting maximum nodes to zero and then send a transaction to an address I own. The transaction won’t be seen by anyone because I have zero peers.
Then on the wallet on the network, send a transaction to the target I’m trying to defraud via double spend (in a real attack, this is an exchange). I point rented hashing power at the mining pool; I mine more blocks than the real network because I have more hashing power and because I have more hashing power I have a higher block solve difficulty. Once my transaction to the exchange confirms, I exchange it for bitcoin and withdraw the bitcoin.
By this time, my offline wallet will have a longer, and higher difficulty blockchain that has a transaction that conflicts with and predates my transaction from the real, online blockchain for the coin. This means that when I take my blockchain online, it will fork the blockchain because I have a longer chain length at a higher difficulty and my malicious blockchain will merge with the real one.
In the merging process, if there are conflicting transactions the oldest one is chosen, and so my transaction to the exchange will be replaced by my transaction to an address that I own and, boom, I’ve doubled my money. This can be repeated as much as one wants.
This is a benevolent hack, right? Strictly educational?
Yes, I’m not going to defraud any exchange. However, I may deposit the coins into one and not exchange them for added realism.
Once the attack has been completed, what will you do?
I don’t really have any big plans; I’ll probably call my girlfriend and then maybe do this essay I have to write.
How will you return the chosen coin back to its original state?
I will not, and I do not need to. I’m just overwriting a transaction, so there’s no harm to the coin really.
How will you minimize any collateral damage?
There isn’t much collateral damage, the coin’s price may drop, but that’s only because I’m revealing a truth about that coin. I feel any collateral damage is deserved. However, there is no damage from a tech standpoint.
Which coin(s) have you chosen and on what criteria?
That’s a secret. I was going to attack EMC2, I recently learned they use the Komodo Platform, and they seem to have an interesting solution to 51% attacks. I’m still going to attack them because I have a bunch of donation money to do it with and I’m curious to put their solution to the test, but I’m going to do it later in the stream so that I don’t start off with potential failure.
KMD handles 51% attacks by checkpointing the blockchain and saving those checkpoints to the Bitcoin blockchain. If a newly proposed blockchain does not sit right with these checkpoints, then it is rejected by the network.
I’m not going to announce the other coin (maybe coins if I get them all set up in time) because I don’t want people to rent a bunch of hashing power during the stream to mess with me. But here’s a hint for one, if you can figure this out you get a cookie and also tweet me, I wonder if anyone else will get it.
I’m attacking this coin to rustle the jimmies of a person who’s security team gave me a very very thorough patdown at DefCon one year.
Thanks to @geocold51 for their time with this interview.