Gold collapsing. Bitcoin UP.

freetrader

Moderator
Staff member
Dec 16, 2015
2,806
6,088
however you need to keep voting to stay active so you cant be MIA for too long.
I don't think this addresses what Bloomie mentioned.

Firstly, If a key gets stolen, the thief can use it to sign (if the owner is inactive).
Secondly, if someone is MIA or inactive, we currently do not expire their keys (maybe we should).
A vote that requires a real world identity will still require a real world identity to prevent sock puppets.
Thirdly, real world identity is not tied to the vote, otherwise I could not vote (because I'm not about to tie my real-world identity to my handle, by Satoshi).
For now members vote for members is the best way to try ensure real people become members
We essentially operate by Proof of Online History to establish whether there is a "real enough" person behind the identity. I think that works ok, but it discriminates against newcomers to the Bitcoin space, obviously. Humans are clever enough to deal with the subtleties of this, I think.

One thing that is nice about PGP keys is that you can (and should) set them to expire, and that you can revoke them if you believe they have fallen into wrong hands. This is not the case for Bitcoin keys.

So revocation will need to be handled manually (e.g. by owner publicly revoking an obsolete key in some verifiable message online). Expiry has to be handled by the voting system, if we want to do it for inactive users.

Or, we could in future extend our voting system to handle PGP keys and signed messages.
But I like that we use Bitcoin keys - it forces people to learn about Bitcoin signatures.
 
Last edited:

awemany

Well-Known Member
Aug 19, 2015
1,387
5,054
So on these 'new Schelling-point' BUIPs, a general observation:

I am, in principle, supportive of all of them, but given Jihan's recent commentary, I feel we should stick to the model BU has in the sense of keeping our bigger blocks model explainable to the outside, without 'caveat, there is this option' and 'caveat, there that other option as well'. I do not want to bloat BU. Look at how much trouble there was with xthin. More code -> more places to screw up.

In that sense, I think we might want to formalize both the interface for external 'blocksize governor scripts' as well as maybe add a 'bu/contrib/' directory of C++ plugins that can be loaded for blocksize?

Just to keep the core parts clean and manageable. Also, having such an interface removes the need to write a BUIP IMO - if it is just an additional module in a list of optional modules, I think the BU dev can merge that at his discretion. As it won't touch any other parts of the main code.

EDIT: And @xhiggy, on those csw excerpts:

1. Use a Kamada-Kawai algorithm for the layout.
But why is a graph layout algorithm of interest to a model of the Bitcoin network? I don't get it. This again sounds like either: a) trying to woo someone or b) someone having a very odd way of thinking about graphs (as in: always having a concrete picture in mind, not an abstract one, or some weird mix between the two). Is he trying to hint at using the graph layout to infer something about the edges? Latency maybe?

Centrality is good in network propagation, it is not the same as centralisation. I suggest that people read up on this.
Yes, makes total sense. I think I have said so on reddit as well.

Some of the Core believers seem to assume that 'decentralization == all nodes are equally important to the network'. Some weird, idealistic and unrealistic communist anarchy model. No hierarchies!1!!1!

It will never be that way. The internet is decentralized (otherwise Bitcoin could never be decentralized anyways - as it sits on top of that). But you wouldn't say that all the nodes in that network are equally important.

So this part now makes perfect sense.

Phew. The whole CSW Saga is very odd.
 
Last edited:

go1111111

Active Member
"But why is a graph layout algorithm of interest to a model of the Bitcoin network? I don't get it. "

I agree with @awemany. As a technical person who understands the selfish mining paper and wrote my own python simulation of selfish mining when the paper came out, all I see is csw continuing to bring up irrelevant/nonsensical points and trying to disguise them in complex/obscure technical language, so that he can impress less technical people.
 

go1111111

Active Member
My objections to this graph:

(1) As the fraction of the network missing witness info goes from 0 to 50%, the value of that info should increase. Not only do you get the fees if you mine a block, but you also can learn immediately if any given block is invalid, which tells you not to mine on it and saves you time/money.

(2) The value of witness info when > 50% of miners aren't using it is still positive, because if users enforce validity and there's higher demand for coins on the valid chain, then either the hash rate majority will move back to a valid chain, or the users will hard fork, starting from the valid chain. So as a miner, it will pay off in the future to stay on the valid chain now. so knowing which is which is valuable.

As I've said many times before, this entire argument rests on an assumption that users will stop caring about whether blocks are valid, or what the rules or for various chains. I haven't seen this justified anywhere.


Yes. I would consider that a failure scenario for Bitcoin.

The point I was trying to make though is that segwit coins are distinct from bitcoins in that they each have different security models. If I woke up one morning and noticed that a miner had "stole" a segwit coin, then that would just confirm my belief that segwit coins are less secure than bitcoins. It wouldn't change my view on the security of bitcoins themselves.
A lot of people would consider miners just stealing segwit coins as a 'failure scenario' for Bitcoin. I'm out of those people. These other people (and me) would reject any chain containing such a theft, the same way that you'd currently reject any block containing a normal theft. If someone asked you if you wanted to buy some Bitcoins, and gave you the option to buy some on a chain where a regular-Bitcoin theft occurred and a chain where no such theft occurred, I assume you'd prefer the no-theft chain even if the theft-chain was a few confirmations longer. Similarly, me and many other users would prefer the no-SegWit-theft chain.

I believe miners would realize this, and therefore they wouldn't steal segwit coins (or if any did, they'd learn the harsh lesson that users control Bitcoin).


