You are reading content from Scuttlebutt
@mix.exe %4rYUo+HsLjz6vrfYS7jzJuAZ+0FiS31KWoNa+Nb3GYE=.sha256

DM a private group

Hey all, Cherese and I have been working on extending the private group spec so that people outside a group can DM with a group. We want this for #ahau for implementing kaitiaki (guardian) only subgroups within a group... but that's a different spec.

Anyway, we did a first pass on drafting a spec here: https://github.com/ssbc/private-group-spec/pull/13

Would love to get this reviewed by @keks (ideally, as they worked on this original spec) but also potentially other euro-butts who've been working in their neighbourhood recently - @cryptix @arj ?

cc @Mix Android @mix

@cryptix %7T+nCkgbel2Hj2sgT6F7z7dG2zgFOnHe/44GJeM6OWU=.sha256

Was a bit overloaded last week but will take a look later this one, i think wednesday-ish.

User has not chosen to be hosted publicly
@mix %/L69+K3KbDIYJsKkMLK65tfWibx1HvYmqSGd2CkpmSs=.sha256

After a call with @keks this has been deperated from groups and been generalised as a P.O. Box - a way you can leave a message for anyone(s). Really happy with how this is shaping up, and start into building it this coming week.

major block seems now to be deciding what the id for a P.O. Box is ...

e.g. $G98XybiXD/amO9S/UyBKnWTWZnSKYS3YVB/5osSRHvY=.pobox

Keks pointed out that the @ sigil is currently overloaded - we use it to reference signing keys, which happen to be associated with the idea of people (or a devie) AND which we use to derive DM keys (at the moment).

notice how many of the easy sigils from the number row are taken already? (en-us keyboard)

