Read Data Encoded in the Bitcoin Blockchain
The Bitcoin network features intentional computational restrictions in its core software, as it is intended to be used for bitcoin transactions. However, different workarounds have been successfully tested to encode arbitrary data into the blockchain.
This example demonstrates how to use BlockchainTransactionData to extract data from a Bitcoin testnet transaction and decode it.
The following transaction ID is used because it has an encoded message.
Get the outputs of the transaction and extract the amount of each one.
For this particular case, decode the data by converting each amount to its binary representation and get the IntegerDigits.
The decoded data is a list of states of a cellular automaton. After normalizing the length of each element, an ArrayPlot shows the first 15 steps of a cellular automaton.
The encoded cellular automaton turns out to be Rule 110, as seen here.