If you don't agree with this reasoning: why do you think Litecoin miners aren't stealing the one million dollar segwit bounty? (https://www.reddit.com/r/litecoin/comments/6azeu1/1mm_segwit_bounty/). Do you think they will eventually steal it? If so, do you want to bet some money on this?
 

Peter R

Well-Known Member
Aug 28, 2015
1,398
5,595
@go1111111

Here's a simple model to help make my point:

The expected profit per block for a miner with the segwit data is

f(+) = h (R + F) - C,

where h is the miner's relative hash power, R is the block reward, F is the fees he can claim and C is the per-block cost of running his mining equipment.

The expected profit for a miner without the segwit data is

f(-) = h (R + F) (1 - P_invalid) - C,

where P_invalid is the probability that the previous block contained an invalid segwit spend (which he of course can't detect).

I think up to this point everyone would agree. Now note that if P_invalid << 1, that the miner's expected profit does not depend on whether or not he collects the segwit data. (Like we discussed up-thread, the miner's expected profit does depend on whether he collects the regular block data. Without the regular block data, he cannot update his UTXO set and must mine empty blocks, missing out on the fees that he could otherwise claim.)

P_invalid is just the probability that the miner assigns to his block being orphaned if he doesn't know the witness data. We can't really say for sure what that is, but empirically, over the last year I think only a single block was orphaned for being "invalid" out of 50,000+ blocks. So empirically, P_invalid is very small. Even the creators of segwit agree, as they argue that miners can choose to not support segwit and still mine non-segwit blocks (i.e., these miners would be assuming that P_invalid was small enough not to care about).

(1) As the fraction of the network missing witness info goes from 0 to 50%, the value of that info should increase. Not only do you get the fees if you mine a block, but you also can learn immediately if any given block is invalid, which tells you not to mine on it and saves you time/money.
I don't see how the fraction of the network missing the witness info can be measured accurately (except by a miner willing to risk having his "test" blocks orphaned). But assuming it could be, I would argue that if it looks like the majority of the hash power will soon cease supporting segwit -- that is, if it appears the network is going to "phase change" from the "enforce segwit" state to the "don't enforce segwit" state, then individual miners are more likely to want to "side with the hash power majority" and also not enforce segwit. Otherwise, they would risk forking themselves from the blockchain!

(BTW--the miner can get the fees without the segwit data but not without the block data -- that's one of the main pieces of this argument).

The way I see it, if the miners are actually worried enough about blocks that spend segwit TXs without valid signatures (P_invalid is significant) for this to affect their mining strategy, there are then two equilibrium states for the network:

(1) all miners collect the witness data and honour segwit signatures,

(2) no miners do and segwit coins never really "exist" in the first place.

(2) The value of witness info when > 50% of miners aren't using it is still positive, because if users enforce validity and there's higher demand for coins on the valid chain, then either the hash rate majority will move back to a valid chain, or the users will hard fork, starting from the valid chain. So as a miner, it will pay off in the future to stay on the valid chain now. so knowing which is which is valuable.
Like I argued above, possessing and honouring the witness data when the majority of miners don't risks forking the miner off the blockchain. This strategy has a negative expected pay-off (unless you want to argue that he will soon be vindicated as the other miners realize the "errors of their way" and forfeit all the blocks they've mined and return to the minority chain).

As I've said many times before, this entire argument rests on an assumption that users will stop caring about whether blocks are valid, or what the rules or for various chains. I haven't seen this justified anywhere.
It only requires that users view segwit coins as something distinct from bitcoins. If they recognize that segwit coins have a weaker security model than bitcoins, in aggregate they may applaud miners for not honoring segwit transactions. They may view Bitcoin as better without segwit (e.g., I hold the view that Bitcoin is better off if segwit is never adopted).

A lot of people would consider miners just stealing segwit coins as a 'failure scenario' for Bitcoin. I'm out of those people. These other people (and me) would reject any chain containing such a theft, the same way that you'd currently reject any block containing a normal theft. If someone asked you if you wanted to buy some Bitcoins, and gave you the option to buy some on a chain where a regular-Bitcoin theft occurred and a chain where no such theft occurred, I assume you'd prefer the no-theft chain even if the theft-chain was a few confirmations longer. Similarly, me and many other users would prefer the no-SegWit-theft chain.
Yes, I think a lot of people would feel this way. But I think these are people that haven't realized that segwit coins are not bitcoins; they are different by definition:

In the white paper, Satoshi Nakamoto defined a bitcoin "as a chain of digital signatures. Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner and adding these to the end of the coin. A payee can verify the signatures to verify the chain of ownership."

The segwit proposal defined a new type of electronic coin. To transfer a segwit coin, the owner no longer signs the hash of the previous transaction. Instead, she signs the hash of only the part of the previous transaction that does not depend on the previous owner's signature.

The implications of this peculiar detail could be significant. In fact, we know it's significant: it eliminates third-party malleability. However, the implications to Bitcoin's game theory of "segrating the witness" are largely unstudied. Instead it is normally assumed that a segwit coin would have the same security properties as a bitcoin (of course, most people refer to segwit coins as bitcoins despite the differences in the definitions between the two coins). I'm not sure that assumption necessarily holds.

I believe miners would realize this, and therefore they wouldn't steal segwit coins (or if any did, they'd learn the harsh lesson that users control Bitcoin).
Yes, I think this is one of the stable equilibriums.

