You are reading content from Scuttlebutt
@kieran %hxC/2/FPgNh+cAO699+cszkgkQax/blviZt/rmcaNEw=.sha256

Social Backups

harmony.jpeg

I've been sketching out a few ideas for using #ssb as an encrypted secret sharing mechanism, basically a social password backup mechanism which we've been trialing in #mmt through the coconut death roleplay.

Scoping out what this looks like has resulted in a few different ideas which, thanks to @Piet and @mix's great and well explained Scuttlepoll code and my own slow, long and protracted learning from the last few months, I have begun to sketch out some schema's which illustrate the workflow and validate the data.

There are a few key concepts, of which Invites & Responses could be really useful for other ssb features so I'm abstracting it into its own module.

1. Invites and Responses

This could be great for other future features in ssb. The concept already exists in @happy0's ssb-chess and when I realised I was going to use a similar pattern, it made sense to build it as an abstraction. Utilises root and branch to point back to a relevant start link.

Process is thus:

  • Already exists within a context, the root link, such as an event, a process, a group, a game, etc.
  • Alice sends Bob, Charlie, Dana, Eli and Fran an invite. Each receives an individual private message as recps.
  • Bob, Dana and Fran accept, Eli declines, and Charlie is a bit forgetful and misses the deadline. Each returns a response, a private message, so Alice knows the response.
  • Alice can now collate all consenting parties and initialize the process / event / group / game / etc.

2. Contract

  • Once sufficient responses have been returned, Alice collates all consenting parties and initializes a contract
  • The UI asks Alice for her secret, she enters it and selects a quorum of cosigners.
  • Can either be totally private (only she can see) or includes the recps so they know who each other are and the details of the agreement (e.g. how many required to reassemble the password).
  • the secret is not recorded in the database

3. Secrets

  • Creation of the contract triggers a 'sharding' of Alice's secret and Bob, Dana and Fran each receive an encrypted message which Alice (and everyone else) cannot read. Alice knows who the recipients are due to the contract but can't see the secrets. Alice knows her secret is safe once gossiped.

4. Retrieval

  • Haven't quite worked this out yet. Some or all of which may have to occur 'out-of-band', i.e. not within the framework.

Thoughts / suggestions and feedback on ssb code always helpful / useful :grinning:

#ssb-show-and-tell #ssb-learning

@dan %9t2AmybVfrt9+PygOipJP6COtTUy7igJt/SjNWkYnR8=.sha256

backlinks:

Socially Robust #interdependent Backups

How Facebook tries to do it

Have you got a bitcoin wallet preliminary discussions

Telescope and Microscope preliminary discussion

@Gordon %vmCWrMpTRDGge6kX3QGe4vPJj0A4FBoWzDzYyS1GpoI=.sha256

@Kieran I'm glad you built that abstraction =]. When michael (I can't actually find his name to @ him.. hmm :P) started building ssb-go (the game of Go in scuttlebutt), I realised I'd lost an opportunity to do the invite / invite accept portion of the ssb-chess protocol more abstractly and that if I had, he could've re-used it - so it's good to see someone else doing it :D.

The ssb-chess-db flume indexer ( https://github.com/happy0/ssb-chess-db / http://localhost:7718/%25yxHzioSeLkUq46%2FU4zgDGbf0ixrwIsmN%2FHwOESsq9Qg%3D.sha256 ) I built for finding games and their status could also have been build abstractly on top of it (perhaps with some customisation about message types / fields to look at to get the game status.)

I guess your use case for invite / invite accepted doesn't have any status beyond 'accepted / not accepted', but in chess / go there is 'win for white, win for black, draw', etc.

Anyway, this whole mmt project sounds cool :)

@mix %ZXt9yA6Jl779sEb916zSq7+mRQG2pibi8awklVlMr/A=.sha256

There are quite a few moving parts to this. I reckon it would make a sweet diagram that would be pretty easy to follow. I'm inspired by @angelica's sharding comic :

cryptocurrency.jpg

... I might do something similar but with more arrows showing the actions...

