Author

Topic: Question about forgetting transactions. (Read 838 times)

full member
Activity: 169
Merit: 100
Firstbits : 1Hannes
September 29, 2012, 02:08:02 PM
#8
I think your scenario hilights the absurdity of making "certain numbers" illegal more than it illustrates a weakness of Bitcoin.


Good luck having that philosophical conversation with the FBI agents who rock up at your place asking why you are hosting child porn. "But officer it's just a number. Outlawing it is absurd."

Let me know how that goes for you.
legendary
Activity: 1064
Merit: 1001
September 29, 2012, 10:41:35 AM
#7
I think your scenario hilights the absurdity of making "certain numbers" illegal more than it illustrates a weakness of Bitcoin.
full member
Activity: 169
Merit: 100
Firstbits : 1Hannes
September 29, 2012, 06:50:39 AM
#6
Thanks for clearing that up.

I'd like to hear opinions on what the course of action should be in the following hypothetical scenario. An attacker embeds some illegal content, let's say child porn, in the blockchain. This can be done quite cheaply. He then writes and distributes an application that takes a tx hash as input from the user, and then uses the bitcoin protocol to obtain that tx/block containing that tx from some peer decode the content and display it to the user. The application itself is clearly not illegal any more than a browser is illegal, it is simply a viewer that can be used to view both the good and the bad.

On the other hand anyone serving this content may find themselves in trouble with the law. Now, it is unlikely that anyone will go to jail, since you could quite honestly claim that you were unaware of the illegal content, in the same way that Zuckerberg wouldn't go to jail if someone uploaded illegal content to facebook. The critical difference though is that the bitcoin node operator has no way of removing the illegal content when served with a takedown notice (other than taking down the entire node).  The software could easily be modified to not respond to requests for certain blacklisted txs/blocks, but if everyone did this, then new nodes would be unable to start up. Even if only a large fraction of nodes did this, many new nodes will find no willing host among it's peers and the blockchain download will never complete.

This sort of attack is cheap to execute and, combined with a large short position on BTC, may even be profitable. It won't kill bitcoin, since there will always be someone running a node as a hidden service, but it may deliver a crippling blow that may be very difficult to recover from, especially if powers that be manages to form an association between bitcoin and child porn in the public mind.

Ideas?
legendary
Activity: 2506
Merit: 1010
September 29, 2012, 01:46:03 AM
#5
The quote from the wiki is talking about unspent transactions already in the block chain.

Ah, I couldn't find it at first.   It was on the Weaknesses article.

I now see what they were saying.  If miners with a hashing capacity majority won't include the transaction and they won't accept any blocks with that transaction, then a minority cannot force illegal content into the blockchain.  This is pure speculation as to whether you could get the hashing majority of miners to ignore the longest chain and work on a fork just because some content in the longest chain is illegal somewhere else.  i.e., the profit motive alone is likely stronger than any moral or other objection to whatever content is in questoin.

So I moved that paragraph to the Discussion / Talk page for the Weaknesses article:

 - http://en.bitcoin.it/wiki/Talk:Weaknesses
legendary
Activity: 905
Merit: 1012
September 28, 2012, 05:53:32 PM
#4
If a transaction is valid but isn't included in a block, it will simply be held in the node's memory pool.  There are only so many transactions allowed in the pool so the node will drop some that have been around a while and haven't gotten any confirmations.  Or when the node is closed and restarted, it will not know of the transactions it previously received.  If other nodes are still broadcasting the transaction the node will re-discover the transaction and add it back in.

So that's one way a node will "forget" about a transaction.
The quote from the wiki is talking about unspent transactions already in the block chain.
legendary
Activity: 2506
Merit: 1010
September 28, 2012, 03:44:09 PM
#3
What is meant here by "forgetting" a transaction?

If a transaction is valid but isn't included in a block, it will simply be held in the node's memory pool.  There are only so many transactions allowed in the pool so the node will drop some that have been around a while and haven't gotten any confirmations.  Or when the node is closed and restarted, it will not know of the transactions it previously received.  If other nodes are still broadcasting the transaction the node will re-discover the transaction and add it back in.

So that's one way a node will "forget" about a transaction.
legendary
Activity: 905
Merit: 1012
September 28, 2012, 10:20:31 AM
#2
It's wrong; I don't know what it's doing in the wiki. At best it describes an undesirable hard-fork. Every discussed light-weight node proposal involves requesting unknown blocks/transactions from peers, and only one peer would have to have a full history.
full member
Activity: 169
Merit: 100
Firstbits : 1Hannes
September 28, 2012, 07:23:50 AM
#1
Been wondering about this for a while, finally decided to just ask here. From the wiki :

"It is illegal in some countries to possess/distribute certain kinds of data. Since arbitrary data can be included in Bitcoin transactions, and clients must normally have a copy of all unspent transactions, this could cause legal problems.

Unspent transactions can be safely forgotten if more than half of all users are forgetting those transactions. If a miner neglects to forget an unspent transaction and is in the minority, its blocks will be rejected by the majority if those transactions are subsequently spent."

What is meant here by "forgetting" a transaction? I understand that the tx itself can be pruned from the miner's local copy by using the merkle tree, but somewhere, someone needs to retain the original block and be willing to send it to peers on request. New nodes that are starting up cannot accept pruned blocks  since they have no way of knowing whether the pruned txs were spent or unspent. Therefore there always needs to be at least one node willing to resend blocks with illegal content upon request or it becomes impossible for new nodes to start up. Given that law enforcement can easily start up a node, see where it downloads the dodgy block(s) from and go after the owner of that IP, this is only viable if the relevant node is sitting behind a tor hidden service. But this requires that all new nodes starting up go through tor.
Jump to: