The #pubky team wrote a censorship-resistant chat system w/ privacy in one day. Works already on android, ios and the web. It's not perfect, but shows what is possible.
https://www.youtube.com/watch?v=Oa2O-u8lei4
The big difference between #pubky censorship-resistance and all others is that #pubkey is verifiable. It has a 15 year track record, millions of nodes, and simple, easy to run software, because it uses the existing proven bittorrent network. No other network is close to this, or will ever come close to this. Other claims of censorship-resistance are "trust, cant verify". #pubky is "verify, dont trust".
Imagine you could paste your npub into an app or browser, and it gives back a censorship-resistant domain, under your control, you choose where it lives. That's the idea behind #pubky. Every user, which is a pubkey, has complete control over their own domain, and no one can censor it.
It's very simple. It gives you a new key pair that can also be a censorship-resistant domain. But instead of 10s of relays, like with nostr, it reuses the 10+ million strong bittorrent network. Obvious once you see it, but nobody saw it for a long time. Now #pubkey has proved it's possible.
#pubky integration to nostr is a few lines of code. It gives users and developers access to 100s of networks, libraries, utilities and app. Read all the things you will be able to use
https://ianix.com/pub/ed25519-deployment.html
One way to get a #pubky address from a nostr privkey is
1. Go to : https://app.pkarr.org/?
2. Click on settings
3. Paste seed into app
4. Hit save
You now will have your own pubkey address and you will be able to set records in the censorship resistant (10 millon node) decentralized DNS
It also allows connection to 100+ different networks.
#pubky relays can also be an anti-spam vector. It takes a little bit of work (fraction of a sat) to create a pubky record from a nostr account. So that will prevent spinning up millions in one go. Relays can also begin to offer more stringent tests.
Good points, but I think you need also to SHOW that it's a open protocol. And be transparent. That is the only way to grow to a mid size protocol and bigger. A new user needs to be able to come to the protocol and see in a few clicks how it's goverened, who controls it, what the licenses are and what the evolution is. Developers will ask these questions. Ubuntu is a good example of doing this.
The lesser-spotted Based Jack
nostr:nevent1qvzqqqqqqypzpq35r7yzkm4te5460u00jz4djcw0qa90zku7739qn7wj4ralhe4zqy2hwumn8ghj7erfw36x7tnsw43z7un9d3shjqpqjerw660grjej5ptyvttx9v7mqrluqsfd5ghv0fnn0u7gz8u0dvmss2c0ax
If you build it into an open protocol and open eco system, in the same way Ubuntu did, with transparency and a good devX, developers will build things like this. Easier said than done, but worth it in the long run.
It depends if you want to be able to on-board and retain developers (without paying them large sums). This is hard, and doesnt happen by itself. Most FOSS projects dont make it. But put in the work and you will get results. Quite old now, but still probably one of the best works on the subject. Chapter 10 is on Governance. Agree matrix is poor, there are worse.
https://www.jonobacon.com/wp-content/uploads/2019/01/jonobacon-art_of_community_second_edition.pdf
In its early days nostr was a simple 2 page spec that worked. Develoeprs were attracted to it because they could go away in a weekend and build a relay or client. It has got way more complex over time. And what could come next (negentropy) is a complexity bomb that may shorten its runway. Pubky talk about a "complexity budget" and they are careful to manage that. It's a good approach, and learning lots of lessons. I really hope there is a project where devs can build on simple concepts in a permissionless environment, and let 1000 flowers bloom. It is much needed!
They looked at it, of course. John had a pretty convincing set of reasons. Ed25519 is far more widely deployed than taproot keypair. And you need that interface with bittorrent mainline. It's faster, works on low power devices, deterministic. Schnorr nonces can be lattice attacked too, potentially.
Good news is that you can have both. Sign a pubky field in your profile. Then put your nostr pubkey in your DNS record and you have a two way link. Think of it like NIP-05 for bittorrent mainline (20mm nodes).
This would give nostr clients that use this the full power of taproot and the full power of ed25519 (pubkey, git, tor, ssh, matrix, signal etc.). It's way better.
https://github.com/melvincarvalho/noskeyhttps://image.nostr.build/c2ca7ae71b18b1c271a7dedd77d0f1fbc7a5120bd3594d182f9e76fb4f667763.jpg
Have a look at pubky. They do base32 encoding without the very complicated, and never used, segwit checksum. Saves on code, bandwidth and complexity. This would be a better npub that would be not only uniquely determined but pass the test of indepenent invention:
https://www.w3.org/DesignIssues/Evolution.html
How could nostr use #pubky decentralized DNS?
Easy. Instread of connecting to the relay URL which is governed by DNS.
You can connect directly to the relay pubkey. If for some reason the relay DNS is taken down. It can move to another site, or a hidden service. Users are automatically updated.
To prevent this you would have to take down 20 million nodes all over the world (much harder than silencing a relay). And even then, 100s can pop up in minutes, using existing software installed on 100+ million computers.
That's just one use case. #pubky has 100s.
I believe #pubky are working on rotation as a first-class use case. Some good bits and some bad bits in NIP-41. I favour #subkeys right now. Let's see how it develops, though.
Key Arguments:
1. The web is losing badly on mobile devices, despite dominating desktop
- Mobile accounts for 75%+ of new devices that can run browsers
- Web usage on mobile is stagnating/declining as a percentage of total mobile time
- The situation is worse in growing markets where mobile-first adoption happened
2. For the web to succeed as a platform, it needs to:
- Be frictionless and fresh
- Be safe by default
- Remain portable and interoperable
- Stay free from gatekeepers
- Maintain user control through standards and extensions
3. Major obstacles identified:
- Poor performance of JS-heavy websites on mobile devices
- Gatekeepers (Apple, Google, Facebook) limiting browser competition and capabilities
- Developer practices that prioritize desktop over mobile performance
- Widespread adoption of JS-first approaches that perform poorly on phones
4. Potential solutions suggested:
- Return to more HTML-first development approaches
- Improve mobile web performance significantly
- Break open browser competition on mobile
- Focus on user experience over developer convenience
- Use more responsible frameworks that prioritize performance
5. The stakes are high:
- Without change, the web risks becoming a "legacy curio"
- The market for web developers could stop expanding
- The open, interoperable future of computing could be foreclosed
The article argues this isn't inevitable, but requires significant changes in how we build for the web and how mobile platforms treat browsers.
nostr:nevent1qvzqqqqqqypzphn7e50zja4x4ke0lf05mwq60kqjezakdx92qrw0rem2md27l4j9qy2hwumn8ghj7erfw36x7tnsw43z7un9d3shjqpqe5v9ad20mp6m75wzd3y38w7fjdvskmkcg552v4mevmlj8du4z7vqwer4e6
It's a two-step process. You can do one without the other. The more important part is the resolving, the less important part is the short name.
Think of it this way. It's like building a file system. Then adding sym links. The file system is the more complex part, the sym link is the easier part, after we have working file system (there is a solution here but I'm stickin to a single topic here).
It's not just DHT. DHT is for the censorship reistance. It's a home server, which is fully powerful and scalable remote storage with micro apps. The DNS part just does the resolving.
In fact names are easy to fix, the question is what if two keys want the same name, what tie breaker do you use. That's a good problem to solve, and it's the next part of the two-part process. #pubky isnt confusing the first step with the second, which I think is a good approach.
The naming part is actually easy once everything else is there.
You just start off by using your npub as name. The resolver is the powerful thing. Then there are so many paths.
Nomen was going to be the great solution based in bitcoin, but fiatjaf and semisol wanted to kill it, and so it died.
What you need simply is a fair naming system that is a level playing field and with a wide eco system to ensure a small clique doesnt grab the good domains.
namecoin got rekt and it didnt allow transfers, which was a glaring mistake. ENS is very scammy and they raised the prices massively. the fact that there is a "they" is also a problem.
The only solution to this is naming on bitcoin which is pretty a pretty much solved at this point, you would use an OP_RETURN UTXO runes or a soft-fork of runes with an OP_RETURN flag. But let's see how it evolves. Have a look at resource oriented computing on wiki for a more in-depth explanation. But, the npub resolver alone is huge because it gives you decetralized domains and also SSH keys for free, which is a massive upgrade.
https://stacker.news/items/256435
one last point is that it works out-of-the-box with nostr (and could/should with alby too)
click on settings -> paste seed, and it will generate you a pubky address from your nostr privkey
its actually an ed25519 key z32 encoded, which allows you to use, ssh, git, matrix, signal, gpg, hypercor, Tor, wireguard and much more, out of the box -- something we probably should have done on day 1
With #pubky your npub can store censorship resistant files. Can host 100 censorship resistant micro app. One home server goes down, you can switch to a mirror, and put it live in seconds without disruptions. 10 million servers on the bit torrent network provide censorship resistance, and anyone can easily run a torrent client. This added to nostr will be next level ...
They are called home servers. Anyone can run one. You can run one in many mirrors. Think of them like relays but with full storage. In fact every relay can be a home server too.
relays are web servers, with the storage turned off
flick a switch and you can turn storage back on
you shouldnt store things in the RELAY, because it was just designed for text strings aka notes
but all web servers have the ability to store stuff, that is, in fact their primary purpose
a relay is a web server, with an extra function, namely realtime updates
tl;dr web servers can do many things, they can store files, they can relay notes. But dont use the relay notes part to store files. Use the built in file storage part to do that. That could be a home server. And then you can route to it via your npub. But homeservers can live anywhere, they dont need to be a relay. And perhaps it's too confusing for most people to run both.
Censorship resistant DNS might be the solution we never knew we needed.
TIL: #pubky also does decentralized storage. From chat:
"You can still have your data in 10 redundant homeservers in many jurisdictions. If the one you are pointing to in Pkarr goes down, you update the record to the next one."
It looks like #pubky are building a new app every day. Reminds me a bit of the golden days of nostr c. 18 months ago where nostr report were reporting new apps on a daily basis. Impressive stuff, but can they keep it up? Let's see...
"Why didnt anyone think of that before?".
Was the first thing I thought when I read through #pubkey. Reusing the 10 million node bittorrent network is genius and already provably censorship resistant for 15 years.
You dont have to build up your own network of relays because millions of people run bittorrent already. You dont need special hardware because there are so many bittorrent clients.
Censorship resitance is a reality and anyone can run a node. That's not to say the nostr relay network isnt useful, it is very useful. But reusing bittorrent just takes things to a new level.
I used to think so. And I like the desktop client, though qbittorrent i prefer. But are there any actual web clients for it, that are useful? instant.io seemd a bit unmiantained.
It mostly doesnt work. But there is one that does with a track record. Namely bittorrent. And #pubky worked out a way to use it for more than just torrents. That is good thinking.
This is how you on-board a billion users
nostr:nevent1qvzqqqqqqypzphn7e50zja4x4ke0lf05mwq60kqjezakdx92qrw0rem2md27l4j9qy2hwumn8ghj7erfw36x7tnsw43z7un9d3shjqpqmp8an6gzuuhjht0my5ungya8amc5u70xfaxa068kw9ymyf9jvjvq7ap7gr
#pubky is starting to blow my mind. It has one slight weakness, that could be turned into a huge strength. And that is that you have to republish your DNS every 4 hours. But anyone can publish it for you. So a market could emerge to publish the record. Anything that is an always on server could earn some side income for a simple request, they could do it on repeat for a month. You would end up paying a fraction of an msat. We will move to micro satoshis. But you can even submit this on a phone. So any mobile anywhere in the world can earn some side income. The scope and scale of this is incredible, we will be competing for micro satoshis with bots and billions of phones in a competitive market. It may even turn into a game.
Main issue was that fiatjaf and semisol were against it. So it had no real chance. For a project to be successful you need everything to go right. And with powerful people against you, it is likely to not a productive use of time.
To bring it back you would need to write and put online the indexer. However the schema that is used to create the rules needs to be managed responsibility by someone who has the time. That's another challenge.
What's good about #pubky is that its already a working system with millions of nodes. So hard for it to fail. There would need to be a tie-breaker system that ties names to pubkeys. There's emerged new ecosystems for that now, namely runes, or my soft-fork #glyphs. For me it just needs to be fair.
One thing that will always be needed is pubkey.nostr as a domain. Because only one privkey controls, or can control, that record then getting a DNS doesnt matter too much where you get it from. Pubky are making proper eco system for this including 10 million Mainline nodes, so it truly is censorship resistant, rather than the small nostr public relay network. See also
https://dnstr.org/
Main problem is that it's hard to get anything at all through nostr right now. So it's a dead end for most innovation. Attaching names to a pubkey is a two step process because more than one one pubky can claim a short name, you need a tie-breaker. But it's no good some small tie-breaker system that no one has heard of. For it to be fair it has to be well publicized and a level playing field, with some cost to getting names. Running a node and an indexer is one step (tho no one has done that right now) plus getting a good domain, then you have to publicize it, and then you need to ensure the rules are fair and stable. It becomes such a huge task, and with people against it, very little chance of success.
As other solutions have emerged from other eco systems, it seems the path of least resistance to use them rather than to do it all yourself in an adversarial env.
Hot take on the #pubky protocol. Bits I like, bits I dont like, bits that involve trade-offs. Overall better than I expected. A pubky is basically an npub without a prefix and checksum. The enromously complicated npub checksum afaik is never used and its the "wrong" checksum (segwit vs taproot). Something nostr might be able to learn from. This is one reason why I'm glad there are different innovations in the space. Also nostr and pubky can be easily integrated. Would offer a lot new use cases. And I also like John, who has been often a voice of reason in the community. At this point, I wish them luck.
Notes by melvincarvalho | export