Fabio Bonfiglio's avatar
Fabio Bonfiglio
fabio.bonfiglio@fbo.network
npub1d8y4...nv5a
Code. Privacy. Automation. DAOs. Founder of FBO Developments Sàrl. Building stuff. 🪪🏴‍☠️🏳️‍🌈🇨🇭🇮🇹⛵🌍
<rant> :beta-male: I think that what’s referred to as ‘vibe-coded slop’ when talking about poor implementations is a bit of a cop-out. I remember very clearly that my Amiga 500, back in the late 1980s, displayed animations (look up “demoscene”) with hundreds of sprites running at 50 frames per second. So in 2026, when I see a website with a background image displaying a measly 12 pixels that struggle to reach 10 frames per second for their animation and which take up 30 per cent of my laptop’s processing power (12 logical cores), I don’t think it’s AI that’s to blame.
New release for CustID ! :ultratada: NIP-55 is finally supported, and numerous improvements have been made to the UX and reliability. The aim of becoming a leading vault and identity management application, whilst developing the SISTR protocol, is becoming a little more tangible ! Please share, and most importantly, try it ! View article → #custid #sistr #nostr #sovereign #did
Fabio Bonfiglio's avatar
Fabio Bonfiglio 2 months ago
Next release coming together nicely. It should be on the Zapstore in a few hours. 🤞 image
Fabio Bonfiglio's avatar
Fabio Bonfiglio 3 months ago
Governments are rolling out national e-ID almost everywhere: the EUDI Wallet across all 27 EU states (2026-27), Switzerland's e-ID (swiyu), Denmark's AltID already live, France, Germany, Belgium, Estonia, Slovakia → in the pipeline. Those wallets can genuinely work, and your key can even sit on your device. But your *recognized* identity is still issued, attested and revocable by an authority. It can be suspended, expire, or simply never be issued. That's not sovereignty. SISTR builds the opposite: an identity that simply *is* your key, on Nostr, existing by construction, no issuer, no registry, nothing to revoke. Plus the protocols for Web-of-Trust certification & validation schemes, and zero-knowledge proofs to prove facts without disclosing who you are. Bitcoin solves the money problem. In the same way, the era of "one entity decides whether your identity is valid" MUST end. #did #nostr #sistr #sovereign
Fabio Bonfiglio's avatar
Fabio Bonfiglio 3 months ago
Following this week’s sad Coldcard incident, I’ve seen several people asking whether the same problem could arise when generating an nsec. The short answer is that the issue of entropy is VERY important for ANY generation of a new private key of any sort. In CustID, when the user generates a new identity, the exact process is as follows: - The native Android class `java.security.SecureRandom` is used. It draws from `/dev/urandom` and the Linux kernel’s hardware entropy. - 32 random bytes are generated via `rng.nextBytes(ByteArray(32))`. - The validity of the secp256k1 scalar is then verified using `Secp256k1.secKeyVerify(candidate)` (from `libsecp256k1` via ACINQ’s `secp256k1-kmp-jni-android` library) - Retry loop (max 8) in the astronomically unlikely event that the 32 bytes fall outside the valid range, with invalid candidates set to zero (`candidate.fill(0)`) - The first valid candidate is then stored using `KeyStorage.store()` (encrypted with AES-256GCM), and the public key is derived using `SchnorrSigner.getPublicKey()` On virtually all recent Android SoCs (up to 4–5 years old), `/dev/urandom` is sourced from: - Hardware clocks - The SoC’s TRNG (True Random Number Generator, using various sources like RF noise, etc) - And for low-end or older SoCs that do not have a TRNG, the entropy comes from scheduler jitter, interrupt timing and I/O hw responses, which remains cryptographically adequate, except perhaps immediately after power-on. View article → However, Coldcard’s experience shows that it is important to have a mechanism for verifying entropy quality that is as thorough as possible. That is why we are working on adding a TRNG detection and multi-source mixing mechanism that will be included in a release in the coming weeks. #SISTR #CustID #did #sovereign
↑