@mix.exe %TVZFq1+VeAh0F65WbwSFWCYYnSGn7eAJYg/H+E8C0NI=.sha256
.
shard_1.jpg
shard_2.jpg
shard_3.jpg
shard_4.jpg
shard_5.jpg
shard_6.jpg
shard_7.jpg
User has not chosen to be hosted publicly
@mix %NRrw5YNIAI9B2X6YOxypX+FpHI4V+ldVCX+BNfK5ZIE=.sha256

for those that I - @mix and @realMix - have made, I'll say CC-BY-SA.
If that feels off happy to discuss :)

You'll have to ask @angelica about hers (the original comic in yellow)

User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
@dan %Y8eJyPaQqQk+rRsJCEQ33xLMhACNegGIPa/mt8hkjC8=.sha256

@Angelica you have sparked a flurry of illustrations :grinning:

@mix 's drawings seem to be about sharding one's SSB secret...

Here is my first attempt to capture an assembly. I am going to borrow some of Mix's drawings rather than ham my own, where the step is the same... I am attempting to show that the main thing which is being backed-up / socially sharded is one's seed. This is distinct from one's ssb secret. One can have many seeds attached to ones ssb secret. An assembly is a gathering of people (with an ssb secret) using a unique seed to collectively created a new treasure chest.

In the following example 4 out of the 5 seeds are needed to move treasure out of the treasure chest. It is D's seed which is being sharded and distributed out amongst their social fabric.

1.jpeg

2.jpeg

3.jpeg

4.jpeg

User has not chosen to be hosted publicly
@dan %3L/7K+WxH60KIcLMczl7SB2/8C8M6EY2UUwXfgD7x/o=.sha256

@Angelica "Based off these comics can I reiterate it back and will you let me know if this is correct?"

Ok!

:seedling:
group connects, downloading personal seed sprouts from cosmic greenhouse (are they the same species or different plants?)

Here you can see a review of our original invocation ceremony where we followed these instructions: MMT: Let's create a bitcoin multisig wallet (async)

Reading those instructions will give you the exact steps that are followed :)

In a nutshell: each person generates a new seed, in this case from the #electrum cosmic greenhouse. They are the same species of seed - #bitcoin

Each of the cosignatories at the assembly of the treasure chest share a hash of their seed within eachother - in doing so they magic a new treasure chest. Depending on their magic spell they say together, will depend on how many of them need to agree before treasure can be moved OUT of the treasure chest (known as quorum - look for the pie chart pictures in the guide)

:point_down:
individual uses personal seed (backed by ssb identity) to grow organic crystal of intention that others in group agree to have a shard/custody/care of

Each person then wants to back up their seed in case they get hit in the head with a coconut and go unconcious (this would trap the treasure in the chest if they can put together enough slices of the pie (quorum).

:point_down:
individual breaks magic crystal into appropriate number of shards, gives to friends, now they all have individual puzzle pieces of the one perfect crystal.

So, each person asks their crew if they will hold a shard of their seed. If 6 friends agree, they I may copy my seed, do some magic on it to encode the copy into a crystal which I can split into 6 parts. I need to whisper some magic into the crystal shards to say what the quorum (remember this from the treasure chest creation - the multisig bitcoin wallet above?) is for these shards. e.g. 3 of 6. This means only 3 out of the 6 shards would be needed to be put together to regain full access to the copy of the seed. (here is an example using a different tool, but same ideas.

:seedling:
eh?

This brings us full circle! @Alanna
was then able to regrow the wallet after recover my cocnut unconcious copy!
@Dan Hassan This is ridiculous! wtf!!
Hahahaha this is SO incredible, it feels like a workshop spontaneously erupted and I am here for it!! you know you're a special bunch, yeah? :star:

@dan %2OOCZr/1tss2XLsvz41Hnk93/VSFAy2XrXMb/LcRT04=.sha256

@Angelica I should reiterate that my comic is a little different to @mix as mix was drawing a back up sharding of his ssb secret/key/seed and I am talking about a cosigner of a multisig wallet (treasure chest) backing up their seed...

Thank YOU for bringing illustrations to the table... everyone is now scribbling :grinning:

:star: :art: :panda_face: :bamboo:

@mix %MtDAvNPFMwFbqxzda6cllEIC7ngNKE8tzvrB7bY5ICs=.sha256

@Dan Hassan this is why I posted them as seperate iamges ! I did not expect it to happen so quickly though :smiley:

My comic series was meant to be any secret key you wanted to send out - this is my understanding of what @Kieran's proposed process looks like. What Dan has added is 2 more layers:

  • the ways in which we magically send communication + shards to friends (using private messages on ssb, which uses ssb keys)
  • where the secret you want to share out comes from in the particular case of a multi-signatory wallet. I dig this addition

I friggen love the seedling in the magic crystal.

mmmm ... I wonder if there's an image storytelling pattern in here. How fun would it be to use images to tell our stories and for them to be remixable. This is kinda like @mikey's cat butt proposal but different.

P.S. there's 12-24 hours to put in a proposal for this round of #ssbc-grants ... horcrux could be a good thing to fund IMO. We could use the funds to do building, or employ a designer, or do great user testing once we've built the prototype.... If people are keen it doesn't need to be that complicated. (note I'm not the decider this month)

@dan %6l5qijMJ6Zc6d5Hz9QweHYOQ0rWjklJmW64VIxvyTEw=.sha256

P.S. there's 12-24 hours to put in a proposal for this round of #ssbc-grants ... horcrux could be a good thing to fund IMO. We could use the funds to do building, or employ a designer, or do great user testing once we've built the prototype.... If people are keen it doesn't need to be that complicated. (note I'm not the decider this month)

