I've been learning about how the bitcoin blockchain works and a few other chains related to data storage. I wrote up an idea I'd like to get some feedback on which relates to extending Bitcoin's protocol with another blockchain without the need to change anything in the Bitcoin system. It doesn't have to be specifically for btc, but it can be used on any blockchain technically. I know sidechains involve the issuance of btc into the sidechain system, but in this scenario there isn't the need for any of that. We're just using the 2nd layer chain just for data storage that links back to BTC addresses.
Let me know what you guys think!
I have a rough prototype working, but still need to fix up some stuff.
--------------------------------
Blockchain Agnostic Proposal for Text Data Storage on a SidechainAbstract: Attach text data to any type of blockchain transaction or address without bloating the main chain and off loading this data to a secondary blockchain protocol or sidechain without changing anything with the main protocol.
Introduction: All blockchain implementations involve transactions from a sending address to a receiving address. These transactions are tied to a unique transaction id. Knowing these 3 unique data strings, we can use this information in the secondary layer blockchain for storing this data. This gives the ability to add uncensorable public messages or arbitrary text data to any transaction id or address in any blockchain system.
All blockchains have the following characteristics:1. Transaction Id Address (TA)
2. Sending Address (SA)
3. Receiving address (RA)
Not all blockchain systems were made to store text data, as this would cause blockchain bloat over time. A solution for this is to off load this external data onto a secondary blockchain layer made for for this purpose while keeping the unique identifier in tact and linking it to the data.
This 2nd layer blockchain (sidechain) must be able to store arbitrary text data and be able to query this data via the main chain's addresses (TA/SA/RA). By referencing one of the main chain's addresses (TA/SA/RA) in the sidechain, we are able to pull all related data for this address.
To prove one of the main chain's user has sent the message to another address. The solution to this would be signing a message of the owners sidechain address with the owners main chain private key. Then, make a transaction on the sidechain with the public address and signature to prove the main chain's address owns the sidechain address.
Example Goal: Alice owns the address 15tYFmUV6wG4e1Gbi1buxBM9zSQzcWSkiK and Bob wants to attach a message "hello world" to this address.
Solution: Bob would first generate an account on the sidechain, then create a signature using the main chain's private key and sign the message of his newly made sidechain address. He would then make a sidechain transaction attaching the data:
. This now proves his owns his and vice versa. Now Bob can make a sidechain transaction attaching the message:
To create a link of these 2 blockchains, wallet and block explorer developers would need to parse both chains to make this link by querying the sidechain for the main chain's public address.
The format of this public data would be: