The open source 🄯 server management software for the future.

Self-hosted
Joined January 2023
To those responsible for the theft of bitcoin from the Liquid Network: Blockstream will not pay a ransom for the return of stolen funds. Taking assets without authorization and withholding their return is a crime, not responsible disclosure. It is not white-hat activity. It is theft. We have engaged in good faith in an effort to secure the return of stolen user funds and protect the broader Bitcoin community. That effort should not be mistaken for acceptance of the actions taken nor of the terms being demanded. We will not be a party to the precedent that open-source software developed for the good of the Bitcoin community should subject its developers to paying a ransom that far exceeds their economic participation. Bitcoin is hard money and can’t be minted without costs, Bitcoin doesn’t haircut users to pay a ransom. To the Bitcoin community: We are fighting for what we believe in, for the users whose funds were taken, and for the principles on which Bitcoin was built. The community has demonstrated incredible resolve with teams of people dedicating their time in support of each other to identify and patch vulnerabilities in each other's products and systems. We are all driven by the mission that Bitcoin is the single best asset, for every person, company, and institution on the planet to invest, use, and build on. The world is a different place with the advancements of AI, and the Bitcoin community has responded with force to combat that threat. Damage has been done, battles have been lost, but on the whole the Bitcoin community is gaining ground in the war with bad actors. We want to thank the community for those efforts, for your support in hardening the network, helping users recover funds, and for your support in our assertion that crime does not deserve rewards. To those holding the stolen bitcoin: There is still an opportunity to resolve this responsibly. The bitcoin can be returned and we can revert to the standard of white-hat principals. However, if the funds are not returned, we will pursue every lawful avenue available to us. We will work with law enforcement, exchanges, service providers, forensic specialists, and other relevant parties to trace and recover the assets and identify those responsible. More importantly, Bitcoin is transparent by design and the community is made up of the most sophisticated engineers, cryptographers, and white-hat hackers globally. Transactions do not disappear, and neither does the evidence they leave behind. We will not pay for the return of stolen property. We will not abandon our users. The Bitcoin community will not stop pursuing the funds. Return the bitcoin.
762
212
283
1,612
813,354
Brief notes on the liquid hack, followed by 3 open questions. Brief notes: Liquid has confidential transactions, which make use of range proofs to check transactions are valid without revealing the amounts bring sent. These are computationally expensive (relative to most other operations) so a range-proof caching optimisation was introduced ~7 years ago which was intended to avoid re-doing the same calculations unnecessarily. The cache checked - the range-proof bytes - the value commitment The issue appears to be that it didn't check - The asset type - The output script As a result is that a later output that reuses a prior outputs checked features can get a cached pass even when full verification would fail. It seems that the cache is not persistent, so a reboot of a node (possibly amongst other things) will wipe the cache. The error appears to have sat unexploited for 7 years, throughout numerous rewrites & modifications to the surrounding code by multiple people - no one individual bears responsibility for this and the mantra that many eyes make bugs shallow is hopium which must be rejected. Note: Fable5 in Github Copilot found this bug with a simple "spot anything erroneous with this?" prompt on the PR which introduced the caching. Open questions: 1. How did the exploit happen before the fix was widely deployed? It seems that the liquid team did spot and fix this bug prior to the exploit - The fix commit is dated Aug 3, - The PR to master was opened on Sept 1st However it's notable that there hasn't been a release/tag since the fix. Clearly the sideswap team weren't running a fixed build when this was exploited a week later. Given sideswap have the ability to peg-out it is surprising to me that they weren't informed, or if they were that they didn't update. Perhaps the magnitude of this exploit was not well understood when the PR was made introducing the fix publicly to master. 2. Why did Sideshift allow the huge peg-out? There was an assumption by many that the federation imposed restrictions on the peg-out's triggered by members of the federation - were those restrictions honored by Sideshift? Separately, why were there not sanity checks on the total amount per peg-out, and the daily total peg-outs? I think a major learning here is that sanity checking and manual review of large peg outouts would likely have avoided this, but the team may have their reasons for not wanting to be involved in that process whatsoever. 3. Why did liquid.network and blockstream's explorer diverge? It appears that the @liquidexplorer was not affected by the cache exploit - and rejected that transaction. Checking the monitoring page it seems the servers are running version 23.3.2 (released long before the fix was added to master). Was there some configuration which meant that this caching was not performed, or was regularly reset? I will dig into this area more to find out.
20
60
10
243
36,286
> Now, maintainers, who provide the application, suddenly want users to just trust them without being able to easily verify what changed in a release. This is in clear conflict with the "don't trust, verify" approach. +1 on this, reject black box binaries
4
5
20
2,747
Nirvati retweeted
We will try to publish an open source reconstruction of all changes in the latest closed source BTCPay server release later, unless BTCPayServer open sources their code before then.
1
1
171
One last thing: All the dubious characters who are thick as shit with nvk are now busy LARPing as researchers using clankers and claiming to be disclosing 1000s of vulns per day across the Bitcoin landscape, but they didn't find this nor tell you about it. Ask yourself why.
I did my own investigation because I obviously don't trust them. What I found is that the external dependency of the firmware with the critical vulnerability hidden in it was written by CoinKite's CTO @DocHex pretending to be someone else. All of the following can be verified:
8
44
2
197
21,116
If you find a security flaw, please follow the following steps in order: 1) Give details to upstream developers to develop or merge a fix 2) Notify downstream developers/distributors of the risk and how to patch it (not the details) so they can ship it ASAP 3) Give people at least a week to upgrade on their own 4) Notify the public that a vulnerability in the old version exists (no details) 5) After you can reasonably hope everyone has updated (months or years later), publish details and/or proof-of-concept There may be circumstances (eg, active exploitation in the wild) that justify deviation from this, but generally, this is a good approach. However, starting with #5 is black-hat behaviour.
3
29
1
193
7,685
Nirvati retweeted
The Apple App Store rules are borderline illegal. This isn’t about security. It's not about malware. It's not about user experience. It’s about control. - Use Google login? You must add Apple login - Sell digital products? You must use Apple payments - Apple takes 30% of your revenue (this is frankly insane) - You can’t tell users about cheaper prices outside the app - You can’t use a different payment system like Bitcoin - Apple can reject your app with vague reasons (or bend over due to political pressure) - You can’t install apps outside their store (most regions) They own the platform. They compete with you on it. And you still have to pay them. Is this a monopoly or a mafia gang?
79
49
14
586
120,501
Take 1 minute to sign this fam
It would mean a lot if you would sign this petition calling on @realDonaldTrump to pardon me and Bill In 30 days we will report to prison. Unless the President steps in. Developers shouldn't be liable for the actions of bad actors using their software #freesamourai change.org/p/stand-up-for-fr…
4
32
146
14,104
Did you know, door manufacturers, after October 31, will no longer produce doors with locks, because locks on doors don't stop crime. I could explain but the way locks work is quite technical, you wouldn't get it. Instead, I'll get Shinobi to run Adam Hack's X account to explain to people how locks technically work (eDuCaTiON) to distract them from what's going on. There will also be debates and forums on spaces. If you don't like it, just use windows instead of doors, or build your own doors.
35
57
5
381
20,539
Running @getnirvati 🎈 💪
2
1
6
703
I was staying out of this particular drama, but it’s gotten too ugly to ignore. And here I’m not talking to the loud American political Bitcoin maxis; this is for everyone watching the chaos... I’m sorry. This isn’t the Bitcoin I fell in love with over a decade ago. The below is a very clear example of this growing attempt to twist and re-brand Bitcoin into a political weapon. Bitcoin is a global, politically neutral technology. These aren’t my values, nor those of my dear friends in the Bitcoin community, the events I organize, or the businesses I run and support. Please don’t think these hate-mongers represent all of us. I’m sorry this is happening.
109
27
7
317
42,137
If you want to help us build @getnirvati, we're now looking for translators: hosted.weblate.org/projects/…
1
5
1
10
2,164
We're currently experimenting with design changes for Citadel 0.4.0 (Based on @getnirvati). What do you think?
5
4
30
1,829
The Citadel & @getnirvati Matrix chat is now available at matrix.to/#/#nirvati:nirvati…. It works with any Matrix client that supports Spaces (Element, FluffyChat, Cinny, Commet, Nheko, SchildiChat, NeoChat, iamb).
1
6
1
13
3,005
It's finally here: The first tech preview of @getnirvati. It's still in preview, and it requires at least two disks on your device (One with the OS and an ideally larger one for data). We will launch support for one-disk devices and Raspberry Pi soon. get.nirvati.org/
3
12
25
2,852
Citadel 0.3.0 is finished now. We're delaying the release a bit to announce some other stuff at the same time, so stay tuned for the public release. 0.3.0 is what Citadel should always have been like, and we hope you enjoy this release and what's coming next with @getnirvati.
6
18
1
75
4,866
We've just released Citadel v0.2.6 and v0.2.7 (0.2.7 is just a test of the update system). We've mostly focused on bug fixes in this release, and made some UI improvements to make the user experience a lot better. Work on @getnirvati is still ongoing and we hope to release that
4
5
1
42
4,419
I apologize for the recent reduction in update speed. We're working on the future of self-hosting at @getnirvati, and the development has taken a while. But we're soon ready to publish another preview build, and users on Citadel 0.2.x will also get another update to 0.3.0 soon:
4
4
25
1,626