Search content
Sort by

Showing 20 of 60 results by basil00
Post
Topic
Board Development & Technical Discussion
Re: bitcoin "unlimited" seeks review
by
basil00
on 09/01/2016, 08:28:41 UTC
For people who want to track consensus regardless of the who/what/where/when/why of the eventual block size limit increase, Bitcoin Unlimited is the best choice.

PseudoNode is better because it also covers any future non-blocksize related hardfork:



The only rational thing to do is to replace the entire Bitcoin network with PseudoNodes Tongue
Post
Topic
Board Development & Technical Discussion
Re: Cheap way to attack blockchain
by
basil00
on 02/12/2015, 04:03:04 UTC
This attack can be made more effective by exploiting this.  That is, instead of a vanilla OP_RETURN you use the script:

Code:
   OP_RETURN OP_CHECKMULTISIG

This counts as a extra 20 sigOps.  This bug is fixed in 0.12.0 (by making this script non-standard).
Post
Topic
Board Development & Technical Discussion
Re: Cheap way to attack blockchain
by
basil00
on 01/12/2015, 03:23:47 UTC
Is fixing of this issue requiring a full 'hard forking'

Fixing the broken sigOp counting method is indeed a hardfork.  It can be fixed when (if?) there is a block-size hardfork, e.g. this is one proposal.

This specific attack can also be mitigated by enforcing a bytes-per-sigop limit (policy change), as was merged into 0.12.0.  Any miner that does not adopt this policy will still be vulnerable.
Post
Topic
Board Development & Technical Discussion
Re: Cheap way to attack blockchain
by
basil00
on 29/11/2015, 15:40:05 UTC
Another attack...last 6 blocks (edit: and counting) have been hit.

Example: #385910 with 19125 fake sigOps.  The block is only 200KB despite a 5MB backlog (according to tradeblock).  It seems this attack is very effective.

Edit:
#385911 unaffected (enough high-fee legit txs)
#385912 = 18990 fake sigOps, 280KB.
#385913 = 18945 fake sigOps, 281KB.
#385914 = 17325 fake sigOps, 470KB.
...etc.
Post
Topic
Board Development & Technical Discussion
Re: Cheap way to attack blockchain
by
basil00
on 24/11/2015, 01:02:10 UTC
I changed my mind

At least the attack is proven to work in practice.
Post
Topic
Board Development & Technical Discussion
Re: Cheap way to attack blockchain
by
basil00
on 23/11/2015, 14:19:38 UTC

Another attack, this time block #384831's sigOp limit was hit.

Is this you amaclin?  I thought this would be against your policy of not spending money on attacks?

Post
Topic
Board Development & Technical Discussion
Re: Cheap way to attack blockchain
by
basil00
on 08/11/2015, 05:18:00 UTC
Worse case scenerio: Buffer Overflow->Code Execution in poorly coded clients.

This is a specific DoS attack vector that has nothing to do with buffer overflows.

The worse case scenario is that no transactions are confirmed for a while until centralized mining intervenes.
Post
Topic
Board Development & Technical Discussion
Re: Cheap way to attack blockchain
by
basil00
on 05/11/2015, 01:21:44 UTC
Looks like the attacker has successfully launched another attack.  This time using the address 3EgSUauJG5N27AUfQwiUfjAhHe6y9AKdVs corresponding to the script:

Code:
OP_IF 0x42412fb4 OP_15 OP_CHECKMULTISIG OP_ENDIF OP_1

This time the attacker managed to successfully fill the 20,000 sigOp limit for block #382053, where 1245x15 = 18675 are fake sigOps arising from the attack transactions.  This meant that no more transactions (legitimate or otherwise) could be included in the block, leading to an underfull block of ~288KB (of which ~68KB are the attack txs).  Note that the network is currently running at capacity, with 1MB or 750KB blocks the norm.

The new attack was limited to a single block.  Also the attacker used a low fee rate of ~18sat/byte.  A higher fee rate would have made the attack for effective (but more expensive).
Post
Topic
Board Development & Technical Discussion
Re: Cheap way to attack blockchain
by
basil00
on 31/10/2015, 23:57:42 UTC
It appears that someone launched a limited form of this attack using the address 3G83ox5zw7D6eySoSMCervh9cbhMXdA5t9.  The address corresponds to the script:

Code:
OP_IF
   0x451e75af
   OP_15
   OP_CHECKMULTISIG
OP_ENDIF
OP_1

The script is spent by push 0 in the sigScript.

The attacker only generated 960 such outputs, which corresponds to 14400 sigOps, which is not enough even to fill a block.  Furthermore the fee rate for the transactions was not very high (37sat/byte), meaning that most normal traffic would be unaffected anyway.  So overall this attack had no affect.  Maybe this was a test?
Post
Topic
Board Development & Technical Discussion
Re: New transaction malleability attack wave? Another stresstest?
by
basil00
on 09/10/2015, 10:30:02 UTC
The is an easy rule-of-thumb to spot high-S signatures.  For example, the following sig is high-S
This test is not quite precise, so implementers of bitcoin software shouldn't implement the test this way. Smiley The threshold is not a power of two, so no tidy hex digit sniffing can be precise.

