Post
Topic
Board Development & Technical Discussion
Re: Question about computation power for purposeful modification of blockchain data
by
Kogs
on 23/03/2018, 17:14:41 UTC
Changes to avoid downloading and/or storing such transactions would only be possible for full nodes which are only used privately (with closed port 8333).

This is not true.

Every accessible full node in the network need to provide the correct blocks/transaction to any other node which asks for this blocks, otherwise there is no way for a new node to validate and sync the blockchain correctly.
So, the blocks with those transactions need to be stored by every full node.

This is clearly not true.  If it was true, then it would not be possible to run Bitcoin Core with pruning turned on.

What could be possible is to disallow the access of those transaction by the local gui and via the RPC interface.

But this would not help at all, there is no way to force anybody to use this "censoring" client.

Correct.  The idea would be to provide a client that users can optionally run if they want to avoid downloading the objectionable data and still maintain the rest of the blockchain.

The only way would be to censor those transactions via a hardfork.

Not true.

But this would require every client to be updated, which will never happen.

Only the clients that don't want to reeive or store the data.

Actually the only reason for blockchains is the censorship resistance and immutable property. If we start to implement any way to censor anything (which is actually not possible), we would not need a blockchain anymore. A side effect of censorship resistance and immutable is unfortunately that there can be also stored illegal data which will be there forever.

Correct. I'm not saying that the data would be gone from ALL copies of the blockchain.  I'm just saying that it would be gone from the copies of the blockchain that are being maintained by the users with the new software.

It would only disappear from ALL copies of the blockchain if EVERYBODY ran the new software, AND purged ALL old copies of the blockchain.


I got your point. The specific client which censors these transactions will only be used by people who want it. In this case it would technically work for those people.

But my points you think are wrong are still valid. This client would have some limits and cannot be used as a normal full node any more.

This specific client would only be useful as wallet, as it contains modified blocks which other nodes would reject when it broadcasts them.
If someone install a new orignal full node and ask for blocks to download the blockchain from beginning, this specific client would not be able to serve this as it would get blocked by the other node whenever the cencsored block is transmitted.

The comparison with pruned nodes is not good. First these nodes do not hold any invalid (censored) transactions or blocks. And second, like this specific client, they cannot broadcast all blocks to the network, they only forward new received blocks and can maybe send the blocks which are not pruned. If the whole bitcoin network would only consist of pruned nodes, it would not be possible to install a new full node as no one has a full copy of the blockchain any more. Even for pruned nodes, first the complete blockchain need to be downloaded and validated, only then the already spent transacations will get deleted and only the unspendet transaction will be kept on disk to save space.

I'm just thinking of any reason why anybody would want to install such a specific client which censors some transactions.
Only people who don't want to have those things on their PC would install it. But wouldn't it in this case just be not enough that those people don't look at these transactions?
Nearly no normal user is searching the local copy of the blockchain for transactions like this. Most people just don't know that such transactions exists. And even if they would know it, again most of these people would not be able to find such transactions and extract any image files out of the blockchain.

So you would need someone who know that such transactions with hidden images exists. This one need to investigate which transactions this are (not sure if there are listings of such transactions available in the internet). Then he would need to find out how to extract the information from the blockchain to save it as a picture.
In case you have somebody who really want to do this, then he would not download this specific client but the original one. Or maybe much easier just get the transactions from blockchain.info or something similar.

These are just my thoughs why it would be useless to invest time in creating such a client.
The people who don't like these things will not try to find it even if it is somewhere saved on their local copy of the blockchain, and the other people (I think there will not be much people at all) who want to get those stuff will not use this client.