Avatar
Bertha
34fd28a49f15200674a31d0f1a1556d2fc2588ae3ea74831fd0efb0406df3b78
Pleb

Maybe it’s just me but the AppStore or certain websites now won’t work if you’re on a VPN. Impressive and scary levels of internets control.

Replying to Avatar Ava

So, looking at raw numbers with 50,000 devices:

Your individual odds = 1 in 50,000

Waiting time = 75-80 days

So you're looking at:

• A 0.002% chance of mining a block

• Waiting ~2.5 months for that tiny chance

With 1 million devices:

Your individual odds = 1 in 1,000,000

Waiting time = 3-5 days

That's:

• A 0.0001% chance of mining a block

• Every 3-5 days, someone in that million gets lucky

• But it's probably not you

However, these statistics are oversimplified. Here's how Bitcoin mining actually works:

Your real chance of mining a block = (Your hashrate / Total network hashrate)

For perspective:

• With 1 TH/s of mining power, odds are roughly 1 in 249,694,649 per block

• A new block is mined every ~10 minutes

• But it's a continuous probability game, not a scheduled event

When more devices join the network:

1. The total network hashrate increases

2. Your individual device's hashrate stays the same

3. Therefore, your relative share (and odds) decrease

So when they say 'a device will mine a block every X days,' it's misleading—it's a network-wide statistic, like saying 'someone will win the lottery every drawing.' It doesn't improve your individual device's chances; more competition actually makes your odds worse.

This is why solo mining has largely been replaced by industrial mining operations—the odds for individual miners have become increasingly unfavorable as the network has grown.

I don't gamble, and I don't play the lottery. These devices are fun and educational, but they are expensive lottery tickets with worse odds.

I like that these devices increase the odds that even a small amount of blocks keep being won each year by people ignoring the odds, which is a collective good for Bitcoin.

I sold it on eBay and bought more bitcoin.

One of the few switch games I regret never buying

Somewhere I stated very confidently that Datum can’t be employed by solo miners.

I was very wrong and I’m now running a Start9 with a Datum pool for my home lottery miners.

My long term theory is that tax on bitcoin trends to 0 because people will be desperate to get their hands on any of it.

This idea has been circulated before but a pool that pays 50% rewards and 50% to a block finder is my dream pool. Yes you can just buy 2 miners and split mine solo vs a pool but for those of us with limited hash it would be worth a premium fee.

Conducting your transactions from a node you install from https://bitcoincore.org connected to sparrow from https://www.sparrowwallet.com that you’ve connected a hardware wallet to is really satisfying.

Don’t assume it’s hard! Plenty of people will help if you feel like it’s out of your realm of expertise. Just try it with a small amount of funds to start.

From nostr:nprofile1qqs976gg9npqm0wjtveqavxru70nha4peyhxqc35f88nyf9slgg7m2gpzemhxue69uhkummnw3ex2mrfw3jhxtn0wfnj70a65tu

COVENANTS BEAUTY-CONTEST RATIONALE

# Prelude

Soft forks tighten the rule set of what transactions are valid. Additional opcodes allow existing owners of coins to put additional constraints on how those coins are spent.

Many covenant-enabling opcodes are nothing more than "new", more specific sighashes[^0]. Other opcodes allow access to information about a spending transaction.

None of this is conceptually objectionable. People should be able to put constraints on their property. But first we must do no harm.

The concrete issues when gauging additional script functionality are:

- "externality" risk - is enforcing this new rule going to make bitcoin somehow exploitable?

- "code carry" risk - once a rule is added to bitcoin, it must be enforced forever, or else a hardfork takes place. Is the code going to pose some kind of awful maintenance burden?

These two risks are, for all outstanding covenant proposals, essentially implementation risks (aside from maybe OP_CAT, which I'll talk about).

Because of script size limits and block constraints, many other, more fundamental externality risks of script execution just aren't an issue in the way that they would be on a less constrained blockchain.

All that said...

# OP_CTV

Prefer

In a nutshell, CTV allows you to say "these coins are only spendable by the following set of possible transactions." It turns out this is really, really useful in a number of different contexts:

- Precomputed vaults: to emulate vaults with presigned transactions, custodians must presign vault graphs with ephemeral keys, and then delete the keys. Since you can't really prove key deletion, auditors hate vaults. CTV removes this need.

- Usable-by-individual-people vaults: For "better" vaults that are actually usable by real people, CTV is crucial. From BIP-345:

"During the withdrawal process, the proposed final destination for value being withdrawn must be committed to. OP_CTV is the simplest, safest way to commit the spend of some coins to a particular set of outputs. An earlier version of this proposal attempted to use a simpler, but similar method, of locking the spend of coins to a set of outputs, but this method introduced txid malleability."

- Massive DLC optimization (https://x.com/matthewjablack/status/1685005681902977024)

- Applications for timeout trees and second-layer systems like Ark

- Non-interactive lightning channel setup

- Used with CSFS to allow eltoo (not that I'm sure anyone actually cares)

- Congestion control: a speculative but potentially crucial tool for facilitating highly compressed use of chain space to get people "out" of systems if there is correlated failure in a third party custodian, whether that's a conventional exchange or some kind of programmatic construct like a Lightning channel (remember the 0-days in LND?).

- A slightly deeper spectulation is that CC could eventually be used to smooth out the fee market, which may give miners less of an incentive to try reorg battles during times of low fees. But that one is certainly speculative.

I could go on, but it should already be apparent that so many uses across such a diverse set of applications attests to the fact that we just keep discovering that this thing is really useful.

And it's simple. And it's upgradeable. And people have been trying to break it for years, and can't.

This should have been activated a year ago probably.

# OP_CHECKSIGFROMSTACK (CSFS)

Prefer

Bitcoin's CHECKSIG is basically the core of how most coins are moved. All CSFS does is takes that same signature checking operation, and allows it over an arbitrary message using an arbitrary pubkey. As long as it's costed properly, it's basically safe by definition. Elements has had CHECKSIGFROMSTACK deployed since 2017.

It's the kind of op that probably just should have been in bitcoin all along.

Uses:

- Key delegation: "allow someone to spend this coin if their key is signed by mine" probably has some cool statechain use

- Eltoo: along with CTV, CSFS lets you do eltoo

- Other uses spelled out at Optech: https://bitcoinops.org/en/topics/op_checksigfromstack/

# OP_PAIRCOMMIT

Weak

This is a special form of OP_CAT that is constructed (I think?) solely to enable eltoo.

This is emblematic of a certain class of proposals for me: I don't consider them any kind of technical risk to bitcoin, safe to deploy, low code burden, etc. etc. But they're just kind of goofy.

This feels like a very special-cased opcode that is just trying to skirt ghosts of OP_CAT that I don't think are actually worth worrying about.

I'd be fine if this was in bitcoin, but let's just get real and do OP_CAT instead.

# OP_INTERNALKEY

Prefer

Another completely inoffensive, three-line opcode that probably should have just come with Taproot. All this thing does is push the Taproot internal key to the stack. It saves many script bytes when we want to make some kind of assertion about the Taproot structure. No downsides.

There is an application for this when implementing eltoo (again, if anyone cares) with CTV+CSFS, but I can see how, like CTV, this is a very general, simple tool that will have uses in many disparate applications.

# OP_CAT

Acceptable

I hated CAT when its discussion (re)started, and I still hate it in a very real sense, but its time has come.

If the window for soft forks is closing, which I think may be the case, OP_CAT is seemingly the ultimate, if not bone-crunchingly stupifying, escape hatch to functionality that we might want to implement down the road but don't have the specific tools for.

OP_CAT enables covenants in the same way that having an arbitrary number of black and white pebbles allows you to build an x86 computer. But some people are okay paying for that, and probably much better to have the option than not.

I used to have vague worries about MEV, but some combination of script size limits, the slow 10 minute block time, and the UTXO (vs. account) model really limits the byzantine mischief that ETH people and other assorted cartoon characters can bring to the chain.

CAT is a necessary admission that the consensus process is calcifying, and we are in need of a permissionless escape hatch (however stupid) to continue to innovate. It's also harmless due to script size limits.

# OP_CCV

Wanting

I am very supportive of OP_CHECKCOVENANTVERIFY, especially if it's a more general mechanism that can absorb OP_VAULT uses but also be useful for other things.

The problem is that

(i) I don't fully grok it yet,

(ii) many people don't grok it yet, and

(iii) there is work to be done on both the implementation and spec. There is no BIP, nor Core PR patch, although the two are probably within spitting distance.

It may well be that OP_VAULT gets folded somehow into OP_CCV as an application, and I'd welcome that. But it remains to be seen.

# OP_VAULT

Acceptable/Prefer

I've written at length, and will continue to write, about how important vaults are. My industry experience is intimately linked with this stuff, and I honestly can't see a user of bitcoin whose experience wouldn't improve given the presence of something like OP_VAULT.

You can get part of the way there with CTV and CAT, but there are crucial usability and efficiency differences that those two simply won't get you relative to the OP_VAULT construction. These are:

- Easy address reuse: CTV, for example, will burn funds if you reuse vault addresses,

- Arbitrary partial withdrawals ("revaults"): CTV can't do this, CAT can _maybe_ do it as long as the math doesn't require 64 bit,

- Batched triggering: an important efficiency gain where many number of vault outputs are spent by the same unvaulting process (CTV can't do this; CAT can do it within certain amounts and up to say 8 inputs),

- No horribly confusing scripts (only mildly confusing scripts) and metadata retention processes

To date, the OP_VAULT vault construction is the only vault that I would personally use, although I do think CTV vaults could be useful in an industrial context. I would never recommend CAT vaults for use because the scripts are so inscrutable, but maybe after years and years of cooling period and better tooling, there could emerge a (relatively inefficient) construction that people do feel okay about using.

The problem with OP_VAULT right now is that it is a relatively heavyweight change compared to, say, CAT and CTV. I think it's well specified and well tested, and probably has more review than many of these other proposals. But it still doesn't feel like it yet has the momentum for immediate activation.

Sometimes I feel frustrated that I can see, tangibly, how much better a custody experience this could provide for bitcoin, but not enough people at this point do and that's life. You can't push a string.

# OP_TXHASH

Deficient

This is an interesting one. Another category of opcodes is: "in conceptual terms I support having something like this in bitcoin, but the implementation is just too complex and the proposed usecases too unspecified."

Conceptually, you should be able to dictate as granular a sighash as you want in bitcoin. This is basically what TXHASH does.

The snag is twofold:

1. this results in a complicated piece of code that has numerous open questions about how necessary it is to cache things to avoid issues like quadratic sighash (https://fjahr.com/posts/how-segwit-solved-the-quadratic-sighash-problem/), and

2. I haven't heard a clear articulation of the uses over and above CTV, which TXHASH is basically just a more general version of.

If great uses get pitched and people get excited and it really _does_ seem worth the effort to have super flexible sighashing in bitcoin, I'm all for it. But it will take a good amount of work to make sure that code isn't going to cause problems.

# SIGHASH_APO

Weak

Basically obviated by better alternatives (CTV+CSFS), but if the question is "nothing vs. APO," I'll take APO every time.

# Footnotes

[^0]: For those who forget, the sighash is just a digest of a spending transaction

that is signed by the owner of coins which are proposing to be spent.

9:11 PM · Dec 12, 2024

Thanks for writing this - gave me a lot of jumping off points to explore and learn more. I’m surprised OP_VAULT doesn’t have more momentum. To me it seems like the average holder would have more safety and control over their coins which I’d assume most people want?

There will be deep pockets waiting for coins that get sold off thinking the next bear is a predictable event.

If I wanted to suppress a price and had infinite fiat I’d buy a ton of that stuff and sell (constantly) for a loss. I could do that for a long time but if there were enough committed buyers and finite supply I’d lose.

I don’t know what a b000XP is but it looks fucking cool.