used   ! @ #   %   &
     ` 1 2 3 4 5 6 7 8 9 0 - =
free ~       $   ^   * ( ) _ +
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
@mix.exe %uvdsSUrhWctMm4xYJeX28bwYn8mNwFmgb7vbG3NDz4Y=.sha256

throw some examples of what it might look like to read / how long it is @andrestaltz📱

(‿|‿)

@nanomonkey wow
also nice idea using ineresting utf8 symbols

User has not chosen to be hosted publicly
@mix.exe %O5LlyHTLbeIpXbdUP/uuuMJWcSvQAfv+lm/p/H74XVY=.sha256

almost @gwil - I feel like this having settled into "post office box", that its no longer just private group. we also have groupIds already which identify a "workspace".
I do like the idea of shared vocab though. btw would be keen to catch up after mid August about p2p private groups learnings if that's of use to earthstar

@andrestaltz %tBQX34959XBv9YekuIHQ3EXNsTpADKZiWXBsfN9vArs=.sha256

@mix.exe @Mix Android @mixmix

Because it's a message, it would start with ssb:message/ and then the next part just describes that it's a P.O. Box:

ssb:message/pobox/G98XybiXD_amO9S_UyBKnWTWZnSKYS3YVB_5osSRHvY=

Reminder: all the base64 / become URI-safe _ and + become -. For more info: https://github.com/ssb-ngi-pointer/ssb-uri-spec

@mix.exe %6/6H3hVV0RoIDAZYImaxtlZVESMm4F93Cmi0puhbVFM=.sha256

but it's not a message @andrestaltz @andrestaltz📱 !

it's just a key. Hey reading that spec, it looks A LOT like the TFK/ BFE spec, but in a more human readable form. cc @arj. What do you reckon about collapsing those spaces together/ bringing them into coherence?

so in BFE format this would be

ssb:diffie-hellman/curve25519/G98XybiXD_amO9S_UyBKnWTWZnSKYS3YVB_5osSRHvY=

https://github.com/ssb-ngi-pointer/ssb-binary-field-encodings-spec#diffie-hellman-formats
interstingly we have no name for the "format 0", I guess it's just the curve (are there any other curves for DH algorithm? ah, yes, we're using Elliptic Curve DH, which suggests there are other sorts of DH...)

.

Whitfield Diffie Martin Hellman
image.png image.png

here's the humyns who came up with this btw

@andrestaltz %uFleI6+/Hz5LcHTRnIWm76kPVPJo0rCYqTr+x9tDv9U=.sha256

Hey reading that spec, it looks A LOT like the TFK/ BFE spec, but in a more human readable form. cc @arj. What do you reckon about collapsing those spaces together/ bringing them into coherence?

Seems like some extra work, and I would like to avoid extra work, but I agree with the logic you're proposing, and it sounds like the best long-term strategy for SSB, to keep coherence. And we already started using SSB URIs in ssb-ngi-pointer (for rooms 2.0 at least). I didn't realize until now that we could be using ssb:feed/bendybutt-v1/<FEEDID> instead of @<FEEDID>.bbfeed-v1. That would solve a lot of other implementation quirks in my opinion.

ssb:diffie-hellman/curve25519/G98XybiXD_amO9S_UyBKnWTWZnSKYS3YVB_5osSRHvY=

I would recommend the following meta format: ssb:semantics/algorithm/key, so let's not use diffie-hellman as the semantics. Perhaps something like ssb:pobox/.......

User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
@Anders %Fv5WqFwsRnZObU/8n09zOZ5AXtE6SH1h0BAgEztKWKQ=.sha256

I think there are two things here:

  • Should we use URI's for never things and try to limit @, $ and & for the classic format. This thread I think is a good example of why what would be a good idea :) I would like that the libraries we use like ssb-ref hides away this complexity if we do go down that route.

  • How do we handle things that don't neatly fit into our message, feeds, blob world. Private groups, p.o. boxes and fusion identities come to mind. Right now a private group is a message type in TFK/BFE. What is a p.o. box even? It's not really an identity, it's more like a key pair. I was having a conversation today with keks where this came up and thinking about how we categorise them will help clarify and communicate what they are.

@mix.exe %mL3c4FtF7usNFp4bPbfxAgMyIOaUB4Oi79Vln3PgkbY=.sha256

Here's a short video of Diffie and Hellman talking - https://www.youtube.com/watch?v=w3JcMetfl00

@mix.exe %1VskDoInFMIdAsRcDSOvzzfhDopDWGCeUKjNS9xSOq8=.sha256

well summarised @arj!
I agree with the proposal - move towards URI. I think we should map map old @ & etc into the new format (but also still parse old format if needed)

I notice with the "how do we categorize group/ pobox" we have two ways of looking at it:

  1. what is the intent (is this the semantic)
  2. what are the mechanics of this

under those lenses pobox could be:

  1. a sign to use it as a specific direct-mesage like thing
  2. an indication of how to use the key

They're related but different, and sometimes there's virtue in not revealing the semantics. e.g. with a group_id that's actually just a "cloaked message id" type. You have to know from the context that it's a group_id that we're talking about.

I remember a similar argument (light) I had with @SoapDog about URI's - in my mind there are two sorts of uses from messageId's at the moment:

  • A. raw - this id is literally just a key pointing to an individual message
  • B. tangle id - this id is pointing to a message that is the root of a tangle and we use it to reference the reduced state of that tangle

I think it's important to be able to distinguish, so you can be clear with a person about what it is you want them to load when you give them a URI. e.g.

ssb:msg/sha256/G98XybiXD_amO9S_UyBKnWTWZnSKYS3YVB_5osSRHvY=z
ssb:gathering/sha256/G98XybiXD_amO9S_UyBKnWTWZnSKYS3YVB_5osSRHvY=z

This feels like URL versus URI or something to me

User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
@mix %FUqNYDESyPK/sSIkhFKQJ1yCLH46fsNJj5qn8mHewdM=.sha256
Voted ![IMG_2207.jpeg](&qgh0US/a8n1cgR4OgwhGOp/FXdxh+ix4iQ32H/RWnyk=.sha256) dif
@mix %dgqQT2vVhAA/9eVcoo2Oo3VdrBojZAOy66J1H56Plbk=.sha256

@Laatikainen he's so funny in that video. "when I first mey you, you were an itinerant cryptographer". Lol, sound like anyone you know?

@mix %l1O4prjswdwPmrrZJsI5H7sb/iAYb7UqApOhpJqSrac=.sha256

@andrestaltz📱 @andrestaltz📱 for me a feed is something which signs ... and identity is something you can talk to?
So maybe yes? However the fusion identity never signs anything itself, but you can DM with it.... hmmm

maybe there's a "type" which is "identity" (which is a construct above feeds). need to mull on that

User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
Join Scuttlebutt now