@mix nice idea... I don't have capacity over next day or so... In the event we don't get a grant in this month I'd suggest we go for it next month for sure. We'll have more time to scope it that way too.

It would also be a nice follow up to the Illustration Experiment with @Angelica which I have proposed.

cc: @peg @Nikolai @Kieran @Alanna

@mix %c3ohMGTQO55bUR8/Q8PxyPbAtU3yRpuSS2wWrmJ3XTc=.sha256

agree, I think we could make a really strong pitch like. "We're covering the development costs, this will be funding and demonstrating FANTASTIC communication / interface design / user testing"

@dan %fFf0TT1qdek0kvJyc28doO1QYDj4SfB5qlKFd2CswNw=.sha256

agree, I think we could make a really strong pitch like. "We're covering the development costs, this will be funding and demonstrating FANTASTIC communication / interface design / user testing"

Agreed. I suspect that the flavor of a grant application will be informed by the next couple of experiments... It seems like it will also happen after our Retreat, so we could use the grant application as a focal point within the retreat (i.e. have it as a stream :) )

@dan %jcg7DRNCXzjempot/EhqFZi4/ueobk0wHBA/XQn8SiM=.sha256

Have forked this discussion to talk about "Contract and Contagion"

TL;DR I think we can do better than contracts.

@mix %NnJeUwzSTEZuVf6ZFLLSOTcvmOdOkYq9cXtFTZETRK0=.sha256

tagging for searching :

crystal summoning ritual magic
crystal shard shatter

@kieran %L9G9m106C4QRzSn+c0dP4SPxXxV3yWPKv7f9Dn7Hh+A=.sha256

cc: #darkcrystal

@dan %RMMqtiN6MZ8xXTNNvcpmrhn3Dhee3qgp/AigEDpEgfE=.sha256

@gickhub I wonder if you have seen this whole thread which maps out some scenarios?

backlink: %rhea0pF...

User has not chosen to be hosted publicly
@mix %okhcIecxCu/MKNszfSb5/JY1WXk9Pxf0MAhFzMG1uYc=.sha256
Voted [@dan hassan](@NeB4q4Hy9IiMxs5L08oevEhivxW+/aDu/s/0SkNayi0=.ed25519) No and
@mix %dBIDXQlP57n7svazuQ5aUOOuwx9GHD6TtUqud50YjA8=.sha256

@gickhub it was @angelica who started it with this gift. Did y'all meet?

@dan %QhFO3l6BvlQSBBCGuWhFcNWAmgIMq0ZxT9CSRh6k3Hc=.sha256
Voted [@dan hassan](@NeB4q4Hy9IiMxs5L08oevEhivxW+/aDu/s/0SkNayi0=.ed25519) No and
@dan %c+3ZcKoE2pKviG2K+xq/HXn2fqn3GBoZVb6lpeNjG+Y=.sha256
Voted [@gickhub](@PMPI0SEYPxetasvrWobIO1hbhhltgzWuUBEnn2KlVfQ=.ed25519) it was [@
Join Scuttlebutt now