Pages:
Author

Topic: Do you think SatoshiDice is blockchain spam? Drop their TX's - Solution inside - page 6. (Read 12858 times)

legendary
Activity: 1400
Merit: 1009
Please explain to me why anyone would spend 10,000 satoshi to send 1 satoshi?
They wouldn't, but that's not what he was talking about.

If I'm spending half of a 10 BTC output and have a 1 satoshi output laying around I could add it as a second input to the transaction and send 5.00000001 to the change output instead of 5.00000000

Do this enough and the dust problem is solved.
hero member
Activity: 938
Merit: 1009

why, Why, WHY Won't it READ?!


Welcome to the Bitcointalk Forums.
legendary
Activity: 1064
Merit: 1001
and the dust can be dealt with by including them as an input to a subsequent tx.

Did you not read? Sure, the dust COULD be included as an input in a subsequent tx but the fee required for that tx will be higher than the amount of the dust. For example, a 1 satoshi input with a 10,000 satoshi fee. Please explain to me why anyone would spend 10,000 satoshi to send 1 satoshi?

why, Why, WHY Won't it READ?!

legendary
Activity: 1764
Merit: 1002
i've come around to the idea that SD tx's are not spam.  they're paying fees after all which are contributing to miners bottom line.  and the dust can be dealt with by including them as an input to a subsequent tx.
legendary
Activity: 2282
Merit: 1050
Monero Core Team
Then at least set the min tx value to the transaction fee. It will have the desired effect. My proposal is to deal with transactions which create one or more addresses that contain only dust leading to blockchain bloat that is very difficult if not impossible to prune. A bona fide send many transaction that creates dust as a byproduct can deal with this by adding the dust to the TX fee.  
legendary
Activity: 1596
Merit: 1091
Lets make sure Bitcoin is transaction neutral!

Bitcoin was never transaction-neutral. Transactions with the highest fees per kilobyte will always "win", while transactions with no fees and new coins will always "lose". The rules exist to protect the network

Much more than that -- miners have always had the power to choose which transactions to include in blocks, which transactions to exclude from blocks.

The "censorship" is an intentional part of the system.  Miners should be free to ignore transactions they do not feel worth mining.

legendary
Activity: 1358
Merit: 1002
Why not simply refuse to relay transactions where any of the outputs is less than the transaction fee?

What? And drop most of sendmany transactions with it? No thanks!
I only want to drop SD transactions, The dust filter to drop tx less than 10k satoshis is just a add-on and can be modified to only drop tx's equal or less than 2 satoshis, which woud drop all of SD "you lose" messages and not many more tx's.
legendary
Activity: 2282
Merit: 1050
Monero Core Team
Why not simply refuse to relay transactions where any of the outputs is less than the transaction fee?

The client can be modifed so that any "dust" left over is added to the transaction fee. Of course one could send "dust" with a 0 transaction fee but then one needs a miner willing to add it to the blockchain.

No need to Wikileak S.Dice or anyone else a la VISA, MasterCard PayPal etc.
legendary
Activity: 1358
Merit: 1002
people will learn to make their transactions and addresses truly anonymous, and make it impossible to filter them on any arbitrary parameters, like addresses starting with "1dice".

SD will have to have certain fixed addresses. Whether they use a vanity name or not, it will always be possible to hard-code the list of their addresses in the code.

This having been said, the OP's patch is a temporary hack designed to provide immediate relief but it is not viable in the long term. The correct technical solution is to punish the bad behavior (economically unviable outputs) no matter who it comes from.

Note that SatoshiDICE is not the only entity that put unprunable spam in the block chain. ASICMiner recently sent a 1-satoshi dividend to all it's shareholders. A good technical solution would filter that as well.


If you don't modify the patch it will drop all tx's that are equal or less than 10,000 satoshis, so those ASICMiner dividends would also be dropped, not relayed and only verifyed when they got into a block.
legendary
Activity: 1974
Merit: 1029
The only utility I see in this patch is for new clients. I guess the initial blochain downloading/validation would be sped up somewhat with it applied. Wrapping it into a command-line switch would make that a possibility.
legendary
Activity: 1064
Merit: 1001
people will learn to make their transactions and addresses truly anonymous, and make it impossible to filter them on any arbitrary parameters, like addresses starting with "1dice".

SD will have to have certain fixed addresses. Whether they use a vanity name or not, it will always be possible to hard-code the list of their addresses in the code.

This having been said, the OP's patch is a temporary hack designed to provide immediate relief but it is not viable in the long term. The correct technical solution is to punish the bad behavior (economically unviable outputs) no matter who it comes from.

Note that SatoshiDICE is not the only entity that put unprunable spam in the block chain. ASICMiner recently sent a 1-satoshi dividend to all it's shareholders. A good technical solution would filter that as well.
legendary
Activity: 1358
Merit: 1002
SatoshiDice is broken, and this patch proves it.
full member
Activity: 203
Merit: 100
Quote
I think the patch for dropping satoshiDICE TXs is providing a valuable service. If one little patch can bring Bitcoin to it's knees (hyperbole), then Bitcoin is clearly not ready for the levels of adoption some, including myself, hope for.

