For the last couple weeks I’ve been following a few ethereum users that have a cache of reused ethereum wallets and compete with each other to steal ether that is continually deposited into the accounts, known as weak “brainwallets.”

Let me introduce you to the most popular brainwallet where the password is simply an empty string: ‘’

You can see ether regularly coming in and then being transferred out within seconds. This is just one of a number of wallets which suffer from the same flaw and are part of an unusual network of people who take advantage of them.

The Brainwallet Mistake

Most people beleive that cryptocurrency wallets are secure against theft due to the highly improbable nature of someone else finding the exact same random seed that you have, and for the most part they’re correct. But the early days of crypto were filled with bad advice and one of these pieces of bad advice was that you could create wallets based on some string of text that you can keep in your head. Hence the term brainwallet.

The most popular of these brainwallet generators hashed your input a couple thousand times to come up with something that was harder to brute force — you can perhaps hash only a couple hundred in a second — but was still deterministic. If you set your password to ‘password123’ and used the corresponding wallet address, anyone else who entered the same password would get the same wallet address AND any funds you had stored in that address.

Think of it as a wallet that you have in your pocket. The fine print on the wallet tells you that anyone can have an exact copy of this wallet, including all money inside, if they know the exact name (a long, random string) for this wallet, but who reads the fine print these days?

These wallet generators aren’t widely used anymore but they were popular enough that cryptocurrency is still deposited into the most common ones on a fairly regular basis¹. There’s still enough value here that some people watch new block transactions very closely for these addresses and then sweep the value into their own — secure — wallet.

There’s not a ton of information about this practice out there, and much of it is related to Bitcoin rather than ethereum, but it’s possible on both platforms. The accounts where these coins are sent off to are referred to as sweepers as they sweep deposited funds out of accounts as fast as they can.

One of the common sweeper addresses you will see is 0x957cD4Ff9b3894FC78b5134A8DC72b032fFbC464 which I’ll refer to as 957.

Meet 957

Now, 957 has been quite lucrative in this endeavor, collecting something like $23M in ethereum and $900K in tokens over two years. Obviously an early adopter but also a good haul in sweeping.

Nothing about this is too unusual up until this point; plenty of sweepers do the same thing (though not nearly to the same success rate) and make a good amount of cash stealing from people who make mistakes.

But all this competition between sweepers leads to some interesting situations like the case of the empty string brainwallet, which has a supply of 30,000 minereum tokens and a private key that anyone can look up.

Tokens are new cryptocurrency built on top of the ethereum network. This is all still very new and it’s questionable if the various types of tokens have long term value but at the very least you can trade 30k tokens of minereum right now for about $13k in real USD .

However, since any transactions to this account are quickly swept away, it’s impossible to have enough extra for a token transfer because it’s gone nearly as fast as it arrives — usually within two blocks, or about 20 seconds.

Ethereum transactions are executed on the network by sending tiny amounts of value as fees. Any account that wants to send ether or tokens or execute a contract (which comes with a whole different set of fascinating user behaviors) must pay a small amount of ether in addition.

Since this account’s balance is always zero except for very, very short periods of time between the ether arriving and it being automatically grabbed by one of the sweepers, it’s impossible to have enough extra fees to pay to move the tokens.

It’s fascinating to see some money locked in the blockchain not because of an address typo (which is a disturbingly regular occurance) but because of the collective actions of a bunch of people interacting with the chain.

The minereum Mystery

I check this account relatively frequently to see how the various players are doing and the other day I was surprised to notice that some of the minereum that I thought was locked in this account was leaving this account and headed to 957.

This was immediately interesting as this minereum was supposed to be untouchable in this account. How was 957 removing it?

After some investigation, it appeared that 957 had submitted a few transactions without any additional fee to pay for the transaction to be included in the network. In ethereum terms, they set a normal gas limit but set the gas price — essentially a measure of how quickly you want your transaction to be picked up by the network— at 0.

These fees are part of what incentivizes miners to include your transactions on the ethereum network. Without a fee to cover that transaction, there’s no conceivable reason why a miner would include such a transaction in one of their mined blocks. There are plenty of other transactions with lower (but not zero) fees offered that get passed over by miners for blocks on a regular basis, to eventually be included when there’s less network congestion.

You might know this if you’ve tried to buy or interact with a cryptokitty recently and your gas price was set too low, maybe you waited a long time for your transaction to be included. But not for these minereum transactions, they were being included immediately in a block without any transaction fee whatsoever.

That was fascinating — how did these transactions get included in the chain?

Sweepers Become Miners

Most cryptocurrencies are pseudo-anonymous, meaning that you can’t necessarily trace a transaction back to a specific person or email address but you can sometimes say that the same person, whoever they may be, has participated in multiple transactions.

Same thing with miners who create the blocks for the network. We can’t say who they are exactly unless they identify themselves, but we can say that the same address or person has mined blocks at different times.

The mystery of how these minereums were moved started to reveal itself when I realized that all of these zero fee transactions have been included in blocks mined by a miner only identified by the address 0xE4E359702A4Ab1F9C7b2f1A4da8064492eC1D41A. And that this miner has only been operating for the last 13 days:

Most likely 957 had the brilliant idea that they could include whatever transactions they wanted if they only had access to a mining pool. And with $23M in the bank, why not buy your own pool?

Now that 957 has their own mining pool, they just wait for their GPUs to mine a block (which for their pool size happens between 1–3 times a day), and immediately adds ~5 zero gas price transactions to the normal selection of transactions picked up by their node, sweeping tokens to the 957 account and submitting the mined block to the network as usual.

957 also uses this opportunity to move funds out of accounts where the balance is low enough that it doesn’t make sense to pay a tx fee to move that amount otherwise. It might not be worth it for a single transaction, but if you’ve got enough of these accounts with $5 in them then it can accumulate over time and add up to real money. Clearly 957 is playing the long game here, so why not?