[erlang-questions] every process should have a URL

Jesper Louis Andersen <>
Tue Sep 20 11:56:23 CEST 2016


On Fri, Sep 16, 2016 at 9:16 AM, Joe Armstrong <> wrote:

> What would a Pid look like - a
> {HostIP,PortNumber,NodeName,LocalPidinNode} tuple?
>

The problem with this is that HostIP, PortNumber and NodeName are mobile.
They change their location over time as the machine is moved around and
roam. In the modern network, this is a common thing to happen, so one has
to handle this.

Another problem is that there is no way to authenticate.

I propose that a Node is identified by Curve25519 Public Key. Thus, an
identity is

{Curve25519PK, LocalPid}

Dissemination of the PK is done either over a DHT (Kademlia, ...) which
maps the PK to {IP, Port} pairs. Or it is using a P2P mesh network such as
Secure Scuttlebutt. Once connected, you exchange messages in a mode of
authentication, where you force a handshake, and verify that the other end
is indeed the owner of the secret key behind the public key. This thwarts
MITM attacks. Furthermore, if you use something such a CurveTun, you also
get the advantage the connection has perfect forward secrecy.

Given:

* enacl
* dht
* curve_tun

We have the parts for the DHT solution already. For the Secure ScuttleButt
(ssb) solution, we have to write some code, but OTOH, we then also get
access to a open mesh facebook social media network :) I may be writing an
OCaml backend for the ssb network :)

-- 
J.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20160920/19ac5ed3/attachment.html>


More information about the erlang-questions mailing list