The other equilibrium is that segwit coins never exist (or exist briefly before being transferred back into bitcoins)

If you don't agree with this reasoning: why do you think Litecoin miners aren't stealing the one million dollar segwit bounty? (https://www.reddit.com/r/litecoin/comments/6azeu1/1mm_segwit_bounty/). Do you think they will eventually steal it? If so, do you want to bet some money on this?
My argument isn't that segwit coins are necessarily insecure. My argument is that segwit coins are not bitcoins and that they have a strictly weaker security model. They may or may not be insecure and it will take a long time to find out for sure.

We know that Bitcoin's game theory works, in that miners are motivated enough to enforce the rules that give bitcoins their properties. We don't yet know whether miners will be sufficiently motived to enforce the rules that would give segwit coins their properties.

But sure, just for fun I'm happy to bet 1 BTC that either those coins will be stolen, or the owner will worry that they could be stolen and move them, within 1 year.
 
Last edited:

Zangelbert Bingledack

Well-Known Member
Aug 29, 2015
1,485
5,585
I don't yet see why the argument rests on users no longer caring about whether blocks are valid. It seems to rest on users not being able to check what percentage of miners are really validating.

The scenario of concern doesn't seem to be one where miners immediately mine invalid blocks (in fact that seems like the *remedy* to the problem, as it would make validationless mining risky immediately), but rather one where the percentage who are mining without validating climbs during an initial fairweather period where no invalid blocks are ever mined. As time passes with no invalid blocks, any expected risk to validationless mining falls toward zero from an individual, short-term perspective. That seems to make the "every miner validates" equilibrium unstable: insofar as "everyone validates," you yourself certainly don't need to validate, so it's a self-undoing dynamic.

From there the differences between normal Bitcoin and Bitcoin under Segwit seem to come to the fore.
 
Last edited:

Bloomie

Administrator
Staff member
Aug 19, 2015
510
803
the same thing that prevents an impostor from moving that persons coins.
If an existing member stops posting, anyone can create a new reddit account and say hey guys, it's me, member X, long time no see, here's my private key. Different from moving coins.
 

jbreher

Active Member
Dec 31, 2015
166
526
**What makes it _your_ bitcoin signing address** if you past that same message on bitcointalk and here we know with relative confidence that you control that key, once verified that address is assigned to your name. all votes are then just **wallet signed messages**. verified by the public key assigned to your name.
Looks like they are exactly as I surmised. I guess I phrased that latter question poorly. I should have asked 'What makes it your _one_true_ bitcoin signing address?. The answer to which is, apparently, there is nothing special about it that makes it your unique bitcoin address. While it is uniquely mine (as long as I am the only one in possession of the private key), I could spawn them off inneumerably.

::le sigh:: OK, I don't like it, but I'll do it.
 
  • Like
Reactions: AdrianX

go1111111

Active Member
So empirically, P_invalid is very small.
OK, so my objection assumed that as the % of miners who don't validate gets closer to 50%, the probability of an invalid mined block gets higher. It is possible that this wouldn't happen. Let's assume it wouldn't for the sake of your argument.

if it appears the network is going to "phase change" from the "enforce segwit" state to the "don't enforce segwit" state, then individual miners are more likely to want to "side with the hash power majority" and also not enforce segwit. Otherwise, they would risk forking themselves from the blockchain!
I think we agree that the relevant consideration is "which chain will users pay high prices for coins on?" After all, a miner shouldn't worry about forking themselves off of a chain that will have no value.


It only requires that users view segwit coins as something distinct from bitcoins. If they recognize that segwit coins have a weaker security model than bitcoins, in aggregate they may applaud miners for not honoring segwit transactions.
It requires that users view segwit coins as different, AND that users accept that it's OK if miners take those coins. Users could still view segwit coins as different and also think it's important that miners not take them.

You could make a similar argument about P2SH transactions. They are definitely different than non-P2SH transactions. However I claim that most users would still regard miners stealing P2SH outputs as about as bad as stealing a non-P2SH outputs. Users would prefer the chain where P2SH outputs aren't stolen, and miners know this, so miners don't steal P2SH outputs.

They may view Bitcoin as better without segwit (e.g., I hold the view that Bitcoin is better off if segwit is never adopted).
It's possible. I guess our main disagreement is about whether lots of users view things this way and would just shrug off miner theft of segwit outputs. That seems very unlikely to me.

Which brings us to the bet...

But sure, just for fun I'm happy to bet 1 BTC that either those coins will be stolen, or the owner will worry that they could be stolen and move them, within 1 year.
I don't think I should lose the bet if the owner moves the coins. True, it could be because he knew they were about to be stolen. But it could also be because he decided he had proven his point after 6 months and wanted to use the money for something else.

I propose a bet like this instead, which solves that problem:

If on noon May 15th 2018 a fork of Litecoin where any segwit output has been stolen (defined here as spent in a way that violates the segwit rules) has a higher market cap than a fork of litecoin where no segwit output has been stolen, you win the bet. Otherwise, I win the bet. If there's only one version of Litecoin listed on coinmarketcap, then you win if a segwit output has been stolen in that version, otherwise I win.

If we're betting one bitcoin, I suggest we do 2 of 3 multisig with an arbiter (might be fun to actually go through that process -- I never have). If you want to do an informal gentlemen's bet, I suggest the equivalent of $100 USD (as of May 15th 2018) payable in Bitcoin.

I don't yet see why the argument rests on users no longer caring about whether blocks are valid. It seems to rest on users not being able to check what percentage of miners are really validating.

The scenario of concern doesn't seem to be one where miners immediately mine invalid blocks (in fact that seems like the *remedy* to the problem, as it would make validationless mining risky immediately), but rather one where the percentage who are mining without validating climbs during an initial fairweather period where no invalid blocks are ever mined. As time passes with no invalid blocks, any expected risk to validationless mining falls toward zero from an individual, short-term perspective. That seems to make the "every miner validates" equilibrium unstable
Sure, it might lead to a messy situation when someone finally mines an invalid block. But the question is: what happens when the invalid block is mined? I think the invalid chain will have almost no value even if miners keep trying to mine it for a while.

The argument that everyone will just say "Hmm, looks like an invalid block. I guess it'd be too messy to go back to a valid chain. The SegWit rules aren't that important anyway..." ...requires users to not care much about which chain is which, because the ultimate value of each chain will be determined by user demand.
 

Dusty

Active Member
Mar 14, 2016
362
1,172
You could make a similar argument about P2SH transactions. They are definitely different than non-P2SH transactions
Actually, not really: to spend a P2SH input you must provide a script that hashes to the provided value, and that's almost as hard as to forge a signature.
The problem of non-enabled P2SH validation is that when you spend a p2sh input, if you don't validate the script, you can immediately spend all the other txs sent to the same P2SH address.
Anyway, even if a node is non-p2sh validating, if you use a different address for every P2SH transaction you would be safe.
 
  • Like
Reactions: Peter R

Peter R

Well-Known Member
Aug 28, 2015
1,398
5,595
You could make a similar argument about P2SH transactions. They are definitely different than non-P2SH transactions. However I claim that most users would still regard miners stealing P2SH outputs as about as bad as stealing a non-P2SH outputs. Users would prefer the chain where P2SH outputs aren't stolen, and miners know this, so miners don't steal P2SH outputs.
I think you're missing an important part of the argument. A P2SH coin and a P2PkH coin both meet the definition of a bitcoin, as defined by Satoshi. In both cases, the coin is transferred by signing the hash of the previous transaction. A segwit coin, however, is transferred by signing only a part of the previous transaction that does not include the previous owner's signature.

This changes the game theory (for the reasons I described above). Just because people might want segwit coins to be secure, doesn't mean the necessarily will be secure. It seems like your argument reduces to the argument that "it is possible to create a coin with any set of properties because users can continue to 'fire the miners' until they find a group of miners that enforces the desired properties." I think this is false.

For example, most people would prefer if miners confirmed transactions in only 1 second, as opposed to 10 minutes, if there were no trade-offs. But we don't want this because we believe that the tradeoffs aren't worth it (i.e., higher orphan rates, possible chain divergence). What I'm saying is that maybe segwit is just a more complicated example of this. People like segwit because it solves transaction malleability. I'm arguing that the trade-off is that miners are less motivated to collect the signature data (I think you agree). Maybe this trade-off is a net negative and people just don't realize it yet.
 

go1111111

Active Member
Actually, not really: to spend a P2SH input you must provide a script that hashes to the provided value, and that's almost as hard as to forge a signature.
My understanding was the P2SH outputs look like 'anyone can spend' outputs to nodes that haven't upgraded to the soft fork that implemented P2SH. So my point is, while you need to provide such a script *according to the P2SH rules*, if you don't accept the P2SH rules you can just take the money. This seems analogous to the SegWit situation.

(Following quote is from @Peter R)

I think you're missing an important part of the argument. A P2SH coin and a P2PkH coin both meet the definition of a bitcoin, as defined by Satoshi.
OK, this is a difference, but my reading is that it's not the sort of thing that Satoshi himself would care about as essential to what makes Bitcoin Bitcoin. He was defining an electronic coin based on the implementation he wrote, and this is how his initial implementation worked. Likely he didn't foresee issues with malleability and the advantages of not hashing witness data. Anyway, maybe Satoshi would be a stickler on this point, but I believe the economic majority wouldn't treat this distinction as significant.

I think examining the game theory implications of this difference is interesting and worthwhile, and I think we understand each other's argument at this point, but just disagree over the probabilities involved. So, let me know if my latest bet sounds acceptable to you :)
 

Peter R

Well-Known Member
Aug 28, 2015
1,398
5,595
OK, this is a difference, but my reading is that it's not the sort of thing that Satoshi himself would care about as essential to what makes Bitcoin Bitcoin. He was defining an electronic coin based on the implementation he wrote, and this is how his initial implementation worked. Likely he didn't foresee issues with malleability and the advantages of not hashing witness data. Anyway, maybe Satoshi would be a stickler on this point, but I believe the economic majority wouldn't treat this distinction as significant.
That really is the pertinent question. It is clear that a segwit coins would not meet Satoshi's definition of a bitcoin, but is the difference important? Clearly, it changes the security model, but is that change significant? And finally, did Satoshi think about this and purposely decide that the signature data must also be included in the hash, or was it just an accident of history?

I think examining the game theory implications of this difference is interesting and worthwhile, and I think we understand each other's argument at this point, but just disagree over the probabilities involved. So, let me know if my latest bet sounds acceptable to you :)
Your last bet doesn't really interest me. My hunch is that segwit remains "active" on Litecoin and just hardly ever used. How about a bet that at no point in the next N months will X% of the Litecoin money supply be stored as segwit coins? We'd have to negotiate over N and X.
[doublepost=1494888382,1494887319][/doublepost]@go1111111

You said "maybe Satoshi would be a stickler on this point, but I believe the economic majority wouldn't treat this distinction as significant."

I think you're implicitly assuming that the distinction does not significantly affect the game theory. If instead you assume that the distinction weakens the security of segwit coins relative to bitcoins, and the additional weakness is not negligible, to you still believe the economic majority wouldn't treat the distinction as significant?
 

go1111111

Active Member
Replying to @Peter R:

I'm mainly interested in betting on whether segwit funds get stolen on litecoin, since the likelihood of that was our initial disagreement. I'll give you five to one odds and make the stakes more 'fun' / less serious if it helps: my $50 against your $10, with the terms I described earlier :)

(Winner can request to be paid in Ethereum instead, in case the Bitcoin tx fees are too high for such small payments)

I think not only would segwit outputs have to have weaker security, but it would need to be commonly accepted among users that segwit outputs had weaker security, to the degree that lots of users avoid putting much value in segwit outputs because of this concern. If that were true, then I think a theft of segwit outputs could occur without that chain losing out to the non-theft chain.

(Btw, "if you believed X, then would your opinion change?" or more generally "what would it require to change your mind?" is a good question to ask in debates).
 

Peter R

Well-Known Member
Aug 28, 2015
1,398
5,595
I think not only would segwit outputs have to have weaker security, but it would need to be commonly accepted among users that segwit outputs had weaker security, to the degree that lots of users avoid putting much value in segwit outputs because of this concern. If that were true, then I think a theft of segwit outputs could occur without that chain losing out to the non-theft chain.
Yes, I agree with both points. My argument is that segwit coins do indeed have weaker security and that--since it's true--users will eventually come to realize this. The only thing I don't know is whether the difference is significant enough to make segwit coins insecure.

I'm mainly interested in betting on whether segwit funds get stolen on litecoin, since the likelihood of that was our initial disagreement. I'll give you five to one odds and make the stakes more 'fun' / less serious if it helps: my $50 against your $10, with the terms I described earlier
If I knew the guy would not move the $1,000,000 for a year, I would take your bet. But I think he'll move them. I understand it's sort of a crappy bet for you if he moves them for reasons other than "being worried about segwit security" and I win on a technicality. But then it's a crappy bet for me if segwit coins aren't stolen and segwit isn't official rolled back, but people just avoid storing value in it and you win on a technicality. How about:

1. I win (a) immediately if any segwit output is "stolen" without a valid segwit signatures, or (b) after 1 year if no more than 4% of the LN money supply is ever stored as SW coins.

2. You win otherwise.
 
  • Like
Reactions: bitsko and majamalu