Pages:
Author

Topic: Segwit details? N + 2*numtxids + numvins > N, segwit uses more space than 2MB HF - page 2. (Read 21405 times)

hero member
Activity: 910
Merit: 1003
The word "standardness" implies that someone is setting a standard that should be followed by all nodes; but it is known that different relay nodes are using different arbitrary criteria to censor transactions and blocks.
Again - a total misunderstanding of the terminology and how Bitcoin works.

If you are seriously at all interested in what Standard and Valid transactions are then you should read the code

I don't plan to read the code, and I should not have to. The payment system of the world cannot be defined by a (messy) program.   Bitcoin should be an implementation-independent protocol, like SMTP and HTML. Anyone with sufficient knowledge of algorithms and networking should be able to understand how it works without reading the code.

And there should not be "the" code, since the maintainers of that code would be a central authority.

Whatever "standard" means, you cannot assume that miners will not create non-standard blocks that are accepted as valid by other miners and clients.  You cannot assume that every miner will run unmodified Core software; and you cannot assume that non-mining relay nodes will do anything specific.

Indeed I have little love for the current Core devs, for a dozen separate reasons.  To stay on the technical ones, they include (1) claim that soft forks are safer than hard forks, (2) the "fee market" and its paraphernalia, (3) SegWit, (4) reliance and encouragement of non-mining relays, (5) modifying bitcoin as if the Lightning Network is a certain thing.  Not me, but some very competent people (who also have read the code) have objectively pointed out the faults in those items; but their criticisms have never been answered.
legendary
Activity: 2128
Merit: 1073
It's obvious to anyone with half a brain jstolfi has a deep understanding of Bitcoin, and he is making some valid points. (Plus I like his clear un-emotional posts.. )  Grin
Deep understanding of Bitcoin? It was disproved few pages ago by knightdk. JorgeStolfi clearly has no elementary comprehension of the source code of Bitcoin.

Yet he continues to post trivialities like:
And, in that case, bitcoin is done for anyway: nothing will save it if malicious miners have a majority of the hashpower.
which was already stated in the original Satoshi's whitepaper. This isn't deep. This is as shallow as it gets.

CIYAM tends to think that JorgeStolfi is some sort of paid disinformation operative. From my personal experiences with peer-review I would venture to guess that he may be heavily medicated or have some sort of amnesia. Such people tend to have good recall of the recent facts and recently acquired knowledge but start to have problems with recall and application of facts and knowledge acquired years ago.

legendary
Activity: 1806
Merit: 1521
Why you always so angry CIYAM.. ? You were'nt always this way.. way back when..  Huh

I imagine like many others around here, he's getting frustrated at the never-ending campaigns of disinformation used to attack Core devs.

Core devs rock. Period.

But there is a difference between attacking and disagreeing with.

That distinction seems to have been lost somewhere.. and it's an important one.

There is a difference between "honest debate" and "campaigns of disinformation." And it's an important distinction to make. Notice that I said disinformation to suggest the intentional and deliberate nature of the false information being spread. No matter how many times the unproven fear mongering/misinformation [about Segwit/soft fork capabilities, Blockstream control of bitcoin development, the catastrophic implications of "full blocks," the immediate threat of altcoins overtaking bitcoin, etc.] is refuted, there is a distinct group of shills that simply repeat it. Ad nauseum. All over bitcointalk, twitter, reddit. That includes Gavin Andresen and Brian Armstrong (Coinbase employees/executives pushing for shareholder interests).

Perhaps more importantly: I firmly believe that releasing an incompatible/adversarial client that intends to fork the network without consensus--and still call itself "bitcoin"--is an attack on the network. I think deliberately spreading disinformation--and it's become pretty clear to any intelligent person that this is what's happening--is an attack on bitcoin and the developers who maintain it. That's without taking into account the incessant personal attacks and accusations of "blocking development."

We can agree to disagree.
hero member
Activity: 718
Merit: 545
Why you always so angry CIYAM.. ? You were'nt always this way.. way back when..  Huh

I imagine like many others around here, he's getting frustrated at the never-ending campaigns of disinformation used to attack Core devs.

Core devs rock. Period.

