Damus

Recent Notes

semisol · 1d
We have at least the illusion of consensus on SegWit, and that a good chunk (not any majority) of economic participants do enforce it (considering they rely on for example witness-embedding TX submiss...
Nuh profile picture
Yes that is my point. It is true that miners only follow consensus, they don't create it, but their behaviour is the only objectively observable thing.

The moment you find yourself on a chain that isn't the absolute heaviest with a large margin, you better go check what's going on, software can't help you settle this, and saying that code is law is just cope.

If after manually checking you decided to stick with the lighter fork, fine, but that is subjective decision one that probably includes checking the price of each coin and verifying that your UTXOs aren't stolen, and then making a bet on the future price, and/or make a principled decision like Ethereum classic I guess.
🤙1
Nuh · 1d
Your* UTXOs
Nuh profile picture
1. Run and SPV node.
2. Do NOT accept a tip that is too old (wait until you get a header with timestap that at max 10 minutes older than your clock).
3. Wait until you get 6 confirmations.
4. If you see the latest 6 blocks taking too long, actively look for more peers and see if there is a fork.
5. If there is a fork with significant number of blocks, HALT and tell the user to go check what the fuck is going on.
6. If you can't find a fork but your chain is taking too long, HALT and tell the user to go check what the fuck is going on.

That is probably safer than fraud proofs, because... If the valid chain is a 10-100x weaker than the invalid chain... Maybe you just need to let the human intervene, instead of trusting code at this point.

2
Nuh · 1d
The exception to this; enforce the rules you care about... Namely that UTXOs are not stolen.
Nuh profile picture
Unpopular opinion; a full node enforcing Segwit is more likely to find itself on an fork than an SPV client ... I know this is insane to say, but it is true, If enough economic nodes decided to run older bitcoin core versions, miners can safely mine an invalid block according to segwit, and the full node will reject it, but the SPV will just follow the heaviest chain which after 6 blocks is very likely representing the economic majority, and definitely after 100 blocks, or 2016 or whatever threshold that makes you feel safe.

At the very least, full nodes should halt receiving funds if they see sudden drop of difficulty or significant block time lag... But... That is also what SPV clients should do.

Literally all boils down to; heaviest chain is the only objective proxy for consensus and if that doesn't work you HAVE to manually intervene and make a judgement call.
1
Nuh · 1d
- It is all fraud/fork proofs? = Always have been.
semisol · 1d
The reason a UASF can work is that the general economic weight and public balance can shift significantly against the miners, which cannot tolerate the revenue loss (immediate, and longer-term reputat...
Nuh profile picture
Let's be perfectly clear, we don't even know if the majority of economic nodes enforce segwit... We have reasons to believe they do, but really we don't know. All we know is that miners reject invalid segwit, and any invalid segwit block seems to never be built on top.

I am not saying you are wrong, I am saying that after a certain scale, all these social coordination tools break down entirely, and we end up with nothing useful except what miners claim and evidently do.
1
semisol · 1d
We have at least the illusion of consensus on SegWit, and that a good chunk (not any majority) of economic participants do enforce it (considering they rely on for example witness-embedding TX submissions) I guess this all inevitably reflects in miner actions, through nth-order effects.
semisol · 1d
The reason a UASF can work is that the general economic weight and public balance can shift significantly against the miners, which cannot tolerate the revenue loss (immediate, and longer-term reputat...
Nuh profile picture
I already said most of that, by saying that buying and selling is what defines what fork has value. But unless you define value by the Twitter noise, the only way to objectively measure what the economic majority values, is to look at the heaviest chain.

If Satoshi wakes up from death or whatever, he doesn't need to open twitter, not even GitHub, he just needs to run his node, and check the heaviest chain.

The heaviest chain tells him everything he needs to know.

As a matter of fact, even Knots could objectively tell if the economic majority is with them or not, by watching either signaling or watching the two forks (since they are a superset of Core).

So again, the ONLY objective measure of what bitcoin is, is the heaviest chain compatible with an old node ... In fact, even if the heaviest chain is not compatible with your old node and your node can notice a much much longer chain but isn't compatible... Then you ought to double check because you might have a bug that the world decided to patch with a hard fork.

Ultimately, I actually think Bitcoin Core should include such alert for users to go manually judge which fork they need to follow, and whether their old node is actually following their intentions.

But I think most people agree with this, but just hate to admit it.

Consider this, if majority of economic nodes decided to run older nodes, and miners subsequently started to steal taproot UTXOs, is that a hard fork? Not according to the majority, and not according to Satoshi, so you are left on a fork that doesn't even agree with Satoshi... So now what defines consensus?

By definition consensus has to be reflected in the demand and thus in the heaviest chain

Of course this is not something that can be settled in a day or a week ... But after a month or two, someone will give up and follow the majority of change the proof of work or checkpoint a block etc... regardless they will have to become a minority fork and as I explained above the majority fork isn't necessarily invalid according to old nodes.
Nuh · 1d
Full nodes by default are just a free redundancy for the data availability of Bitcoin, very nice help for SPV clients. But they have no power on Bitcoin. Bitcoin is defined as the heaviest valid chai...
Nuh profile picture
To put it in simpler terms; you could have made a smart contract on Ethereum or Rootstock and flat out bribed miners to signal for Bip110, that would have given the miners a better signal than running nodes, but the problem is; you don't have enough money to make a dent relative to the money they are making passively by just selling their block subsidy...
jtown · 2d
Or to put it better if full nodes dont matter what are we doing here?
Nuh profile picture
Full nodes by default are just a free redundancy for the data availability of Bitcoin, very nice help for SPV clients. But they have no power on Bitcoin.

Bitcoin is defined as the heaviest valid chain, the weight part is defined by miners, but the validity part is defined by people providing the purchasing power to Bitcoin both today but indirectly future buyers who may be running older nodes including someone running a 10 years old node.

So let's recap; Miners decide what is the heaviest chain, but miners have costs so they need to make sure they are mining a chain that is not worthless، which means the exit liquidity (from BTC to whatever fiat they need or even if their electricity provider accept Bitcoin) dictates which chain they will build on top.

So let's recap AGAIN, who decides what bitcoin is? The people who buy bitcoin every day or every week or every month or whatever... Of course sellers matter too, so if you start selling all your "Core Coins" and start buying "Bip110 coins" you are voting on the chain you want ... And if you are the majority, monetary wise (ironic right) then you will win.

What frustrates both puritans who hate opreturn, and the covenants enthusiasts who want bitcoin to be trustlessly bridged everywhere, is that most people who buy and hold bitcoin aren't actually as invested in either direction unfortunately.
2
Nuh · 1d
To put it in simpler terms; you could have made a smart contract on Ethereum or Rootstock and flat out bribed miners to signal for Bip110, that would have given the miners a better signal than running nodes, but the problem is; you don't have enough money to make a dent relative to the money they ar...
semisol · 1d
Bitcoin is not the heaviest valid chain, and there is no “definition” of Bitcoin either. It is a vague term that exists because of a general consensus all sorts of participants, which have weight in different ways (economic, computational, leadership, publicity, etc.) And there is no strict we...
Nuh profile picture
I wanted to verify this for some time; you can use Bitcoin difficulty alone to have a bitcoin derivative that has comparable volatility to the 200 WMA of the BTC/USD price... Except you don't need an oracle for the BTC/USD historical price, nor do you create any demand for USD specifically... It is a pure measurement of the moving average of global demand of Bitcoin for the past year, and thus it works totally independently from any fiat information.

There is also some simulation about how would a salary contract denominated in this smoothed demand currency and renegotiated once a year work for both parties. Similarly there is a simulation for how would a merchant accepting this currency then buying inventory once a month in USD fair given the monthly volatility.

Bitcoin price will never be stable, but the 200wma is already stable enough, this is a way to create a "stable" derivative of BTC that doesn't refer to any authority other than Bitcoin itself and it's onchain data.

I hope you like it.

Note; Rootstock has access to bitcoin headers by consensus, and has the expressivity to build a lending protocol based on this. Hopefully someone would build it.

https://github.com/nuhvi/dbtc