Last Notes
I took a look and decided that I don't want to generate the quantum-proof key pairs on a networked machine. It looks like there is an offline path available in principle, but it seems like the key generation functionality is currently a bit entangled with the Nostr event signing functionality.
It would be nice if the key generation could be done airgapped, the unsigned Nostr event then transported to a networked device, and the event then be signed as usual (e.g. with nak or a browser extension).
I was facing a somewhat similar situation with Inkan and started using the following de-networked version of Tails for key pair generation. As a word of caution, this is just a working proof of concept and it has not been audited or anything like that, but it may be useful as a model:
https://gitlab.com/inkan_dev/inkan-offline-live
This is interesting. I think I may want to combine this with the Inkan key rotation / replacement system, which incidentally also records identity-defining declarations on-chain and provides similar OTS timestamping for all of a user's regular Nostr events.
I guess that, for quantum-proof key pairs to get associated with an Inkan identity, it's enough if the current signer key pair signs the quantum pubkeys. Through delegation, the quantum keys will then be automatically attributed to the master key that secures the Inkan identity, and can then be interpreted as a continuation of that master key.
Let me take a closer look at this, it seems to be a nice fit for getting Inkan identities prepared for a potential post-quantum scenario.
I'm assuming it's a bad movie? I was bored out of my mind by Oppenheimer.
observers are sceptical ...
"I understand, but you run into the same issue the moment your master key is compromised."
If you pay attention to the handling of the master key, it's quite unlikely that it will get compromised. You can create it on an airgapped system and then store multiple encrypted copies on, for example, 5 (or more) USB drives. You can store these USB drives in different secure locations, like a bank deposit box, a personal safe, or somewhere in your basement. You don't have to keep the master key close at hand since you will most likely never have to access it again after its creation (replacement of signing keys can be done using intermediary keys in the delegation chain, so you don't need to access the master key to perform signing key rotations).
"... intepertation complexity/demands."
The "interpretation complexity" can mostly be automated away. The Inkan client represents a prototype for how to do this. For the most part, the complexity has to be dealt with by the developer, not the end user. There is some residual complexity that the end user has to handle, mostly relating to the key creation and key replacement ceremonies. Basically, end users must learn to set aside 30 minutes to focus on the steps for key creation and replacement, and to use an airgapped device for that. This will feel like a huge bother and annoyance to people who are not used to it and where there is not yet social proof for the practice. But it is in itself easier to get used to than, say, driving a car, doing long division, or going to the gym.
When people complain about "complexity", one should distinguish "This looks like a headache to implement" from "This will be a headache to use". The first may be true to some extent, but it just reflects developer laziness ("I don't want to have to code this" is not really a convincing argument against a perfectly feasible protocol, and lots of commercially successful software implements far more complex methods). The headache-to-use point isn't actually true and it's being conflated with "I'm currently not accustomed to this and why should I be doing it when noone else is?" Again, I think the main challenge here is to get social proof for the practice and, and once that's been done, people will be less prone to confuse "I'm not currently used to this" with "This is difficult to use."
"... a president or something ..."
Nah, this feels like saying that only the clergy needs to learn how to read, what use could a peasant have for such skills. And this is much easier than reading.
"1: don't believe there will be one scheme that manages universal addoption. ... i deem 1 to be self-explanatory"
This isn't self-explanatory at all, in fact I think it's probably false. The reason it currently *feels* self-explanatory is, I think, again that there is not yet social proof for the practice. It's a bit like saying in the late 1970s that, at some point, there will be a personal computer in every home.
"... all (rigid formal) defenses like this that you implement turn against you and benefit the attacker the moment an attacker succeeds in penetrating them. If the running assumption is 'this master key is truth/my guiding star the moment there is appearent chaos', and that assumption is invalid, you just increased the problem."
I think it's preferable to put up better defenses rather than worse ones, especially if it's easy to do so. I wouldn't say that the master key is a "guiding star." But having a master key that you can expect with some confidence to keep over the long term may incentivize some people to invest more seriously in building online personas with large followings (e.g. 1 million followers) that attach to that key. The key will make these followers portable across the internet. Of course, there is still a risk of loss either due to compromise of the offline master key, or due to flaws in the implementation or in the underlying cryptographic algorithms. But this risk will be smaller than it is with the available alternatives, and that differential may persuade people that investing in an online persona is worth their time.
"If all you can do is extend what is ultimately the same problem ..."
It's not an extension of the same problem. The difference is that you can reasonably have *far* greater confidence in the integrity of a key that has never touched a networked computer. With proper precautions, you can have a very high degree of confidence that the device you used for key creation could not connect to the internet, and that the key you created has therefore not been leaked. You cannot, as a matter of principle, have any comparable amount of confidence that keys which sit "hot" on an internet-connected device have not been leaked. In other words, "ensuring that device X is properly airgapped and cannot connect to the internet" is a very different type of problem than "ensuring that key X, which sits hot on my laptop in a browser extension, doesn't get compromised." You have a great deal of control over the former, and relatively little control over the latter.
"... don't let me discourage you"
Can't be discouraged as long as the underlying math holds up. As long as there's asymmetric public key cryptography + blockchain timestamping, this type of permanent decentralized identity is far too intriguing as something that should be added to the internet's infrastructure. It sort of refocuses thinking about the internet, which is currently still conceptualized as a collection of "websites" on which users rent space and identity from platforms, to a collection of user identities that avail themselves at their own discretion of the communication infrastructure that the internet furnishes to them.
Strongly agree, with one important nuance / correction on this part:
"Same thing with the key stuff...do we have "house rotation" for the moment your house burns down?"
I need to point out here that a fully functioning key rotation / replacement scheme for Nostr currently exists. This is not an unsolved problem. It's fully implemented at Inkan and you can use it today. I've been using it for months.
The fact that people aren't looking at it or trying it out doesn't mean it doesn't exist. It exists and it works. See below.
#nevent1q…r4gy
#nevent1q…zyrs
Key rotation has been implemented through Inkan.
You can use it today if you like. See below.
#nevent1q…r4gy
#nevent1q…zyrs
Here is a blockchain-anchored identity that handles key rotation cleanly:
#nevent1q…r4gy
Apologies for the delay in responding, I'm still digesting this. I may not be technical enough to provide in-depth technical commentary on your device, but I'd definitely be interested in trying it out and getting a closer understanding of it when there's opportunity. As you know, I'm interested in offering an online identity that is secured by 100% airgapped credentials but can nonetheless be used for easy everyday authentication, and a signing device obviously fits into that picture.
As for Inkan, it's actually not EIP-712. There are three "inner" declarations that get signed ("Key X delegates signing authority to key Y", "Key X revokes it from key Y" and "Key X permanently invalidates itself"). Each declaration is signed with a plain secp256k1/ECDSA signature over a hash of the declaration, just a standard signed-message scheme the contract checks with ecrecover. Getting such a declaration recorded on-chain then takes a further normal Ethereum transaction that hands the signed declaration to the contract and pays the gas. So the identity signature and the on-chain-submission signature are distinct layers. There's also a sponsored payment mode, which adds an EIP-7702 transaction on top.
It still seems that the relevant signatures can maybe be handled by your device or something close to it. If you're interested in the details of what Inkan is signing, you could just download the source code of the Inkan Management Utiltiy here: https://www.inkan.cc/settings/inkan-management-utility. If you point your AI at the code, it can explain to you in detail what is getting signed and how.
That does sound pretty comfortable overall. I've never been beyond I think the sixth station, maybe I'll try this year.
You picked a hot day. How was the temperature?
I usually walked around shirtless all about Austin, with several T-shirts in my backpack in case I wanted to go to one of their refrigerator movie theaters.
We're talking about (i) Bitcoin for OTS timestamping of Nostr events, and (ii) Ethereum for recording declarations of delegation and revocation of signing authority.
Onboarding is indeed the hard part. Not much success so far, including within the Nostr community (which is a bit disappointing).
If you're feeling avant-gardish, there is a "Create a Toy Identity" button on the landing page at https://www.inkan.cc. It's very quick and the instructions at the end of the process include an option to send me the toy identity creation transaction (which does not include any privkeys or secrets) for sponsored payment of the Ethereum gas fees. These one-time gas fees typically run between $0.80 - $1.20 or so, and I'm happy to cover these for people who'd like to try it out.
Also, feel free to ask any questions -- always happy to chat about this.
明日と明後日、東京のWebX2026に参加する予定です。
参加される方、ブースを出される方がいれば、ぜひ声をかけてください。
Yes, pretty much.
You get a "master" key that stays offline in cold storage and never does any day-to-day signing. That's your real identity, and that's what your followers attach to. You also get a separate signing key that you actually post with.
When the master key is first created, it signs a statement delegating signing authority to the signing key. That statement is recorded on a blockchain. After that, any notes signed by the signing key get attributed to the master key by the Inkan client.
If the signing key ever leaks or gets lost, the master key can sign another statement (also recorded on-chain) that revokes the old signing key and re-delegates to a new one. Your identity, i.e. the master key, and the followers attached to it never change. The only thing that changes is the signing key underneath.
It's actually even a bit more powerful than that, since you can create *chains* of delegations from the master key down to the signing key. That means you don't even need the master key for revocations, an intermediary key in the chain can handle them. So after creating it and signing the initial delegation on an airgapped system, you can basically keep the master key in a safe deposit box or buried in your cellar and most likely never touch it again.
For a more detailed explanation, see below.
#nevent1q…4pj3
I suspect it's the same with senior developers. I'd recommend competing at the senior level.
That sounds ambitious if it's meant to be a step in the direction of making deepseek 4 run on your laptop. I've sometimes made ambitious claims myself, so I take care to never be entirely dismissive. Proof is in the pudding I guess.
Oh, our darling weirdo / mad prophet. I guess my concern is who will own the physical infrastructure. I gather it's expensive. A high degree of decentralization of control over that would be desirable. As a sort of political / society building project.
My main worry about AI is who will own the means of production.
It's not a bad time to revive that good old Marxian phrase.
Inkan separates your identity from your signing key.
If the signing key is leaked or lost, revoke it. Switch to a new one. Same identity. Same followers. New signing key.
The prototype is here:
https://www.inkan.cc
https://image.nostr.build/9ad72700d44765da63fa5e9b550ef801cc3f913ec1770bc726183736691632a4.jpg
Let me know any questions.
Not leaking anything "beyond proof" raises the question what's included in the "proof." You're right I should ask a chat bot about this, and that's precisely what I'll do.
I certainly can't trust it right now without knowing a lot more about it. In this case, I'm also interested in the conceptual question whether it's in principle possible to build something that allows you to prove that you're over 18 without revealing further info about you, and which is useful in practice. I'm having a hard time getting my mind around it.
It's a peculiar feature of this system that there is no way for anyone to ever identify the person who provided the proof that they are over 18.
Presumably you are doing the age verification to provide some service to someone. If you can't ever identify the person who provided the proof that they are over 18, how can you ever confirm that you are providing that service to them and not to someone else?
With regular IDs like a passport, you can always (if you kept a record of the ID) track down the person to whom the ID belongs and investigate whether the service was really provided to them.
Are these tokens issued without giving the EU the ability to know where they will be used?
So if I want to buy a cigarette, does the app issue a token proving that I'm over 18 without giving the EU the ability to determine at what tobacco store I'm using it?
I'm scrolling through the Q&As on the website you linked to, and am not yet seeing the answer.
So these attempts by governments to introduce online age verification requirements, are these going to use zero knowledge proofs?
Are they trying to sell this by floating the idea that you can prove your age while still remaining "anonymous" in some sense or another?
From what I'm reading, it seems that zk proofs won't really work to achieve this in any truly meaningful way. See for example this for a critique:
https://brave.com/blog/zkp-age-verification-limits/
Does anybody have any insights into what's going on here?
So these attempts by governments to introduce online age verification requirements, are these going to use zk proofs?
Are they trying to sell this by floating the idea that you can prove your age while still remaining "anonymous" in some sense or another?
From what I'm reading, it seems that zk proofs won't really work to achieve this in any truly meaningful way. See for example this for a critique:
https://brave.com/blog/zkp-age-verification-limits/
Does anybody have any insights into what's going on here?
Inkan separates your identity from your signing key.
If the signing key is leaked or lost, revoke it. Switch to a new one. Same identity. Same followers. New signing key.
The prototype is here:
https://www.inkan.cc
https://image.nostr.build/c66861c050b2d0c48fda601d5dc0e069d6188316f96b2f18b85a6e209704c223.jpg
Let me know any questions.
I'm here because of the cryptographic properties of the protocol. I'll keep using it until the underlying mathematical relations change.
Inkan separates your identity from your signing key.
If the signing key is leaked or lost, revoke it. Switch to a new one. Same identity. Same followers. New signing key.
The prototype is here:
https://www.inkan.cc/
https://image.nostr.build/3f69411c55a0b106612aaa09ecde2c96a2e9f370715330dfc7029202d3750bd3.jpg
Let me know any questions.
Inkan separates your identity from your signing key.
If the signing key is leaked or lost, revoke it. Switch to a new one. Same identity. Same followers. New signing key.
https://image.nostr.build/4d42b6131c39f3df1189264d887768b09a149a5dc2a6954de777a8e8f83c7f19.jpg
(Let me know any questions.)
Also yes, relays are needed. It's a protocol that facilitates the dissemination and discovery of digitally signed (and OTS-dated?!) content.
It actually spells naostbr.
Agree that NIP-1 is the thing. It's really just about using public key cryptography directly for authentication. I wish they wouldn't call it "Nostr."
It's more important than ever to spread the word that one can use public key cryptography to authenticate on the internet.
You can even have online identities whose keys are kept in cold storage. I've implemented a prototype for this at https://www.inkan.cc
For people who are concerned with this kind of legislation, I'd very much recommend taking a close look. It's very timely.
Inkanでは、アイデンティティと署名用キーを分けて扱えます。
署名用キーが漏れたり失われたりしても、そのキーを取り消して、新しいキーに切り替えられます。
アイデンティティとフォロワーはそのまま。
よろしければ、プロトタイプを少し覗いてみてください。
https://www.inkan.cc/
https://image.nostr.build/77f3ce9948ecab32f92716d64f79c8d4e703568a57f356d6ef20bff8997f6cd3.jpg
(質問があれば、ここで声をかけてください。)
That's not good.
Thanks for your client by the way. It's excellent. I'm using it as the base for Inkan.
Huh. Is there a possibility that this is country specific?
Just realized that I can use NIP-7 with Firefox on my cell phone. I had no idea.
InkanにNIP-46対応を追加しました。
Amberで試したところ、ちゃんと動いているみたいです。
これで、リモート署名を使いつつ、署名用キーが漏れたり失われたりした場合でも、新しいキーに切り替えられるようになります。
アイデンティティとフォロワーはそのまま。
The second variant reports a feature, not a bug, as they say.
They must offer something distinctive.
The fun is being able to sell *that* thing, not just anything.
I made a bootable live USB image that has the Inkan Management Utility pre-installed. This is meant to provide an airgapped environment for signing delegations and revocations of signing authority between key pairs, and for identity creation.
The OS is expected to be amnesic across reboots and networking is disabled. I added QR codes to conveniently transfer keys and signed declarations to an online system. You can also configure persistent storage to keep the keys that secure your identity right on that USB.
https://gitlab.com/inkan_dev/inkan-offline-live
I still look at NIPs for ideas, but I'm not overly concerned about conforming to them when it's not convenient. If I did I wouldn't get much work done. I do try to engage in protocol discussions but the experts are mostly not very responsive, which leaves one without proof that there is actual expertise there. If one community moves too slowly, I guess it may be better to divide one's time and talk to a different one, or just to focus on the product.
What makes vicious characters interesting is maybe the virtuous characteristics they need to have to be effective in the pursuit of their vices. Or maybe it's considering why their vicious goals seem good and worthy of pursuit to them.
Makes sense, still feels meaningful. Thanks for this service by the way, which I gather you're providing.
Then that's pretty meaningful and good news.
WebXというカンファレンスも13日から14日まで開催されるみたい。これはBlockchain Weekの一部なのかな?それとも別イベント?
https://webx-asia.com/ja/
#nevent1q…gu47