Proposing a New Project for the Creation of a New Protocol

Over at my github I've started a project to propose the creation of a protocol that makes peer-to-peer human addressable by adding a domain name layer. Anybody who has spent any time at all playing with Manyverse or Birdy would have come across the long strings of giberish that are core to your ID on the network - the encrypted hash ID. Right up front, this is just such an exclusionary way of creating connections. It's like doing IRC with everchanging IP numbers, except IP nambers are broken up with punctuation that makes them easier to read. Peer-to-Peer is currently at the literal stage of nerd-bois trying to impress nerd-grrls.

What the future might look like.

This from an aging nerd-boi whose net experience dates back to the 90s and begain coding in the 70s, first on a signetics 2650, then a PDP11-70 in high school, later having a succession of early micros, including a "trash80 coco", access to a BBC B+ lab at my technical college, before finally falling in love with the Mac. Nerding is an arse pain, even for nerds. GUIs rule, the domain name system and the web all make life easier. So, why not have a DNS for peer-to-peer? Because, at the moment, it's nerd-bois all the way down.

The DNS I'm proposing is not limited to having to register a name, either. That was back in the day when there were only a few billion possible IP numbers, based on 4 octets, and when even mainframes were slow and connections between them were slower. It's nerds all the way down, Mr Sagan. With peer-to-peer, the hash replaces IP numbers, but nobody's thought about how to make them human readable - a personal domain name system, that makes addressing your friends as easy as "userhandle.randomword.anotherrandomword.morewords" and you don't need to register this because there's unlikely ever going to be a clash in this proposed system.

Lets say what I see were to exist. I download my favourite peer-to-peer app, I create my profile, it automatically creates a domain name to go with my cryptohash. That domain is 3 to 6 randomly chosen words of 3 to 6 letters length, along with my handle, each word separated by a dot. Sound familiar? Of course it does, because it looks like this Easy to write, easy to read, easy to share with your friends. The unique hash ID assiciated with my account is still there in this world I'm imagineing, but we never see it, just like we never see our IP numbers.

Another problem with some peer-to-peer protocols, say secure scuttlebutt (SSB), the most common app for which is Manyverse, when you want to change devices, you get a whole new hash. Your profile on your phone is a different you to the profile on your laptop. There can literally be no commonality across devices. Old fashioned DNS looks at this and says, hold my beer. Nearly every website you visit is doing this. The same website running on many servers, so that no server overloads. Traffic management. So, why not have a protocol based, domain name layer over the hash? Then, each device has its own hash but, you add your random domain from your phone to the hash on your laptop, and the distributed hashtable sends you a 2FA code to the original device, you allow the domain share and the 2 devices load balance and synchronise.

Want to get lost? Change your domain and only tell the people you still want in your life. Nobody can find you by your hash in this type of system, so they can only find you by your domain and only if they know that. You can't be easily tracked, you can't be datamined and you can't be easily hacked because all of this interconnection is local first, shared only to trusted contacts and not held in a central registry, like the old DNS system.

I call this new DNS, PNS, the Personal Name System. And how your friends connect to your social network (and you to theirs) is by connecting to pttp://theirhandle.their.random.words/connect - they connect to pttp://, too. Does it look familiar? It should. Just like PNS is the personal domain system, personal text transfer protocol would work with web browsers and encapsulated apps alike.

This is what the app layer looks like, just like the web does in your browser, but underneath, a fork of the DNS (client server), called PNS (peer-to-peer) looks up your friend on the hash table and requests a download from their browser or app by connecting your has to their hash so that they can transfer their connect page to your browser or app, so you can both link up. Send the link in a text, write it down, spell it out over a voice call. It works like how you already work, just without the www. Who DubDubDubs their domain anymore?! Even Tim Berners-Lee admits it was redundant and silly - the connection on the old web is and the new web should simply fork what is proven to be human readable, pttp://handle.randomword1.randomword2.randomwordetc/ BRILLIANT!

Except it doesn't yet exist. Which is why I'm proposing it, and I'm not sure I have enough life in me left to learn enough to code it, which is why I've written the whitepaper at the link above... and here.

It gets better. The random words thing is because most tech adopters are a bit lazy and tech phobic. Lets look at it, though. If we choose Wicktionary as our standard word source, without boring you with the maths (I actually ran these numbers), the permutations of 500000 shorter English words from the 700000 listings on Wicktionary will give us so many permutations as to allow for 1.929 x 10^24 possible domain names PER PERSON! Per! Person! And if you accidentally chose the same words as somebody else, the hash still differentiates you. Besides, people still have overlapping names with generally little consternation about it.

I share the same IRL name (as well as primary musical instrument and beloved mode of transpor!) with a member of Weird Al Jankovich's entourage. I occasionally get people asking whether he is me. I point them in the right direction. That's out of 8 billion humans. I'm proposing 1.929 x 10^24 possible word combos per person. Plus your handle in the format, - overlap, my arse. And I'm not limiting it to English, I'm only chosing English to show how massively large the numbers are for a single language, let alone the entirety of human words.

It needs to be drafted as a protocol. Then as a scope so that infrastructure code can be written, then the infrastructure code can be written in all the system code languages, C++, Rust, even Javascript, at the app level, at least. I'm trying to interest the Gun.js team in the idea. No nibbles yet. They have a DHT/graphDB/infosec engine in javascript that only needs a human readable addressing layer. They also have a lot on their plate, right now. Small team, complex code, stamping out sparks as they go. I won't nag.

Remember what the accessibility and freeness of hotmail did for email? What the hosts of this site, Blogger, did for personal publishing? What DNS did for the internet? PNS and pttp could be the answer for peer-to-peer. Human readable addressing without having the entire world standing outside your front door, asking you for a key. Only the people you give the address to, and who know the code to your doorbell.


Popular posts from this blog

Because I'm That Kind of Crazy

Meanwhile, Developing a MIDI, Tap-Tempo, Master-Clock Pedal...

Crosspost of First Post From New Riding Blog, “Diary of an eConvert."