It was meant to be a "rule of thumb" for humans -- not a precise test.
Post
Topic
Board Development & Technical Discussion
Re: New transaction malleability attack wave? Another stresstest?
by
basil00
on 08/10/2015, 11:28:56 UTC
How do I determine whether it is signed with highS or not ?
Step 3: check, whether the S value is below the curve order

The is an easy rule-of-thumb to spot high-S signatures.  For example, the following sig is high-S

3046022100aea3c7faf22df9ecf795ddb470d000bb2345679363fde6c24df4ab9c6922ff5d022100ae2ff77a2cd10794f166cbb7782316d6ceb74fc22c2188a22c52f6f1847401fa01


If the highlighted hex "022100" appears in the middle of the sig, then it is high-S.  Compare with the low-S equivalent:

3045022100aea3c7faf22df9ecf795ddb470d000bb2345679363fde6c24df4ab9c6922ff5d022051d00885d32ef86b0e99344887dce927ebf78d2483271799937f679b4bc23f4701


The low-S has "0220" (highlighted) or something else.
Post
Topic
Board Games and rounds
Re: CoinWallet.eu Stress Test Cancelled + Bitcoin Giveaway
by
basil00
on 08/10/2015, 00:39:24 UTC
The user that posted the mines keys didn't connect since the 11 September, he did his job and i suppose the waves stopped from weeks ago.

As I said in my post (which was overlooked?): coinwallet are not releasing more keys and are consolidating the remaining spam for themselves.  The current >1GB mempool backlog is directly related to this.
Post
Topic
Board Games and rounds
Re: CoinWallet.eu Stress Test Cancelled + Bitcoin Giveaway
by
basil00
on 07/10/2015, 10:28:04 UTC
It seems Coinwallet have cancelled the 'giveaway' and have started consolidating the remaining dust presumably for themselves.  Example tx.  They have not released anymore keys AFAIK.
Post
Topic
Board Development & Technical Discussion
Re: New transaction malleability attack wave? Another stresstest?
by
basil00
on 04/10/2015, 16:19:49 UTC
So does this necessarily mean that any outputs in that transaction won't be received by the address it was sent to? If so, the balance won't be affected if the transaction was invalidated, right?

The entire tx chain (from the tx I linked to) has been invalidated.  This means that the sender needs to create new txs otherwise you'll never get paid.
Post
Topic
Board Development & Technical Discussion
Re: New transaction malleability attack wave? Another stresstest?
by
basil00
on 04/10/2015, 15:41:48 UTC
Good thing you only wasted an hour. I'm waiting for over 6 hours for this particular transaction to confirm: http://btc.blockr.io/zerotx/info/844f88ef20fb5d2d2ecf897772d429d9bca1d3cab6314e5ed3017b48940f096a

This tx will not confirm.  It belongs to a tx chain that has already been invalidated by a malleated tx (original is here).
Post
Topic
Board Development & Technical Discussion
Re: New transaction malleability attack wave? Another stresstest?
by
basil00
on 04/10/2015, 15:12:34 UTC
Annoying...

This attack is very good at exposing bad software.
Post
Topic
Board Development & Technical Discussion
Re: New transaction malleability attack wave? Another stresstest?
by
basil00
on 04/10/2015, 15:03:54 UTC
I do not see profit for me doing this. I am not a bitcoin hoDLer.

I am not a "hodler" either; I am not financially or emotionally invested in Bitcoin.  I was just curious as to what the effect on the network would be, so was disappointed that it stopped.  But it has since restarted.

This attack is "free".  There is no profit but also no cost.  The attack is also not very difficult I think, so if you stop then someone can easily start again.
Post
Topic
Board Development & Technical Discussion
Re: New transaction malleability attack wave? Another stresstest?
by
basil00
on 02/10/2015, 11:25:52 UTC
Splitting the "chain" to a "binary tree" just adds more fun Smiley

This is also the correct way to do it.

Quote
I do not see any benefits for me running it.

Perhaps to remind the community not to rely on chains of unconfirmed txs.

Btw, I wonder if it is possible to design scripts immune to this attack, e.g.

Code:
OP_SIZE 73 OP_EQUALVERIFY OP_CHECKSIG

The wallet software needs to "mine" a 73byte sig (not very hard).
The malleated sig is always 1 byte bigger, so cannot be used.
Post
Topic
Board Development & Technical Discussion
Re: New transaction malleability attack wave? Another stresstest?
by
basil00
on 02/10/2015, 11:00:19 UTC
OK. This is not "someone". It is me.

I am not surprised.  You were my prime suspect. Smiley

This "attack" probably stops spam scripts that generate long chains of unconfirmed txs.  It might actually be a good thing to leave this running.
Post
Topic
Board Development & Technical Discussion
Re: Cheap way to attack blockchain
by
basil00
on 28/09/2015, 14:06:08 UTC
I think I get it -- it's because K is known.