Bitcoin Forum
November 19, 2024, 03:11:30 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 2 3 4 5 6 7 8 9 10 11 [12] 13 14 »  All
  Print  
Author Topic: Segwit details? N + 2*numtxids + numvins > N, segwit uses more space than 2MB HF  (Read 21412 times)
CIYAM
Legendary
*
Offline Offline

Activity: 1890
Merit: 1086


Ian Knowles - CIYAM Lead Developer


View Profile WWW
March 27, 2016, 02:49:35 PM
 #221

A valid transaction is any transaction which, when the scripts are run, returns true and nothing in the stack triggers a failure. A valid transaction does not have to be standard.

I think this is the crux of the misunderstanding that others have been having. Valid and standard are not the same thing (but something that is standard is also valid).

Because Bitcoin has introduced an entirely new paradigm (that of P2P consensus) it has had to introduce some new software concepts and I think at this stage this is not being well understood (perhaps not surprisingly).

With CIYAM anyone can create 100% generated C++ web applications in literally minutes.

GPG Public Key | 1ciyam3htJit1feGa26p2wQ4aw6KFTejU
JorgeStolfi
Hero Member
*****
Offline Offline

Activity: 910
Merit: 1003



View Profile
March 27, 2016, 05:46:27 PM
Last edit: March 27, 2016, 06:03:14 PM by JorgeStolfi
 #222

Would that software accept as parent a block mined by some other miner that contains them?

Yes it would as it assumes that whoever has mined them did know that they were valid.

That sounds bizarre if you say it that way: it would mean that a miner *cannot* verify the validity of the parent block, and has to trust the previous miner.

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?  

That is what I have always understood...

Quote
Does the current version of the Core mining software accept transactions with those NOPs, for inclusion into the candidate block?  

No - it would not (as it could not know whether or not they are valid).

This is not wrong, since a miner can exclude any transactions, by any criterion.  However, given that old miners will accept blocks with those opcodes as valid, its seems rather pointless.  There is no way to ensure that all (or any) miners will abide by this rule.  Any miner could create and mine blocks that use those opcodes; and other old miners would accept those blocks;  Correct?

By the way, are those NOPs really NOPs, or do they mean "terminate the verification with success"?  

Quote
Also without relaying you actually wouldn't have a P2P network at all (so it is an essential part of the system not some optional thing)

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.

A miner may be offering his services for two possible reasons: 1. to get the reward and fees, or 2. some other motive.  Bitcoin is based on the assumption that motive 1 is fairly likely, so if you contact N random miners it is quite likely that you will get at least one such "selfish greeedy" guy.  

A non-mining relay node cannot have motivation 1, so his motivation can be only 2, "some other motive".  What security can you derive from that?

Quote
and there are expectations that a node will not relay invalid txs or blocks (and any node that does will be banned by your client).

If the party that receives a tx or block checks some rule, then nothing is gained by having the relay to check that rule too.  If the receiver does not check some rule, then he will not notice when the relay sends data that does not satisfy it; and will not ban the relay.

Academic interest in bitcoin only. Not owner, not trader, very skeptical of its longterm success.
CIYAM
Legendary
*
Offline Offline

Activity: 1890
Merit: 1086


Ian Knowles - CIYAM Lead Developer


View Profile WWW
March 27, 2016, 05:55:47 PM
 #223

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 would recommend that you retire as you have zero understanding of this technology and we have zero tolerance for your ignorance.

(and I 100% expected that you would post such a response as I know that you are just a paid shill - seriously you should be ashamed of yourself - if you have any self-respect at all then just stop posting)

(even your grandchildren would be saying "don't post more crap grandpa")

With CIYAM anyone can create 100% generated C++ web applications in literally minutes.

GPG Public Key | 1ciyam3htJit1feGa26p2wQ4aw6KFTejU
JorgeStolfi
Hero Member
*****
Offline Offline

Activity: 910
Merit: 1003