SatoshiDice TX dropping patch - stress testing Bitcoin since March 2013.

Great view of the problem Smiley
Actually, I think that one good thing might come out of this: people will learn to make their transactions and addresses truly anonymous, and make it impossible to filter them on any arbitrary parameters, like addresses starting with "1dice".
full member
Activity: 209
Merit: 101
FUTURE OF CRYPTO IS HERE!
I think satoshiDICE is providing a valuable service. If one little gambling website can bring Bitcoin to it's knees (hyperbole), then Bitcoin is clearly not ready for the levels of adoption some, including myself, hope for.

satoshiDICE - stress testing Bitcoin since April 2012.

I think the patch for dropping satoshiDICE TXs is providing a valuable service. If one little patch can bring Bitcoin to it's knees (hyperbole), then Bitcoin is clearly not ready for the levels of adoption some, including myself, hope for.

SatoshiDice TX dropping patch - stress testing Bitcoin since March 2013.
full member
Activity: 211
Merit: 100
"Living the Kewl Life"
Anyway how I know who is using this 'fork'?, i dont want have anyting to do with it. (I use giminer ) where I can learn how patching, system is working??

view the txs for the solved blocks of your mining pool. shouldn't be too hard to tell if they're including 1dice txs
full member
Activity: 161
Merit: 100
Anyway how I know who is using this 'fork'?, i dont want have anyting to do with it. (I use giminer ) where I can learn how patching, system is working??
full member
Activity: 161
Merit: 100
As per my request, Gmaxwell wrote a patch to apply to the Bitcoin client that will drop all transactions to SatoshiDice and simply not relay or verify them. It will also drop all transactions that are less than 10,000 satoshis in value, so you might want to change that value to 1 or 2 satoshis, to only drop SD's losing bets tx's.

Let's show them how the free market works and that not only miners have a say on this subject!

Code:
diff --git a/src/main.cpp b/src/main.cpp
index 9a06dbf..d3fba73 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -384,8 +384,16 @@ bool CTransaction::IsStandard() const
     BOOST_FOREACH(const CTxOut& txout, vout) {
         if (!::IsStandard(txout.scriptPubKey))
             return false;
+        if (txout.scriptPubKey.size() > 6
+         && txout.scriptPubKey[0] == OP_DUP
+         && txout.scriptPubKey[3] == 0x06
+         && txout.scriptPubKey[4] == 0xf1
+         && txout.scriptPubKey[5] == 0xb6)
+            return error("CTransaction::IsStandard : ignoring transaction with 1dice output");
         if (txout.nValue == 0)
-            return false;
+            return error("CTransaction::IsStandard : ignoring transaction with 0 value output");
+        if (txout.nValue <= 10000)
+            return error("CTransaction::IsStandard : ignoring transaction with dust output");
     }
     return true;
 }

You may not be interested in the if (txout.nValue <= 10000)  test, though it also gets the dice you-lost transactions and other UXTO set bloating flood.

This will make the node not relay or mine these transactions. It will, of course, still accept them in blocks.

Are you for real ? IS NOT SPAM its transaction, if bitcoin will be sucess 99,99% transaction will be in satoshi..
hero member
Activity: 488
Merit: 500
SatoshiDICE is taking advantage of the early stage of Bitcoin, at a time when transaction volume is too low to fill the blocks and bring fees up to a level that would make up for the drop in subsidy. If Bitcoin was fully mature, it will not be vulnerable to this type of transaction spam and no one would be talking about it let alone suggest patches, because fees would make the dust spam economically unviable.

The problem is that we do not have a mature network, and we're in the bootstrapping phase. SatoshiDICE is consuming the "startup capital" (current state of low fees, high subsidy, and lots of free space in blocks) to profit without bringing a corresponding increase in growth of Bitcoin adoption. The simple fact is that a relatively small handful of gambling addicts and bots are flooding the block chain with 70%+ of its transactions.

This is not good.


Well put. I would like to point out that the number of transactions itself is not the real problem. I believe in bitcoin and hope it becomes mainstream sometime. When this point is reached the number of SDice transactions will not be significant anymore, so we have to deal with these scaleability issues. But I DO care about those "1 Satoshi bet result information" transactions. As pointed out by others, these Satoshis are effectively unspendable. So SDice is burning money with their ignorance.
sr. member
Activity: 426
Merit: 250
It is really easy for satoshidice to implement an other way of confirming transactions. They are not doing so because they have no incentive to do so, with this I have a vote in it!

Thanks Psy.
legendary
Activity: 1078
Merit: 1002
100 satoshis -> ISO code
Unfortunately, the patch is not much more effective than turning the radio up to drown out a strange noise from the car.

I wouldn't be so sure. Having Bitcoin users get into the habit of understanding and applying client changes is a good way to raise awareness. Ultimately, it is only through informed decisions about what changes to accept or reject that we can have a healthy network of decentralized nodes.


Yes, in the general sense you are absolutely right. It is this specific case which has me worried. As you say "not good".
Even if SD starts behaving, several similar applications could kick off at any time...
Pages:
Jump to: