UPDATE: Immediately after posting this article, the @totheblockchain account was suspended by Twitter. Jonathan Otto is working to get the account restored. We will update this post when it's back online. Jason's tweet, however, will live on the Bitcoin blockchain forever.
In the wake of the Cambridge Analytica Facebook scandal, many of us are looking for ways to limit the personal data that we have floating around the internet. There’s plenty of ways to do this, from simply deleting your Facebook to poisoning your data or deploying simple scripts that will automatically delete your tweets.
But for those of you who’d rather have your data online permanently, there’s To the Blockchain, a Twitter bot that will automatically post your tweets to the blockchain for the low, low price of $9.
After signing up for an account and putting in payment information, all you have to do is reply to the tweet you want archived with ‘ @totheblockchain.’ The bot will automatically post the tweet to the blockchain and charge you the $9 fee.
After replying to the tweet with ‘@totheblockchain’ from a dummy Motherboard account, I instantly got a reply showing a screenshot of the original tweet and a link to the transaction where the tweet will be stored forever. The transaction shows the handle of the Twitter user whose tweet you’re archiving, your own Twitter handle, the ID of the tweet and a time stamp.
Once the block that includes the transaction is added to the blockchain and confirmed—a process that can take from 20 minutes to over an hour depending on network congestion—there was another tweet informing me that the transaction is permanent and another link to the transaction. The tweet is now stored in the form of a cryptographic hash—a way of encoding plain text data into a seemingly random string of numbers and letters—and will never be able to be removed from the blockchain, even if the tweet is deleted from Twitter.
HOW IT WORKS
Each block on the Bitcoin blockchain is basically a container for transaction data and is meant to show all the bitcoins that have been used in the past ten minutes. When person A wants to send a bitcoin to person B, this process is registered in the block as a transaction input and output that describes what is happening (namely, that person A is sending a bitcoin to person B) and the mass of these transaction inputs and outputs is the distributed ledger known as blockchain.
All of the transaction outputs are spendable in the sense that they represent the movement of bitcoins from one wallet to another. The exception is a type of transaction output called OP_RETURN, which is a type of transaction output that can be used to store data, but won’t be able to spend the bitcoins associated with that transaction.
‘To the Blockchain’ uses OP_RETURN to store tweets on the blockchain. To recover a tweet that has been stored in this way, first navigate to the transaction using a blockchain explorer and the transaction ID. We’ll use Jason’s tweet as an example. Once we’re looking at the transaction, we’ll see some output data that looks like this:
Next to “(decoded)”, you’ll see Jason’s Twitter handle, the tweet ID, the time stamp, and the Twitter handle of the person who requested the archived tweet. Then you’ll see a few lines below each of which begins with ‘HASH160 PUSHDATA(20)’ and then some numbers and letters in between brackets. Those numbers and letters are a hash of Jason’s text broken up into 20 byte chunks. To recompose the tweet, simply enter all the data in the brackets as one line into a hex to ascii converter: 497320746865206e657720736561736f6e206f66204a65727365792053686f726520676f6f6400005d2c81323abc3a20f00fb9a7275e51ff49a21a7f
At this point, you should be able to see the plain text of Jason’s tweet: “Is the new season of Jersey Shore good?”
The reason the service is so expensive is because you’re effectively destroying small amounts of bitcoin by creating an unspendable transaction to store data. In this case, about $1 worth of bitcoin was used for the transaction and the rest of the $8 presumably goes to the Twitter bot’s creator, Jonathan Otto. Yet as Otto pointed out to me, he won't be making $8 in profit on every tweet since the price of Bitcoin fluctuates so wildly.
To use the Bitcoin network, you have to pay a fee for every transaction and the higher fee you pay the faster that transaction will get pushed through the network and confirmed. The fee rate varies wildly depending on how much traffic there is on a network, which Otto said made finding a price for posting a tweet to the network difficult. Last week, he decided on charging 8 satoshis (one satoshi is one hundreth of a millionth of a bitcoin) per byte of data in a tweet since this was a reasonable rate to push data onto the Bitcoin blockchain quickly.
Yet only a few days later, transaction fees to push data onto the blockchain are over ten times that amount. According to Bitcoinfees, to get data on the blockchain quickly it will cost about 110 satoshis per byte today. In January, when the Bitcoin frenzy was at its peak, this was as high as 900 satoshis per byte, Otto told me. This means archiving a tweet (up to 600 bytes) could have cost about 540,000 satoshis in January. The price of Bitcoin hit a high of over $18,000 that month, which means that posting a single tweet to the Bitcoin network could have cost about $100.
"While deliberating on various pricing strategies, I decided to settle on $9 USD and hoped that fees would remain low, but now just a few days into it I'm going to have to make some pricing decisions," Otto told me in an email. "Pricing this product is challenging and it may end up requiring pricing that changes daily."
If $9 is still too pricey for you, there are ways to put tweets on the Bitcoin blockchain yourself and lots of people have hidden art and secret messages on the blockchain over the years. But unless you have a decent amount of coding experience, it’s probably best to leave it to the pros.