View Profile
March 27, 2016, 06:07:46 PM
 #224

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.

Academic interest in bitcoin only. Not owner, not trader, very skeptical of its longterm success.
CIYAM
Legendary
*
Offline Offline

Activity: 1890
Merit: 1086


Ian Knowles - CIYAM Lead Developer


View Profile WWW
March 27, 2016, 06:09:09 PM
 #225

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

With CIYAM anyone can create 100% generated C++ web applications in literally minutes.

GPG Public Key | 1ciyam3htJit1feGa26p2wQ4aw6KFTejU
JorgeStolfi
Hero Member
*****
Offline Offline

Activity: 910
Merit: 1003



View Profile
March 27, 2016, 06:38:01 PM
 #226

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.)
 

Academic interest in bitcoin only. Not owner, not trader, very skeptical of its longterm success.
achow101
Moderator
Legendary
*
expert
Offline Offline

Activity: 3556
Merit: 6886


Just writing some code


View Profile WWW
March 27, 2016, 06:39:48 PM
 #227

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/.

JorgeStolfi
Hero Member
*****
Offline Offline

Activity: 910
Merit: 1003



View Profile
March 27, 2016, 07:19:42 PM
 #228

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.

Academic interest in bitcoin only. Not owner, not trader, very skeptical of its longterm success.
achow101
Moderator
Legendary
*
expert
Offline Offline

Activity: 3556
Merit: 6886


Just writing some code


View Profile WWW
March 27, 2016, 07:43:50 PM
 #229

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.

amaclin
Legendary
*
Offline Offline

Activity: 1260
Merit: 1019


View Profile
March 27, 2016, 07:51:08 PM
 #230

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?
CIYAM
Legendary
*
Offline Offline

Activity: 1890
Merit: 1086


Ian Knowles - CIYAM Lead Developer


View Profile WWW
March 28, 2016, 06:41:00 AM
 #231

"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

With CIYAM anyone can create 100% generated C++ web applications in literally minutes.

GPG Public Key | 1ciyam3htJit1feGa26p2wQ4aw6KFTejU
TooDumbForBitcoin
Legendary
*
Offline Offline

Activity: 1638
Merit: 1001



View Profile
March 29, 2016, 11:32:24 PM
 #232

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.



▄▄                                  ▄▄
 ███▄                            ▄███
  ██████                      ██████
   ███████                  ███████
    ███████                ███████
     ███████              ███████
      ███████            ███████
       ███████▄▄      ▄▄███████
        ██████████████████████
         ████████████████████
          ██████████████████
           ████████████████
            ██████████████
             ███████████
              █████████
               ███████
                █████
                 ██
                  █
veil|     PRIVACY    
     WITHOUT COMPROMISE.      
▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂
|   NO ICO. NO PREMINE. 
   X16RT GPU Mining. Fair distribution.  
|      The first Zerocoin-based Cryptocurrency      
   WITH ALWAYS-ON PRIVACY.  
|



                   ▄▄████
              ▄▄████████▌
         ▄▄█████████▀███
    ▄▄██████████▀▀ ▄███▌
▄████████████▀▀  ▄█████
▀▀▀███████▀   ▄███████▌
      ██    ▄█████████
       █  ▄██████████▌
       █  ███████████
       █ ██▀ ▀██████▌
       ██▀     ▀████
                 ▀█▌




   ▄███████
   ████████
   ███▀
   ███
██████████
██████████
   ███
   ███
   ███
   ███
   ███
   ███




     ▄▄█▀▀ ▄▄▄▄▄▄▄▄ ▀▀█▄▄
   ▐██▄▄██████████████▄▄██▌
   ████████████████████████
  ▐████████████████████████▌
  ███████▀▀▀██████▀▀▀███████
 ▐██████     ████     ██████▌
 ███████     ████     ███████
▐████████▄▄▄██████▄▄▄████████▌
▐████████████████████████████▌
 █████▄▄▀▀▀▀██████▀▀▀▀▄▄█████
  ▀▀██████          ██████▀▀
      ▀▀▀            ▀▀▀