But there is a difference between attacking and disagreeing with.

That distinction seems to have been lost somewhere.. and it's an important one.

legendary
Activity: 1806
Merit: 1521
Why you always so angry CIYAM.. ? You were'nt always this way.. way back when..  Huh

I imagine like many others around here, he's getting frustrated at the never-ending campaigns of disinformation used to attack Core devs.
hero member
Activity: 718
Merit: 545
"Sacred Protocol"

Bitcoin is not a religion and has no such thing - as has been pointed out many times to you already the answers are *in the code* which you can find here: https://github.com/bitcoin/bitcoin


LOL..

'.. Look - I've told you already.. The needle you're looking for is in that haystack!.. Now GGOOO!. FFOOOOLL!!!'

..

Why you always so angry CIYAM.. ? You were'nt always this way.. way back when..  Huh

You really should learn to stop posting in threads that annoy you. Live longer.

It's obvious to anyone with half a brain jstolfi has a deep understanding of Bitcoin, and he is making some valid points. (Plus I like his clear un-emotional posts.. )  Grin
legendary
Activity: 1890
Merit: 1086
Ian Knowles - CIYAM Lead Developer
The word "standardness" implies that someone is setting a standard that should be followed by all nodes; but it is known that different relay nodes are using different arbitrary criteria to censor transactions and blocks.

Again - a total misunderstanding of the terminology and how Bitcoin works.

If you are seriously at all interested in what Standard and Valid transactions are then you should read the code rather than post nonsensical things like you just did.

It is rather clear to me (and others) that you are not interested to understand anything but instead to try and push the agenda of those that are attacking the Bitcoin core devs.
legendary
Activity: 1638
Merit: 1001

disinterested skeptical academic discussion


Where is our promised vacation?  
hero member
Activity: 910
Merit: 1003
Thanks for the reply.  You write:

The "special validity rules" [ of relay nodes ] are not consensus rules unlike the validation rules which are consensus rules. Those rules are called standardness rules and both miners and full nodes have them. The standardness rules are local node policy so they tend to change more often than consensus rules because if something is non-standard it can still be valid.

The word "standardness" implies that someone is setting a standard that should be followed by all nodes; but it is known that different relay nodes are using different arbitrary criteria to censor transactions and blocks.

Quote
Full nodes are even more important nowadays due to the prevalence of SPV mining. Many miners now aren't running full nodes, meaning they are not fully validating every single block and transaction they receive. The only nodes that do should do this now are the full nodes and they are should be what are enforcing the consensus rules because most miners aren't doing it and SPV wallets cannot.

Fixed that for you.  They should validate the blocks that they receive, but (unlike the miners) they have no motivation to do so, and there is no way for a client to check that they are.

The miners have a strong incentive to use only valid blocks as parents; when they gamble, as in the (badly named) "SPV mining" of empty blocks, it is because they have high confidence that the parent block is valid.  In the case of classic "SPV mining", they steal the hash of the parent block from another pool via Stratum.  Therefore, if that block was invalid, that other pool would be screwing all its members and itself.  In other words, when miners do "SPV mining" they gamble that the same incentives that spur them to validate their non-mepty blocks will spur the miner who assembled the previous non-empty block to validate it too.

Non-mining relay nodes have no incentives to validate the blocks that they relay.  On the contrary, they have a significant incentive to skip validation altogether. 

Quote
These full nodes should protect against [ ... ] malicious miners.

How exactly are they going to do that?  A relay node can only withhold a mined block that it considers invalid.  But if the malicious miners have a minority of the hashpower, that block will not get many confirmation, and soon be orphaned and rejected even by SPV clients.  On the other hand, if it comes form a majority branch, then sooner or later the SPV clients will receive it and accept it as valid, rejecting the "good" minority block that some relays offered instead.  And, in that case, bitcoin is done for anyway: nothing will save it if malicious miners have a majority of the hashpower.

On the other hand, a relay can withhold blocks from the majority branch and serve instead blocks from a minority branch, created by old, buggy, or malicious miners.  If all the relay nodes that are contacted by an SPV client do that, the SPV client will be screwed.  Given the way that clients get the addresses of relay nodes, and that such malicious relays are very easy to set up (much easier than setting up an effective malicious miner), this risk is far form negligible.

Perhaps the faith that some people have on relay nodes comes from experience with SMTP, NNTP, bitTorrent and other decentralized p2p networks, where nodes can (must) be assumed to be well-intentioned by default? Bitcoin is quite unlike those networks...

Quote
These full nodes protect should protect against major mining screw ups like the July 4th fork

The blame for that incident should go to the Core devs, who choose to deploy BIP66 when 5% of the miners were still not ready, without a grace period and without alerts.  The miners should be blamed only for trusting that the devs knew what they were doing.

It seems that the miners did learn their lesson, because at the next soft fork (BIP65, IIRC) AntPool held back its vote until most of the tiny miners had upgraded, and prodded them to do so.  I wonder if the Core devs have learned theirs?
legendary
Activity: 994
Merit: 1035
legendary
Activity: 1260
Merit: 1019
Bitcoin is not a religion and...
Sure?  Grin
All attributes exist.
legendary
Activity: 1638
Merit: 1001
Hard to believe jstolfi can be made into a sympathetic character, but this clown SEE, I AM A CLOWN is doing a pretty good job.
legendary
Activity: 1890
Merit: 1086
Ian Knowles - CIYAM Lead Developer
"Sacred Protocol"

Bitcoin is not a religion and has no such thing - as has been pointed out many times to you already the answers are *in the code* which you can find here: https://github.com/bitcoin/bitcoin
legendary
Activity: 1260
Merit: 1019
Many miners now aren't running full nodes, meaning they are not fully validating every single block and transaction they receive.
Grin Sure?
Edit: What do we mean by 'miners' - asic owners or pool admins?
staff
Activity: 3458
Merit: 6793
Just writing some code
Thanks.  I don't know the script language, but can't you build a script with those opcodes that fails to validate if the opcode is interpreted as a NOP, but succeeds if it is redefined to something else?  I suppose that the only redefinitons that would allow a soft fork are of the kind "if (condition) then FAIL else NOP", correct?
Yes. You can see this in OP_CLTV: https://github.com/bitcoin/bips/blob/master/bip-0065.mediawiki#summary and OP_CSV (upcoming): https://github.com/bitcoin/bips/blob/master/bip-0112.mediawiki#summary

Today there is a third kind, the dedicated "full but non-mining" relay, aka "node", which apparently has a very distinct role and is supposed to be an essential defense against misbehaving miners and other menaces.  And, TIL, needs special validity rules.  
No, a full node (non-mining relay) does the exact same thing as a miner when it comes to validation but it simply doesn't produce blocks. The "special validity rules" are not consensus rules unlike the validation rules which are consensus rules. Those rules are called standardness rules and both miners and full nodes have them. The standardness rules are local node policy so they tend to change more often than consensus rules because if something is non-standard it can still be valid.

Full nodes are even more important nowadays due to the prevalence of SPV mining. Many miners now aren't running full nodes, meaning they are not fully validating every single block and transaction they receive. The only nodes that do this now are the full nodes and they are what are enforcing the consensus rules because most miners aren't doing it and SPV wallets cannot. These full nodes protect against either major mining screw ups like the July 4th fork and against malicious miners.
hero member
Activity: 910
Merit: 1003
They are actually NOPs. They mean "do nothing" not "terminate with success".

Thanks.  I don't know the script language, but can't you build a script with those opcodes that fails to validate if the opcode is interpreted as a NOP, but succeeds if it is redefined to something else?  I suppose that the only redefinitons that would allow a soft fork are of the kind "if (condition) then FAIL else NOP", correct?

Quote
Nope, not true. The original Bitcoin Client (v0.1.0) did not having mining enabled by default. When you downloaded 0.1.0 it defaulted to being a non-mining relay node with the option in the GUI to enabled mining if you so desired. In fact Satoshi even said so himself in the original 0.1.0 announcement email: http://www.metzdowd.com/pipermail/cryptography/2009-January/014994.html.

You can examine the source code of 0.1.5 (the earliest available on github) at https://github.com/bitcoin/bitcoin/tree/v0.1.5 and you can get the original 0.1.0 client with the source code from http://satoshi.nakamotoinstitute.org/code/.

