Subject: Re: [bitcoin-dev] Hard fork proposal from last week's meeting

From: Jared Lee Richardson <[email-masked]>
Date: Fri, 31 Mar 2017 08:59:19 -0700

> Peter Todd has demonstrated this on mainstream SPV wallets,
> https://www.linkedin.com/pulse/peter-todds-fraud-proofs-talk-mit-bitcoin-expo-2016-mark-morris

Correct me if I'm wrong, but nothing  possible if the client software
was electrum-like and used two independent sources for verification.
No?

> Do thought experiments and take it to the extremes where nobody runs a node, what can miners do now which they could not do before?

This and the next point are just reductio ad absurdem, since no one is
suggesting anything of the sort. Even in that situation, I can't think
of anything miners could do if clients used more than one independent
source for verification, ala electrum question above.

> Why don't exchanges run SPV nodes?

No one is suggesting anything like this.  The cost of running a node
that could handle 300% of the 2015 worldwide nonbitcoin transaction
volume today would be a rounding error for most exchanges even if
prices didn't rise.

On Fri, Mar 31, 2017 at 1:19 AM, Luv Khemani <[email-masked]> wrote:
>> Err, no, that's what happens when you double click the Ethereum icon
>
> instead of the Bitcoin icon.  Just because you run "Bitcoin SPV"
> instead of "Bitcoin Verify Everyone's Else's Crap" doesn't mean you're
> somehow going to get Ethereum payments.  Your verification is just
> different and the risks that come along with that are different.  It's
> only confusing if you make it confusing.
>
> This is false. You could get coins which don't even exist  as long as a
> miner mined the invalid transaction.
> Peter Todd has demonstrated this on mainstream SPV wallets,
> https://www.linkedin.com/pulse/peter-todds-fraud-proofs-talk-mit-bitcoin-expo-2016-mark-morris
>
> The only reason SPV wallets do not accept ethereum payments is because of
> transaction/block format differences.
> SPV wallets have no clue what is a valid bitcoin, they trust miners fully.
>
> In the event of a hardfork, SPV wallets will blindly follow the longest
> chain.
>
>> If every block that is mined for them is deliberately empty because of
> an attacker, that's nonfunctional.  You can use whatever semantics you
> want to describe that situation, but that's clearly what I meant.
>
> Not sure why you are bringing this up, this is not the case today nor does
> it have anything to do with blocksize.
>
>> As above, if someone operates Bitcoin in SPV mode they are not
> magically at risk of getting Dashcoins.  They send and receive
> Bitcoins just like everyone else running Bitcoin software.  There's no
> confusion about it and it doesn't have anything to do with hashrates
> of anyone.
>
> As mentioned earlier, you are at risk of receiving made up money.
> SPV has everything to do with hashrate, it trusts hashrate fully.
> Crafting a bitcoin transaction paying you money that i do not have is not
> difficult, as long as a miner mines a block with it, your SPV wallet will
> accept it.
>
>> The debate is a choice between nodes paying more to allow greater growth
>> and adoption,
> or nodes constraining adoption in favor of debatable security
> concerns.
>
> Onchain transactions are not the only way to use Bitcoin the currency.
> Trades you do on an exchange are not onchain, yet transacted with Bitcoin.
>
>> And even if there was, the software would choose it for you?
>
> People choose the software, not the other way round.
>
>> Yes you do, if the segment options are known (and if they aren't,
> running a node likely won't help you choose either, it will choose by
> accident and you'll have no idea).  You would get to choose whose
> verifications to request/check from, and thus choose which segment to
> follow, if any.
>
> SPV does not decide, they follow longest chain.
> Centralised/Server based wallets follow the server they are connecting to.
> Full Nodes do not depend on a 3rd party to decide if the money received is
> valid.
>
>>  Are you really this dense?  If the cost of on-chain transactions
> rises, numerous use cases get killed off.  At $0.10 per tx you
> probably won't buy in-game digital microtransactions with it, but you
> might buy coffee with it.  At $1 per tx, you probably won't buy coffee
> with it but you might pay your ISP bill with it.  At $20 per tx, you
> probably won't pay your ISP bill with it, but you might pay your rent.
> At $300 per tx you probably won't use it for anything, but a company
> purchasing goods from China might.  At $4000 per tx that company
> probably won't use it, but international funds settlement for
> million-dollar transactions might use it.
>> At each fee step along the way you kill of hundreds or thousands of
> possible uses of Bitcoin.  Killing those off means fewer people will
> use it, so they will use something else instead.
>
> No need to get personal.
> As mentioned earlier, all these low value transactions can happen offchain.
> None of the use cases will be killed off. We have sub dollar trades
> happening on exchanges offchain.
>
>> The average person doesn't need that level of security.
>
> Precisely why they do not need to be on-chain.
>
> It is clear to me that you have not yet grasped Bitcoin's security model,
> especially the role Full-Nodes play in it.
> Id suggest you do some more reading up and thinking about it.
> Do thought experiments and take it to the extremes where nobody runs a node,
> what can miners do now which they could not do before?
> Why don't exchanges run SPV nodes?
>
> Further correspondence will not be fruitful until you grasp this.
>
>
>
> On Thu, Mar 30, 2017 at 9:21 PM, Luv Khemani <[email-masked]> wrote:
>>
>> > Nodes don't do politics.  People do, and politics is a lot larger with a
>> > lot more moving parts than just node operation.
>>
>>
>> Node operation is making a stand on what money you will accept.
>>
>> Ie Your local store will only accept US Dollars and not Japanese Yen.
>> Without being able to run a node, you have no way to independently determine
>> what you are receiving, you could be paid Zimbawe Dollars and wouldn't know
>> any better.
>>
>>
>> > Full nodes protect from nothing if the chain they attempt to use is
>> > nonfunctional.
>>
>> This is highly subjective.
>> Just because it is nonfunctional to you, does not mean it is nonfunctional
>> to existing users.
>>
>> > This power is far more complicated than just nodes.
>>
>> I never implied otherwise.
>>
>> > You're implying that node operation == political participation.
>>
>> Ofcourse it is. Try paying for my goods using BU/Ehtereum/Dash/etc.. or a
>> Bitcoin forked with inflation, you will not get any goods regardless of how
>> much hashrate those coins have.
>>
>> > Miners being distributed in enough countries and locations to avoid any
>> > single outside attacker group from having enough leverage to prevent
>> > transaction inclusion, and miners also having enough
>> > incentives(philosophical or economic) to refuse to collude towards
>> > transaction exclusion.
>>
>> It's good that you see the importance of this. You should also take into
>> consideration the number of independent mining entities it takes to achieve
>> 51% hashrate. It will be of little use to have thousands on independent
>> miners/pools  if 3 large pools make up 51% of hash rate and collude to
>> attack the network.
>>
>> >  If users refused to get on board, exchanges would follow users.  If
>> > miners refused to get on board, the attempt would be equally dead in the
>> > water.  It would require a majority of users, businesses and miners to
>> > change the limit;
>>
>> > Nodes have absolutely no say in the matter if they can't segment the
>> > network, and even if they could their impact could be repaired.  Users !=
>> > Nodes.
>>
>> Nodes define which network they want to follow. Without a Node, you don't
>> even get to decide which segement you are on. Either miners decide( for SPV
>> wallets) or your wallet's server decides(Node). You have no control without
>> a
>>
>> >> What makes transactions irreversible
>> >Nodes have absolutely no say in the matter, they always follow the
>> > longest chain unless a hardfork was applied.
>>
>> My bad here, hashpower decides order. This is the sole reason we have
>> mining, to order transactions.
>>
>> > Mutual destruction comes from the market forces on the exchanges, and
>> > they could give a rats ass whether you run a node or not.
>>
>> Ability to run a node and validate rules => Confidence in currency =>
>> Higher demand => Higher exchange rate
>>
>> I would not be holding any Bitcoins if it was unfeasible for me to run a
>> Node and instead had to trust some 3rd party that the currency was not being
>> inflated/censored. Bitcoin has value because of it's trustless properties.
>> Otherwise, there is no difference between cryptocurrencies and fiat.
>>
>> > Literally the only reason we have 10s of billions of dollars of value is
>> > because speculation, which includes nearly all Bitcoin users/holders and
>> > almost all businesses and miners.  While  Bitcoin borrows useful features
>> > from gold, it has more possible uses, including uses that were never
>> > possible before Bitcoin existed, and we believe that gives it huge
>> > potential.
>> > The ability of other systems to do transactions, like visa or cash, come
>> > with the limitations of those systems.  Bitcoin was designed to break those
>> > limitations and STILL provide the ability to do transactions.  We might all
>> > agree Bitcoin isn't going to ever solve the microtransaction problem, at
>> > least not on-chain, but saying Bitcoin doesn't need utility is just foolish.
>> > Gold doesn't need utility, gold has 4,000 years of history.  We don't.
>> > There's no reason those blocksize increases can't be tied to or related
>> > to usage increases
>>
>> Blocksize has nothing to do with utility, only cost of on-chain
>> transactions.
>> OTOH increasing the blocksize has alot to do with introducing the very
>> limitations that Visa/Cash have.
>> Why would you risk destroying Bitcoin's primary proposition (removing
>> limitations of Cash/Visa) for insignificant capacity increase?
>>
>> > That's like saying it would be better to do nothing so someone else
>> > solves our problem for us than it would be for us to do what we can to solve
>> > it ourselves.  Someone else solving our problem may very well be Ethereum,
>> > and "solving it for us" is pulling Bitcoin investments, users and nodes away
>> > into Ethereum.
>>
>> Who says nothing is being done? Segwit, Lightning, pre-loaded wallets like
>> Coinbase are all solutions.
>>
>>
>>
>>
>> On Thu, Mar 30, 2017 at 12:11 AM, Luv Khemani <[email-masked]> wrote:
>>>
>>>
>>> >> If home users are not running their own full nodes, then home users
>>> >> have to trust and rely on other, more powerful nodes to represent them. Of
>>> >> course, the more powerful nodes, simply by nature of having more power, are
>>> >> going to have different opinions and objectives from the users.
>>>
>>> >I think you're conflating mining with node operation here.  Node users
>>> > only power is to block the propagation of certain things.  Since miners also
>>> > have a node endpoint, they can cut the node users out of the equation by
>>> > linking with eachother directly - something they already do out of
>>> > practicality for propagation.  Node users do not have the power to arbitrate
>>> > consensus, that is why we have blocks and PoW.
>>>
>>> You are only looking at technical aspects and missing the political
>>> aspect.
>>>
>>> Node users decide what a Bitcoin is. It matters not how much hash power
>>> is behind a inflationary supply chain fork, full nodes protect the user from
>>> the change of any properties of Bitcoin which they do not agree with. The
>>> ability to retain this power for users is of prime importance and is
>>> arguably what gives Bitcoin most of it's value. Any increase in the cost to
>>> run a full node is an increase in cost to maintain monetary sovereignty. The
>>> ability for a user to run a node is what keeps the miners honest and
>>> prevents them from rewriting any of Bitcoin's rules.
>>>
>>> If it's still difficult to grasp the above paragraph, ask yourself the
>>> following questions,
>>> - What makes Bitcoin uncensorable
>>> - What gives confidence that the 21 million limit will be upheld
>>> - What makes transactions irreversible
>>> - If hashpower was king as you make it to be, why havn't miners making up
>>> majority hashrate who want bigger blocks been able to change the blocksize?
>>>
>>> The market is not storing 10s of billions of dollars in Bitcoin despite
>>> all it's risks because it is useful for everyday transactions, that is a
>>> solved problem in every part of the world (Cash/Visa/etc..).
>>>
>>> Having said that, i fully empathise with your view that increasing
>>> transaction fees might allow competitors to gain marketshare for low value
>>> use cases. By all means, we should look into ways of solving the problem.
>>> But all these debates around blocksize is a total waste of time. Even if we
>>> fork to 2MB, 5MB, 10MB. It is irrelevant in the larger picture, transaction
>>> capacity will still be too low for global usage in the medium-long term. The
>>> additional capacity from blocksize increases are linear improvements with
>>> very large systemic costs compared with the userbase and usage which is
>>> growing exponentially. Lightning potentially offers a couple or orders of
>>> magnitude of scaling and will make blocksize a non-issue for years to come.
>>> Even if it fails to live up to the hype, you should not discount the market
>>> innovating solutions when there is money to be made.
>>>
>>