Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: Erkallys on January 17, 2016, 01:52:50 AM



Title: Any way to hide words in transactions thanks to txID ?
Post by: Erkallys on January 17, 2016, 01:52:50 AM
Would it be possible for someone to hide words in the blockchain using txID ? I know that it is possible using generated addresses or outputs, but it is still limited, since generated addresses can't be too long if you don't want to take 3 years to generate it and outputs, beside the fact that it can cost money if they're big, are not really useful. Do answer this question, I'd need to know how are generated the txID. Do they depend of something or are they really random ? In the second case, that's a possibility to forget about :(...


Title: Re: Any way to hide words in transactions thanks to txID ?
Post by: Your Point Is Invalid on January 17, 2016, 01:57:00 AM
yes, to an extent, some details can be found here (https://bitcointalk.org/index.php?topic=818368.0)


Title: Re: Any way to hide words in transactions thanks to txID ?
Post by: achow101 on January 17, 2016, 01:58:45 AM
Would it be possible for someone to hide words in the blockchain using txID ? I know that it is possible using generated addresses or outputs, but it is still limited, since generated addresses can't be too long if you don't want to take 3 years to generate it and outputs, beside the fact that it can cost money if they're big, are not really useful. Do answer this question, I'd need to know how are generated the txID. Do they depend of something or are they really random ? In the second case, that's a possibility to forget about :(...
Transaction Ids are the SHA256 hash of the entire contents of a transaction. You could theoretically try to brute force the txid of a transaction to get words in it like we do for vanity addresses.


Title: Re: Any way to hide words in transactions thanks to txID ?
Post by: Erkallys on January 17, 2016, 02:02:53 AM
yes, to an extent, some details can be found here (https://bitcointalk.org/index.php?topic=818368.0)

Thank you to have posted here this link, but this only explain that we can sign a transaction multiple times to get a letter that we want. We need to rely on random factors, and to find a word in this, you'll have to do it at least a million times :-\...



Would it be possible for someone to hide words in the blockchain using txID ? I know that it is possible using generated addresses or outputs, but it is still limited, since generated addresses can't be too long if you don't want to take 3 years to generate it and outputs, beside the fact that it can cost money if they're big, are not really useful. Do answer this question, I'd need to know how are generated the txID. Do they depend of something or are they really random ? In the second case, that's a possibility to forget about :(...
Transaction Ids are the SHA256 hash of the entire contents of a transaction. You could theoretically try to brute force the txid of a transaction to get words in it like we do for vanity addresses.

To have vanity addresses, if I remember well, you generate the private keys of the corresponding addresses. But what do you have to find here ?


Title: Re: Any way to hide words in transactions thanks to txID ?
Post by: achow101 on January 17, 2016, 02:07:53 AM
Would it be possible for someone to hide words in the blockchain using txID ? I know that it is possible using generated addresses or outputs, but it is still limited, since generated addresses can't be too long if you don't want to take 3 years to generate it and outputs, beside the fact that it can cost money if they're big, are not really useful. Do answer this question, I'd need to know how are generated the txID. Do they depend of something or are they really random ? In the second case, that's a possibility to forget about :(...
Transaction Ids are the SHA256 hash of the entire contents of a transaction. You could theoretically try to brute force the txid of a transaction to get words in it like we do for vanity addresses.

To have vanity addresses, if I remember well, you generate the private keys of the corresponding addresses. But what do you have to find here ?
To find vanity addresses, different private keys are tried over and over again until one comes out to have an address that has the characters you want. The same idea goes with txids, except it would be much harder and take much more time. Each time, something in the transaction would need to change (e.g. an output, sequence number, address) and then the address resigned and then hashed to find the txid. If you keep doing this over and over again, you may find a txid that has the pattern you want in it.


Title: Re: Any way to hide words in transactions thanks to txID ?
Post by: Erkallys on January 17, 2016, 02:21:27 AM
Would it be possible for someone to hide words in the blockchain using txID ? I know that it is possible using generated addresses or outputs, but it is still limited, since generated addresses can't be too long if you don't want to take 3 years to generate it and outputs, beside the fact that it can cost money if they're big, are not really useful. Do answer this question, I'd need to know how are generated the txID. Do they depend of something or are they really random ? In the second case, that's a possibility to forget about :(...
Transaction Ids are the SHA256 hash of the entire contents of a transaction. You could theoretically try to brute force the txid of a transaction to get words in it like we do for vanity addresses.

To have vanity addresses, if I remember well, you generate the private keys of the corresponding addresses. But what do you have to find here ?
To find vanity addresses, different private keys are tried over and over again until one comes out to have an address that has the characters you want. The same idea goes with txids, except it would be much harder and take much more time. Each time, something in the transaction would need to change (e.g. an output, sequence number, address) and then the address resigned and then hashed to find the txid. If you keep doing this over and over again, you may find a txid that has the pattern you want in it.

All right, but let's say the output is big, sending it to a random address isn't a good idea. So if you really wants to do it you'll have to lose a lot of money ? Also, do you speak theorically, or does any working tool has been released ? Since this has not so much interest, I don't think so, but tthat's still possible for a reason that I ignore.


Title: Re: Any way to hide words in transactions thanks to txID ?
Post by: achow101 on January 17, 2016, 02:24:22 AM
All right, but let's say the output is big, sending it to a random address isn't a good idea. So if you really wants to do it you'll have to lose a lot of money ? Also, do you speak theorically, or does any working tool has been released ? Since this has not so much interest, I don't think so, but tthat's still possible for a reason that I ignore.
You could send it to yourself, you won't lose any money doing that.

I speak theoretically. I don't think there is any tool that does this, and if there was, it must work really slowly since signing stuff is computationally expensive.


Title: Re: Any way to hide words in transactions thanks to txID ?
Post by: Erkallys on January 17, 2016, 02:28:54 AM
All right, but let's say the output is big, sending it to a random address isn't a good idea. So if you really wants to do it you'll have to lose a lot of money ? Also, do you speak theorically, or does any working tool has been released ? Since this has not so much interest, I don't think so, but tthat's still possible for a reason that I ignore.
You could send it to yourself, you won't lose any money doing that.

I speak theoretically. I don't think there is any tool that does this, and if there was, it must work really slowly since signing stuff is computationally expensive.

So in the reality, this is an idea that will never be brought in practice ? If the tool or whatever you want have to change the address to have the transaction ID to look like you want to an address that you don't have, except forgetting about the idea or losing money they're not another option ?


Title: Re: Any way to hide words in transactions thanks to txID ?
Post by: achow101 on January 17, 2016, 02:34:48 AM
So in the reality, this is an idea that will never be brought in practice ?
probably not.

If the tool or whatever you want have to change the address to have the transaction ID to look like you want to an address that you don't have, except forgetting about the idea or losing money they're not another option ?
It doesn't have to change the address. It could change a number of other things. It could change the input and output values of the transaction. There are somethings in the signature that could be changed. Addresses could be added, sequence numbers of inputs could be changed, etc. It doesn't have to be addresses.

However, the problem with this is that it is essentially brute forcing a hash and there are simply too many variables changing. Changing anything in the transaction means that the signature will change as well. This means that the change is not entirely systematic as traditional brute forcing should be. Even without it being systematic, it can be done, just not very efficiently.


Title: Re: Any way to hide words in transactions thanks to txID ?
Post by: CIYAM on January 17, 2016, 02:47:41 AM
I wrote some code that would let you encode data into addresses here: https://github.com/ciyam/ciyam/blob/master/src/crypto_keys.cpp#L757

The method shown only encodes one byte per address (even trying two bytes per address is rather too slow to be of much use) but at least you have all the secret keys (so all addresses can be redeemed by yourself).

Of course the tx fees will become rather large as you add more and more outputs to the tx so is it a very practical way to store information in the blockchain? No and that isn't what the blockchain should be used for anyway (there will soon enough be things like side chains that will be suitable for such things).

Why did I code this? Mostly it was just some experimentation and fun (I haven't actually used it with any tx I have pushed onto mainnet).


Title: Re: Any way to hide words in transactions thanks to txID ?
Post by: Erkallys on January 17, 2016, 03:02:46 AM
I wrote some code that would let you encode data into addresses here: https://github.com/ciyam/ciyam/blob/master/src/crypto_keys.cpp#L757

The method shown only encodes one byte per address (even trying two bytes per address is rather too slow to be of much use) but at least you have all the secret keys (so all addresses can be redeemed by yourself).

Of course the tx fees will become rather large as you add more and more outputs to the tx so is it a very practical way to store information in the blockchain? No and that isn't what the blockchain should be used for anyway (there will soon enough be things like side chains that will be suitable for such things).

Why did I code this? Mostly it was just some experimentation and fun (I haven't actually used it with any tx I have pushed onto mainnet).


I'll take a look to your program. What are sidechains ? A feature to be implemented soon into Bitcoin Core ? I think that it is because the blockchain has not been intented to store data that you have to do it. After all, this is to hide something that I'm looking for a way to hide it in transaction IDs ?


Title: Re: Any way to hide words in transactions thanks to txID ?
Post by: Erkallys on January 23, 2016, 11:19:39 AM
I wrote some code that would let you encode data into addresses here: https://github.com/ciyam/ciyam/blob/master/src/crypto_keys.cpp#L757

The method shown only encodes one byte per address (even trying two bytes per address is rather too slow to be of much use) but at least you have all the secret keys (so all addresses can be redeemed by yourself).

Of course the tx fees will become rather large as you add more and more outputs to the tx so is it a very practical way to store information in the blockchain? No and that isn't what the blockchain should be used for anyway (there will soon enough be things like side chains that will be suitable for such things).

Why did I code this? Mostly it was just some experimentation and fun (I haven't actually used it with any tx I have pushed onto mainnet).


I'll take a look to your program. What are sidechains ? A feature to be implemented soon into Bitcoin Core ? I think that it is because the blockchain has not been intented to store data that you have to do it. After all, this is to hide something that I'm looking for a way to hide it in transaction IDs ?

Sidechain is a concept to work on the top of a blockchain. It will not be implemented into bitcoin core. You can create an asset over blockchain. This is similar to XCP for bitcoin. If you take into NXT coin you see there are a lot of asset coins created on top of NXT coin blockchain. There are many more sidechain concepts in this forum.

When talking about assets, I know what you mean now. However, I don't think that it has his place in Bitcoin's ecosystem. This is definitely an altcoin feature.


Title: Re: Any way to hide words in transactions thanks to txID ?
Post by: bob123 on January 24, 2016, 11:47:21 AM
Theroetically this is possible.. but i dont think this would be efficient at all.