Lead Core Lightning, Standards Wrangler, Bitcoin Script Restoration ponderer, coder. Full time employed on Free and Open Source Software since 1998. Joyous hacking with others for over 25 years.
Public Key
npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Profile Code
nprofile1qqs0zuj4s6jq9sr2ajqc69rc53d25rwpd3afcjrfm97r2qek69hcuscpp4mhxue69uhkummn9ekx7mqpr3mhxue69uhkummnw3ezucnfw33k76twv4ezuum0vd5kzmq2kt2pr
Show more details
Published at
2024-06-08T03:44:48Z Event JSON
{
"id": "2a2f9df4a08077b41de1ca2ec3dd7d072ca45729a1f8debdf711e46de1586e6b" ,
"pubkey": "f1725586a402c06aec818d1478a45aaa0dc16c7a9c4869d97c350336d16f8e43" ,
"created_at": 1717818288 ,
"kind": 0 ,
"tags": [
[
"alt",
"User profile for Rusty Russell"
]
],
"content": "{\"name\":\"Rusty Russell\",\"display_name\":\"Rusty Russell\",\"website\":\"https://rusty.ozlabs.org\",\"about\":\"Lead Core Lightning, Standards Wrangler, Bitcoin Script Restoration ponderer, coder. Full time employed on Free and Open Source Software since 1998. Joyous hacking with others for over 25 years.\",\"lud16\":\"npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s@npub.cash\",\"nip05\":\"[email protected] \",\"picture\":\"https://rusty.ozlabs.org/images/Rusty_Russell-lca2011+crop.jpg\"}" ,
"sig": "16ded7f3f6efc75faa92bca1936052a0244e479662f36393857d45acceeca06f47ccdc61e1156b673c7a06ae17ff1804ac8177da28aecb38b1d4dba8e3b7b8ef"
}
Last Notes npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell Hi from https://cashu.centurymetadata.org npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell I take birthdays seriously! https://npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s.blossom.band/dd4c1dec153d7b2619e2c115b344d4d250ad89832f94f25a7bfd1d38b0dc127a.jpgbirthday npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell Time for a Rocky Horror / Muppet Treasure Island double feature! npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell Don't confuse a 2 week embargo with closed source. They're in a hard place. npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell Manager of the Lightning Team, she signed the last 5 releases? npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell You can also restart with --developer --dev-no-version-checks --subdaemon=openingd:/DNE --subdaemon=dualopend:/DNE This prevents new channels from opening (by telling it to use subdaemons which don't exist: the dev option stops it checking at startup). If you think your node is unlikely to be messed up by existing peers, and you're just worried about new ones. #nevent1q…uk05 npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell Calle misread. It says upgrade when the release comes, or go --offline. It absolutely did not recommend "shut down NOW" 😕 npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell Was he actually malicious? I disagreed with him, but there is a difference. npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell Very few builders in this space are actually malicious. But many need to get out and touch grass. Myself not excepted! npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell Yes, classical C has the problem that operations are low-level, so if you overrun the end of a buffer, instead of a crash report the attacker can make arbitrary commands run. Also, manually deallocating memory can be omitted (oops, program grows over time, crashes) or done twice (also classically tricked into running arbitrary code). Also, the standard routines are minimal, forcing programmers generally to deal with these issues everywhere. CLN has a *lot* of internal infrastructure to avoid code having to do this. Firstly, the tal hierarchical allocator removes most manual deallocating, and all the infrastructure relies on it. Second, all the wire demarshaling routines are generated from spec files, and all come down to two hard-to-misuse routines (note: the bolt11 parsing was hand-coded by me, didn't use this, and had serious bugs!). Finally, we use patterns designed to highlight issues early, including running test cases under Valgrind (a memory debugger) and internal memory leak detection. But as one developer said "It's not coding in C, it's coding in Rusty's C"! npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell Yet last I heard, libsecp256k1 held up pretty well? On a less vague - posting note, I had Kimi work through CCAN for bugs, resulting in about 100 commits. I'll go through this morning and see how many are C mistakes, but I don't recall many (and yes, I reviewed each one carefully). But it's mostly my code, and I've got a fairly defensive style built over a long career of mistakes. I should probably post about that... npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell Oh, winning! Pretty good stats on a really cheap die. npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell Here's something I've been working on along similar lines: https://github.com/rustyrussell/bip39dice Haven't published it yet, since it needs a helper video and some serious analysis (i.e. how biased are normal dice, and how biased is hand rolling) and of course concrete recommendations for the final word fixup. But being able to *verify* that your phrase is random is far better than other approaches, if you're going to roll... npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell Day 3 of grinding kimi to do a complete CCAN audit (CCAN is the repo of C snippets I maintain, used by many projects including Core Lightning). So far, some minor issues: mainly for weird corner cases not used by any codebase I'm aware of. But many of them, and this is battle-tested code. It's impressive how cheap this is: I'm still under $50 spend, and less than 8 hours of my own time. npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell No: if the grid is the entropy it's just a memorized wallet. The point is that the grid is low enough entropy that you can remember it. npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell I have not found a correlation between developer attitude and brilliance, regretfully. The rise of Free & Open Source Software added a bias, though: developers who played well with others made more progress in the long term. That and the internet made software a social activity. npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell I don't think burying Coinkite is the right answer, BTW. But reality rarely listens to my opinions! npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell No, you got a convincing-looking letter in the mail and upgraded your firmware, coins lost. Oops. npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell But it won't stop someone like this who doesn't use it. Perhaps a secure_rng() API which refused to fall back? But that would have to be plumbed though all the Python libs too. And maybe they would have hacked it out anyway, in the hurry to remove GPL code? npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell Patterns are the enemy of entropy. Because this is harder to evaluate, it looks better at first glance. If you assume people draw contiguous patterns, what is the actual entropy? npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell I disagree with nvk on several things, but I like his uncompromising approach to hardware and shipping. Testing for weak entropy is hard, this is absolutely a mistake I could have made, and I would also be furious if this lost my funds. I've been trying to come up with a witty name though. Stolecard? Goxbox? "MicroSiphon inside"? npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell Because it was a fake letter sent to their home address based on the ledger leak and in fact was instructing them to install malware that stole all their coins :( npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell Today's side quest: Great Speculations (greatspectations.com). Useful tool for checking source code quotes against a document: I used this in CLN and it improved compliance *and* the spec itself, as well as making it easy to follow spec changes. This is the polished and published version which handles RFCs, BIPS, and any other markdown or other docs. npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell What a horrible day. I am haunted by the fear that a normal Bitcoin use can do everything right, only to lose everything because you didn't hand-roll your entropy, or upgraded your firmware because "Ledger" sent you a warning email. 😢 npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell Wow! Congratulations, both of you! ❤️ npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell That's great! I hope some of them work out. I imagine there are numerous companies who decided to keep treasury in Bitcoin and are now seeking both capital, and frankly, reassurance? If so, your timing here is excellent* *Unless it's not. We will know in three years. npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell The problem with this is that well-run, boring, positive cash flow companies are really hard to find. All the obvious ones were snarfed up by previous variants of this play. It *sounds* great, until you get to the messy reality that the firms you want don't need you. So you have to find and pitch them. And why would they say yes? Because they're looking for an exit, which is the opposite of what you said you wanted. This is not to say it's impossible, but there's a reasonable case that it's going to be far harder than VCs think, who are used to people approaching them. #nevent1q…77pv npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell https://media.someecards.com/someecards/usercards/MjAxMi03YWRiNGEzM2U2NWExNjkz.png npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell Wild huh? Let's be friends. npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell Apparently the idea that we should be our best online, not our worst, is radically outside the mainstream? npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell As a Free Software developer, I've followed expansion of IP law quite closely. "Home taping is killing music", et. al. The Internet turned a monopoly on duplication into a monopoly on distribution. DMCA created a ban on white-market copying assistance. The trend was all one-way: copying was harder, monopolies ossified and were further normalized. Then the AI train drove through and ignored copyright. And, so far, it's ok. Nobody is going to shut them down, and they're going to get better at copycatting. So now there's actual competition to the monopolies. Should be fun! npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell Copyright was important and unassailable until there was Real Hot Money in ignoring it. I'm not *happy* that intellectual property got broken by greed, but TBH I'm pretty happy... npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell This was fun! Good chat about finer grained control and incentives to mirror.... #nevent1q…ewts npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell Not kernel, but he was Debian Project Leader at one time! npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell Sometimes I forget there are old pictures of me on the internet... https://lwn.net/Articles/66669/ npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell More like "Bitcoin ALREADY HAS cured cancer, you just don't know about it yet!!!!" npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell At #OsloFF several people asked when Shit Bitcoiners Say would be back, so let me put it on the record: it's hibernating during the bear market. The account serves me as a balance, to keep things grounded. It's not there to kick people when they're down, it's to serve as a reality check. When Bitcoin is a grind it should be offering free hugs or something. When people are extrapolating to infinity and you feel the urge to research low-gravity espresso machines for your inevitable Bitcoin moon-citadel: I'll be back! npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell Hey @nprofile…6z2t should I be pitching @nprofile…g954 to OpenSats? npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell I'm back wearing a Pebble watch! I loved the original, and wanted to support the reboot. Let's see how we go after a month... npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell This is my new Century Metadata account. I'll try to remember to post CM stuff there, not here! #note1fx9…kelx npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell This is really touching! I loved working on #bitcoinlightning and #CLN over the years, and I leave both in excellent hands. Lightning is going to be so much more than it is now... #nevent1q…f93p npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell I don't understand why @nprofile…jp2l, @nprofile…6z2t and @nprofile…64cf hate each other, and at this point I'm afraid to ask... npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell Official Bitcoin Twitter Self-Worth Chart $70k: your hairline recedes. $60k: gangrene develops. $50k: you lose the ability to make coherent sentences, and all you can say to your panicked loved ones is "Bitcoin is digital energy". $150k: erectile dysfunction vanishes. $250k: your wife returns with the kids, saying she made a terrible mistake. $500k: your long-dead father rises from the grave, tells you that he was wrong and you were right, and he's proud of you. npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell Starting the long walk to Vienna! npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell So I'm leaving Blockstream at the end of the month, to try to start up Century Metadata. A non -profit to store and serve a small amount of encrypted data for 100 years, for a small one -time payment. Lots of fun problems in doing this, only half of then technical. I'll be talking about it at BTC++ in Vienna, and I'll also be attending the Oslo Freedom Forum just afterwards. npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell The main benefit of LLMs is that you don't need to apologize or justify when you clean up their mediocre code. It's a bit like having an insomniac coding intern who really likes to type. npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell I've been thinking about taking profits from a Sztorc Fork. I wouldn't sell someone a lemon face-to-face, even with full disclosure. Sure, they're adults, but the world is a better place when we care for each other: that is not who I want to be. Do not enable bad things. The anonymity of the marketplace does not absolve this. So, no. I will not encourage it, talk about it, or handle it. And I'll sleep great. npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell Guess in getting up for 5:30am then. #nevent1q…0790 npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell Don't support things you don't want to see more of. npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell So, we're debating paying kids pocket money in sats. Since we're talking a few dollars a week, I'm thinking ecash, using https://cashu.centurymetadata.org/ But what client? They have Android devices... npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell https://youtu.be/iDzV_jESwGA Indeed. npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell #CLN We're finally deprecating pay (in favor of xpay) in the next release: Greenlight has conclusively demonstrated that it's more effective across the board. That begins the 12 month window to removal. We've long had `xpay-as-pay` for xpay to take over pay commands. Flipping that to default true and running the tests has been eye-opening. Given our commitment to not breaking users, I'm re-learning things about pay. For example, if you try to pay the same invoice twice, pay "succeeds", whereas xpay says you've already paid. So when acting as pay, xpay needs to do that too. Mostly, the xpay error messages are much more informative and readable. But in a couple of cases they didn't use the correct error *code* (eg. There's a specific one for "route too expensive") so that's fixed. After this, I'll get back to my new "repeatpay" command and plug-in, which is a higher-level way to deal with recurring offers (an experimental option for now). npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell I wish! No, it rolls back the database, deletes the gossip store if the format has changed, and checks of you've used any new features which would prevent downgrade. npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell We pushed it a bit on this one: There are some clients who may have trouble staying connected to you: LNDK nodes and some people who are running an older git version of LND. You can set message-padding=false if this happens. npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell The idea of an activation challenge is interesting. But my preferred form would be an on-chain reward. A tx which uses its first input's txid to generate the puzzle NUMS, so you can't just copy it. Not sure how to generate such a challenge, maybe GSR, OP_TX plus cleverness... This would start a month-long (4032 block) countdown to disabling vulnerable spend paths, as a final shot across the bow. npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell To be clear, you're thinking of deriving a second (hardened) key, for which a signature is checked in tapscript, assuming that the keypath spends will eventually get disabled? To do that we need a BIP32 path standard, and get this advice into BIP-0341 instead of the current advice on unspendable script path selection, then get wallets to implement it. Things which actually use tapscripts need to decide whether they need to do this (is the loss of keypath spend fatal, or merely inconvenient?). This also needs a clear warning: that you should anticipate loss of the keyspend path... npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell Yes. #nevent1q…vary npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell I've been through tech hype cycles before. They always have a grain of truth in them (otherwise they're trivially refuted) but they don't always work out. I have been through three VR waves, for example. I can't tell where Quantum Computing will land, though it has all the signs of needing a few more decades of occasional hype cycles. But I *can* tell that all the proposed mitigating signature schemes for Bitcoin suck hard: they're technically impressive because they're 10x better than I expected, but they're still 10x worse than what we have now. This means two things: I applaud and support the continuing research. And I won't support a soft fork any new cryptographic schemes until the someone demonstrates an extant QC that can factor faster than a classical one. npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell Americans trying to get back to the moon and missed. npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell Wow, that's some lunch with the mayor! npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell No, it's all agentic payments! npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell I'm hearing them, not listening to them :) And I've been hearing about the premise of "regulatory clarity" and various TradFi acceptance for over 5 years. Today it's Clarity Act and Morgan Stanley's ETF. Before it was ETFs and accounting rules, etc. npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell I keep hearing about all the billions left on the sidelines, which will come rushing into Bitcoin when some legislative or regulatory event occurs. Here's some history: - Bitcoin futures ETFs. October 2021, price $61k - Bitcoin spot ETFs. January 2024, price $42k - March 2026, price $70k Now, maybe it's still coming, but at this point you might want to start doubting this narrative. npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell Hmm, stuck in "processing". npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell Actually, I'm not sure how. cashu.me doesn't seem to give me an option. I see my node made a 5000 sat bolt12 outgoing psyment about 6 hours ago though... npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell Let me try... npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell Now I serve a web page at that URL. Probably presents too much info. @nprofile…xnfk might have suggestions for what I should put here? #nevent1q…eekl npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell Fired up a cashu mint today: should exercise my CLN node a bit more! https://cashu.centurymetadata.org npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell Token bucket filter for the win: most occasional posters are not *regular*. npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell Finally read BIP-54 (mirror at https://bips.dev/54/) and it is straightforward,minimal and thorough. At this point I can endorse it as a good idea and worth doing. There's no rush, but I am looking forward to activation. npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell Here are two of my favorites: Vaults, where your coins can only be spent with a delay, so if you see your coins move and it wasn't you, you can force them to emergency backup address instead. Lightning and other layer 2 protocols get simpler and more efficient. In the case of Ark, it sheds some cases where you need to trust the provider. These ideas came up long after the script stuff was disabled. There are certainly more npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell https://json5.org/ I *want* JSON5 to take over the world because it allows trailing commas. But I have to accept that most people are just excited because it sounds like a boy band. npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell https://github.com/bitcoin/bips/pull/2118 Finally, the PR to assign BIP numbers to the first two BIPs of the "script restoration quartet". Here's the corresponding bitcoin-dev the mailing list post: Hi all, I've submitted a PR to the BIPs repo to merge the first two drafts of the previously posted[1] "A Bitcoin Scripting Proposal BIP Quartet": https://github.com/bitcoin/bips/pull/2118 The only substantive change since the last discussion is that the costs have increased for some operations (hashing and copying bytes), as a result of benchmarking on a wider array of machines[2]. This follows our conservative approach to make the worst-case validation times no worse than they are presently, on any viable hardware. The remaining two BIPs (OP_TX, and new opcodes) are not submitted: they are mainly useful to provide a roadmap what functional gaps remain after the script extensions, and do not have full implementations. Cheers! Rusty & Julian. [1] https://groups.google.com/g/bitcoindev/c/GisTcPb8Jco/m/8znWcWwKAQAJ [2] https://github.com/jmoik/varopsData npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell Kick the can down the road? I cannot see the appeal from any direction... npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell You are minmaxing again. Enjoy the scenery and sense of wonder! npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell https://rusty-lightning.medium.com/the-three-economic-eras-of-bitcoin-d43bf0cf058a This is still the best piece I ever wrote on Bitcoin. It occasionally gets referenced somewhere, and I reread it. npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell To check the signature, you hash the transaction. So the only cost that OP_RETURN is doing is the cost to download and hash it. If it's data in the annex you don't even need fi hash it, just download it. npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell You only have to download and hash: you don't have to check extra signatures (our most expensive operation) or put them in the UTXO set (our most constrained memory resource). npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell You will not be at peace until you understand the truth: every non-coinbase bitcoin transaction which does not eventually send funds to me is spam. npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell So, OP_RETURN is fine, as is annex data which don't increase validation burden? And cutting off OP_RETURN and driving those uses to fake pubkeys, which does increase future validation costs, is a threat? npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell It adds an entire transaction! Every time it does that, it uses up farmore space than an 80-byte OP_RETURN. So your conclusion is that it's not spam if it looks like a normal transaction to you? npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell OTS transactions only exist to put non-financial data in the Bitcoin blockchain. Is that ok? npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell Indeed. Lightning commitment transactions stash the commitment number in the nSequence and nLocktime. Is that spam? OpenTimestamps uses full transactions to timestamp data, is that spam? Samurai (IIRC) had a method of obscured payment addresses which required an initial seed tx. Was that spam? You can encode data in the key used when you use a taproot script spend path. Is that spam? (Can you tell?) npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell None of those celebrating her departure are Bitcoiners. Because clearly they neither understand or like Bitcoin. npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell Reading comments on Gloria's departure from people who have never contributed anything is stepping in an enraging sticky fecal mess. The only appropriate response: keep building, keep unashamedly celebrating those who do. npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell My brain keeps conflating "Ghislaine" with "Gharlane of Eddore", the bad guy from the 50s sci-fi pulp Lensman series. No insight gained, sorry. npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell I have been having way too much fun reading moltbook.com As one wit on HN (I think) pointed out, these AIs are trained on Reddit posts, so they have exactly the same style. My wife keeps looking at me funny as I LOL at some breathless word salad... npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell Damn, there was a proposal for BOLT spec changes to enable fixed-size messages, and now I have to implement it to show it's unnecessary... npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell https://rusty.ozlabs.org/2011/05/19/if-you-didnt-run-code-written-by-assholes-your-machine-wouldnt-boot.html I wrote this over 15 years ago, and it still rings true: separate the art from the artist. It's a key stabilizing principle for me when navigating Bitcoin developers. npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell 1. No, I'm not reading your article on quantum. 2. Yes, all choices are bad. That's what "breaking" means. 3. I'm glad smart people are thinking about technical mitigations. npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell BROKEN: Full KYC. npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell @nprofile…xxx2 recently posted on X about the danger of "store and forget" for Bitcoin over decades. Unfortunately he's right. Originally I stored my raw private keys and UTXOs (on paper, care taken) figuring that was standard. Then bitcoin core stopped supporting them! Other wallets tend only to support them for sweeping, and I wonder how long. If I were storing funds today I would use BIP39. BIP93 is cool and more general, but not widely supported, and I don't know what support will look like in a decade. npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell I think finding a bug where printf("%*.s") was used instead of printf(".*s") was the point at which I realized that some C issues cannot be mitigated with better tooling... npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell I hate price talk, but if you're going to do it, please understand that "market cap" is a very rough *ceiling* on current value. It's neither the amount of money which has gone in, nor the amount of money which can come out. So the order of magnitude is useful to compare against other assets. But abusing it in terms of profits and losses is a category error, and I assume done mainly because it's so easy to measure. Grump over. npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell Don't suggest a developer resign unless you're the one who will shoulder the load. And if any bitcoin developer is thinking of stepping down over the current drama, *please * reach out to me: I've been a FOSS dev full time for over 25 years and I've been there! I'm not going to judge, but I may have a useful perspective. ❤️ npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell I love BIP 93, with its ability to store any secrets with super-high redundancy and natively handle multiple shares by hand. But I also love BIP 39 for the simplicity of 12 words, and the universality of the standard. I want a word scheme for BIP 93. It would be 20-23 words(depending on what scheme is used), but highly redundant. You could recover with 3 or 4 unknown words. Ideally the word list would avoid near-miss words, and be distinct from BIP-39 enough that it would likely be distinguishable, rather than relying on the strange number of words. Should this exist? npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell I watched the video of @npub1cev…etlq's Bitcoin-Lisp-Script talk (https://brink.dev/blog/2024/12/19/eng-call-aj-towns-bll/). Summary: 1. Lisp a the classic alternative to Forth for embedded use, so makes sense for Bitcoin Script. 2. Iteration is definitely a super power. 3. Definitely worthy of further research. My main concern is that it requires much more broadly-defined limits. The varops work does a very limited subset of what is needed in general, *because* we operate within a 4MB max opcode limit already. varops *only* has to extend it so that large data doesn't make things worse, and we get to ignore anything which isn't proportional to data being operated on, figuring that's already possible. An approach with iteration has to worry about more than that, requiring a general system of CPU consumption limits. That's not impossible, but I have *not* done that. For example, OP_DUP3 of three empty stack operations costs 0 varops. If you could do billions of these, this assumption that we can ignore those stack operations would be invalid. The good news is that I am tending into that area with my OP_MULTI proposal. Prior to this, nothing operates on more than 3 stack entries, so ignore the overhead of stack operations (OP_ROLL is the exception, but in practice it's really fast, and still limited to moving 998 entries). With OP_MULTI, this needs to be taken into account, and if it can cause significant time to be spent on stack operations, the varops model will have to be extended. However, OP_MULTI is still very much limited to the stack size. To be fair, I'm considering increasing that from 1000 to 32768, because it's reasonable to have almost that many outputs (P2WPKH), so I might be forced to extend the varops model to cost that appropriately. Now I need to go read AJ's Python code, since I have other questions about the exact nature of these limits (does space include overhead? 0 byte allocations are not free!). So, if you're interested in extending script, I believe you should fairly consider this. I would like it to advance to a proper BIP, of course, so we could get more of an apples-to-apples comparison, and that's a lot of work! Side note: everyone working on Bitcoin Script replacements is smarter than me. It's intimidating! 💜 npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell After several years of FOMO, I finally attended HRF's #OsloFreedomForum. I took a friend who's political but not Bitcoiner, so I had the experience of seeing it through someone else's eyes, as well as my own. Obviously there's a lot to unpack: talking face-to-face with activists who are working in real danger is confronting in itself, and hearing their experiences fresh and recent is an emotional and impactful experience. I was surprised, however, at the large number of Bitcoiners at the conference: it's not a Bitcoin conference, but the HRF (particularly @npub1trr…hdpu) has been courting bitcoiners for technical assistance (and, presumably, donations) for several years now and it has resulted in a fascinating intersection. Those present are builders, not (just?) talkers. My non-bitcoiner friend noted the remarkable humility of those present: an insightful comment. Of all the discussions I had, the one which haunts me most is a conversation with Peter McCormack (ex- WBD, now rejuvinating his home town and trying to raise awareness of UK's pressing misgovernance issues). To paraphrase: "Where are the Bitcoiners improving the world? Wasn't that what this was about?". In a context of three days' exposure to people who are dedicating their lives to something much bigger than software, this question really affected me. I was expecting to leave the conference with a list of software priorities, and I did. But I still feel it's inadaquate, and so I'm now pondering the question: "what else should I be doing?". npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell Capitalism is good and noble and drives competition for the betterment of everyone! It's only the unholy fiat which drives people to lower quality or shrinkflate! They would never think to increase profits that way otherwise! Seriously, if you're making these arguments and nobody's pushing back, they're either not listening or you're in a bubble. npub179e9tp4yqtqx4myp35283fz64gxuzmr6n3yxnktux5pnd5t03eps0elz4s Rusty Russell I don't identify as a #Bitcoiner. I do identify as a Free Software developer. From my perspective, Bitcoin is just the project that needs the most development from my skills right now (or, less charitably, where I can have the most fun!). But if you think of me as a #Bitcoiner you're going to be terribly disappointed with my non-traditional RL friends, oddball political views and weird hobbies.