OK, I see what you mean.

Back in 2009 there was only one kind of node, the miner-user-relayer.  Every player could mine; not just in theory, but in practice.  Satoshi apparently assumed that mining would be widespread,even if occasional and anonymous.  And he assumed that players would join primarily for the benefits of being users.

Later a second kind of node (already predicted in the whitepaper) was introduced, the simple client.  Still, the simple client was supposed to use the same rules as the miners, but only check a subset of them.  

Today there is a third kind, the dedicated "full but non-mining" relay, aka "node", which apparently has a very distinct role and is supposed to be an essential defense against misbehaving miners and other menaces.  And, TIL, needs special validity rules.  

The relaying function of miners in the original design was already a bit fuzzy, but since relaying was cheap, and all nodes were supposed to be also users and (potential) miners, they could be assumed to share the mining incentives and have the good intentions.  That does not carry over to the present-day nodes.  We have examples of relay nodes that filter transactions based on arbitrary ideological criteria, nodes that are committed to specific "parties" in the block size war...  Where is the analysis that they are helping rather than harming the security of the network?

PS. For general joy of mankind, I am traveling in a few hours and will be offline for 2 days.
staff
Activity: 3458
Merit: 6793
Just writing some code
But perhaps what you should have said is: "Yes, it would validate that block fully -- with his (old) validity rules, in which those opcodes are NOPs, hence it would accept the block as valid."  Is that so?
 
Yes, that is so.

By the way, are those NOPs really NOPs, or do they mean "terminate the verification with success"?  
They are actually NOPs. They mean "do nothing" not "terminate with success".


In the original design, the propagation was supposed to occur among the miners, who have incentives to keep the network running and to keep clients happy.  The original design depended on those incentives to argue that even simple clients would have adequate security.

The non-mining relay nodes were added later, without any justification.  They break that security argument.
Nope, not true. The original Bitcoin Client (v0.1.0) did not having mining enabled by default. When you downloaded 0.1.0 it defaulted to being a non-mining relay node with the option in the GUI to enabled mining if you so desired. In fact Satoshi even said so himself in the original 0.1.0 announcement email: http://www.metzdowd.com/pipermail/cryptography/2009-January/014994.html.

You can examine the source code of 0.1.5 (the earliest available on github) at https://github.com/bitcoin/bitcoin/tree/v0.1.5 and you can get the original 0.1.0 client with the source code from http://satoshi.nakamotoinstitute.org/code/.
hero member
Activity: 910
Merit: 1003
I suppose that you will not tell me where in the original design the non-mining relays were introduced as guardians of the Sared Protocol.

The what?

"Sacred Protocol".  Sorry for the typo.

Quote
You have just made yourself look even stupider than I could have possibly made you out to be with that (enjoy being an old fool - and at least I have saved others from wasting their time with you which I had realised needed to be addressed some time before which is why I bothered to do this).
If you want to leave this forum with any respect left at all then you'd best not reply. Cheesy

Right when the tone of the responses makes me think that I am getting close to something?  Grin

By the way, you have not told me where I can find a description of the multiple rule sets for different players, nor where in the original design the non-mining relays were described and given their special function.

(Satoshi always used "node" to mean "miner", if that is what you were thinking.)
 
legendary
Activity: 1890
Merit: 1086
Ian Knowles - CIYAM Lead Developer
I suppose that you will not tell me where in the original design the non-mining relays were introduced as guardians of the Sared Protocol.

The what?

You have just made yourself look even stupider than I could have possibly made you out to be with that (enjoy being an old fool - and at least I have saved others from wasting their time with you which I had realised needed to be addressed some time before which is why I bothered to do this).

If you want to leave this forum with any respect left at all then you'd best not reply. Cheesy
hero member
Activity: 910
Merit: 1003
The non-mining relay nodes were added later, without any justification.  They break that security argument.

Rubbish.

I'm sorry but you have not tried to understand one thing but instead tried to just post rubbish again and again and again.

I suppose that you will not tell me where in the original design the non-mining relays were introduced as guardians of the Sared Protocol.
Pages:
Jump to: