<div dir="ltr"><div><div><div>Hi Chris,<br><br>While approaching this question, I think you should consider economic weight of nodes in evaluating miner consensus-hijack success. Even if you expect a disproportionate ratio of full-nodes-vs-SPV, they may not have the same  economic weight at all, therefore even if miners are able to lure a majority of SPV clients they may not be able to stir economic nodes. SPV clients users will now have an incentive to cancel their hijacked history to stay on the most economic meaningful chain. And it's already assumed, that if you run a bitcoin business or LN routing node, you do want to run your own full-node. <br><br>I agree it may be hard to evaluate economic-weight-to-chain-backend segments, specially with offchain you disentangle an onchain output value from its real payment traffic. To strengthen SPV, you may implement forks detection and fallback to some backup node(s) which would serve as an authoritative source to arbiter between branches. Such backup node(s) must be picked up manually at client initialization, before any risk of conflict to avoid Reddit-style of hijack during contentious period or other massive social engineering. You don't want autopilot-style of recommendations for picking up a backup nodes and avoid cenralization of backups, but somehow a uniform distribution. A backup node may be a private one, it won't serve you any data beyond headers, and therefore you preserve public nodes bandwidth, which IMO is the real bottleneck. I concede it won't work well if you have a ratio of 1000-SPV for 1-full-node and people are not effectively able to pickup a backup among their social environment.<br><br></div>What do you think about this model ?<br><br></div>Cheers,<br><br></div>Antoine<br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Le mar. 12 mai 2020 à 17:06, Chris Belcher <<a href="mailto:belcher@riseup.net">belcher@riseup.net</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 05/05/2020 16:16, Lloyd Fournier via bitcoin-dev wrote:<br>
> On Tue, May 5, 2020 at 9:01 PM Luke Dashjr via bitcoin-dev <<br>
> <a href="mailto:bitcoin-dev@lists.linuxfoundation.org" target="_blank">bitcoin-dev@lists.linuxfoundation.org</a>> wrote:<br>
> <br>
>> On Tuesday 05 May 2020 10:17:37 Antoine Riard via bitcoin-dev wrote:<br>
>>> Trust-minimization of Bitcoin security model has always relied first and<br>
>>> above on running a full-node. This current paradigm may be shifted by LN<br>
>>> where fast, affordable, confidential, censorship-resistant payment<br>
>> services<br>
>>> may attract a lot of adoption without users running a full-node.<br>
>><br>
>> No, it cannot be shifted. This would compromise Bitcoin itself, which for<br>
>> security depends on the assumption that a supermajority of the economy is<br>
>> verifying their incoming transactions using their own full node.<br>
>><br>
> <br>
> Hi Luke,<br>
> <br>
> I have heard this claim made several times but have never understood the<br>
> argument behind it. The question I always have is: If I get scammed by not<br>
> verifying my incoming transactions properly how can this affect anyone<br>
> else? It's very unintuative.  I've been scammed several times in my life in<br>
> fiat currency transactions but as far as I could tell it never negatively<br>
> affected the currency overall!<br>
> <br>
> The links you point and from what I've seen you say before refer to "miner<br>
> control" as the culprit. My only thought is that this is because a light<br>
> client could follow a dishonest majority of hash power chain. But this just<br>
> brings me back to the question. If, instead of BTC, I get a payment in some<br>
> miner scamcoin on their dishonest fork (but I think it's BTC because I'm<br>
> running a light client) that still seems to only to damage me. Where does<br>
> the side effect onto others on the network come from?<br>
> <br>
> Cheers,<br>
> <br>
> LL<br>
> <br>
<br>
Hello Lloyd,<br>
<br>
The problem comes when a large part of the ecosystem gets scammed at<br>
once, which is how such an attack would happen in practice.<br>
<br>
For example, consider if bitcoin had 10000 users. 10 of them use a full<br>
node wallet while the other 9990 use an SPV wallet. If a miner attacked<br>
the system by printing infinite bitcoins and spending coins without a<br>
valid signature, then the 9990 SPV wallets would accept those fake coins<br>
as payment, and trade the coins amongst themselves. After a time those<br>
coins would likely be the ancestors of most active coins in the<br>
9990-SPV-wallet ecosystem. Bitcoin would split into two currencies:<br>
full-node-coin and SPV-coin.<br>
<br>
Now the fraud miners may become well known, perhaps being published on<br>
bitcoin news portals, but the 9990-SPV-wallet ecosystem has a strong<br>
incentive to be against any rollback. Their recent transactions would<br>
disappear and they'd lose money. They would argue that they've already<br>
been using the coin for a while, and it works perfectly fine, and anyway<br>
a coin that can be spent in 9990 places is more useful than one that can<br>
be spent in just 10 places. The SPV-wallet community might even decide<br>
to use something like `invalidateblock` to make sure their SPV-coin<br>
doesn't get reorg'd out of existence. There'd also likely be a social<br>
attack, with every bitcoin community portal being flooded with bots and<br>
shills advocating the merits of SPV-coin. This is not a hypothetical<br>
because we already saw the same thing during the scalability conflict<br>
2015-2017.<br>
<br>
Before you know it, "Bitcoin" would become SPV-coin with inflation and<br>
arbitrary seizure. Any normal user could download software called<br>
"Bitcoin wallet" which they trust and have used before, but instead of<br>
using Bitcoin they'd be using SPV-coin. You may be one of the 10 wallets<br>
backed by a full node, but that won't do much good to you when 9990<br>
users happily use another coin as their medium of exchange.<br>
<br>
Regards<br>
CB<br>
_______________________________________________<br>
Lightning-dev mailing list<br>
<a href="mailto:Lightning-dev@lists.linuxfoundation.org" target="_blank">Lightning-dev@lists.linuxfoundation.org</a><br>
<a href="https://lists.linuxfoundation.org/mailman/listinfo/lightning-dev" rel="noreferrer" target="_blank">https://lists.linuxfoundation.org/mailman/listinfo/lightning-dev</a><br>
</blockquote></div>