amaclin
Legendary
*
Offline Offline

Activity: 1260
Merit: 1019


View Profile
March 30, 2016, 05:14:43 AM
 #233

Bitcoin is not a religion and...
Sure?  Grin
All attributes exist.
BitUsher
Legendary
*
Offline Offline

Activity: 994
Merit: 1035


View Profile
March 30, 2016, 10:49:54 AM
 #234

Segnet 4 is out. Time to spin up a node and help test more-

https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2016-March/012595.html

JorgeStolfi
Hero Member
*****
Offline Offline

Activity: 910
Merit: 1003



View Profile
March 30, 2016, 02:16:46 PM
 #235

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?

Academic interest in bitcoin only. Not owner, not trader, very skeptical of its longterm success.
TooDumbForBitcoin
Legendary
*
Offline Offline

Activity: 1638
Merit: 1001



View Profile
March 30, 2016, 02:21:04 PM
 #236


disinterested skeptical academic discussion


Where is our promised vacation?  



▄▄                                  ▄▄
 ███▄                            ▄███
  ██████                      ██████
   ███████                  ███████
    ███████                ███████
     ███████              ███████
      ███████            ███████
       ███████▄▄      ▄▄███████
        ██████████████████████
         ████████████████████
          ██████████████████
           ████████████████
            ██████████████
             ███████████
              █████████
               ███████
                █████
                 ██
                  █
veil|     PRIVACY    
     WITHOUT COMPROMISE.      
▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂
|   NO ICO. NO PREMINE. 
   X16RT GPU Mining. Fair distribution.  
|      The first Zerocoin-based Cryptocurrency      
   WITH ALWAYS-ON PRIVACY.  
|



                   ▄▄████
              ▄▄████████▌
         ▄▄█████████▀███
    ▄▄██████████▀▀ ▄███▌
▄████████████▀▀  ▄█████
▀▀▀███████▀   ▄███████▌
      ██    ▄█████████
       █  ▄██████████▌
       █  ███████████
       █ ██▀ ▀██████▌
       ██▀     ▀████
                 ▀█▌




   ▄███████
   ████████
   ███▀
   ███
██████████
██████████
   ███
   ███
   ███
   ███
   ███
   ███




     ▄▄█▀▀ ▄▄▄▄▄▄▄▄ ▀▀█▄▄
   ▐██▄▄██████████████▄▄██▌
   ████████████████████████
  ▐████████████████████████▌
  ███████▀▀▀██████▀▀▀███████
 ▐██████     ████     ██████▌
 ███████     ████     ███████
▐████████▄▄▄██████▄▄▄████████▌
▐████████████████████████████▌
 █████▄▄▀▀▀▀██████▀▀▀▀▄▄█████
  ▀▀██████          ██████▀▀
      ▀▀▀            ▀▀▀
CIYAM
Legendary
*
Offline Offline

Activity: 1890
Merit: 1086


Ian Knowles - CIYAM Lead Developer


View Profile WWW
March 30, 2016, 02:32:04 PM
 #237

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.

With CIYAM anyone can create 100% generated C++ web applications in literally minutes.

GPG Public Key | 1ciyam3htJit1feGa26p2wQ4aw6KFTejU
spartacusrex
Hero Member
*****
Offline Offline

Activity: 718
Merit: 545



View Profile
March 30, 2016, 04:37:06 PM
 #238

"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

Life is Code.
exstasie
Legendary
*
Offline Offline

Activity: 1806
Merit: 1521


View Profile
March 30, 2016, 06:22:07 PM
 #239

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.

spartacusrex
Hero Member
*****
Offline Offline

Activity: 718
Merit: 545



View Profile
March 30, 2016, 06:41:56 PM
 #240

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.


Life is Code.
Pages: « 1 2 3 4 5 6 7 8 9 10 11 [12] 13 14 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!