This repository has been archived by the owner on May 14, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Meeting_notes_2021-04-14-arj-mix
243 lines (197 loc) · 6.14 KB
/
Meeting_notes_2021-04-14-arj-mix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
<!--
SPDX-FileCopyrightText: 2021 Anders Rune Jensen
SPDX-License-Identifier: CC-BY-4.0
-->
# Facetted Identity Spec | 2021-04-14
Last time: https://hackmd.io/iQlUz8nBSeecrrb5mQtcUQ
hackmd: https://hackmd.io/AHdW4Z6lTAqEfPxEkSuSvQ
Last time Summary:
- tombstoning is go!
- redirects as ways to link, metadata, attesting
- curly cases
- groups.... might be similar?
This time
- sketch it out
- chuck it in a repo
- name for the spec
- arix
- mirj
- manders
- andix
----
## Tombstones
https://github.com/ssbc/ssb-schema-definitions/blob/master/definition/tombstone.js
```js
// identity
{
preferredName: { set: String },
tombstone: { set: null } // undoes a tombstone ??
tombstone: null
}
OR
{
preferredName: { set: String },
tombstone: {
set: {
date: Integer, // required
reason: String // optional
}
}
}
```
If you have a tangle which branches and the tombstone is on a branch...
Consider the whole thing tombstoned
```
A
/ \
B C
| |
\ T1 < tombstone
\ /
\ /
T2 < another facet of identity affirming tombstone
```
Questions:
1. can you undo a tombstone?
2. is a whole record tombstoned if there is a valid tombstone message attached to the tangle anywhere?
3. should everyone post a tombstone who can?
4. when you look up the tombstone state, should you see all the tombstones from each facet?
- e.g. `tombstone = [{ author: Mix1, date }, {author: Mix3, date }]` (reduced state)
5. can you post a refute to a tombstone?
- e.g. 2 devices say the one who started the tombstone was malicious?
- could be done different with anti-attestation
- tombstoning could be attested ....
```
A
/ \
B C
|
T1 <-- Attest1
<-- Attest2
<-- !Attest1
```
One tombstone = it's gone
Notice:
- any more messages just add meta-data. We just need to decide how to backlink / tangle those in
## Identity
Minimal attributes:
- ID
- facets: [
Feed, // a classic ssb keypair public key
MetaIdentity // an identity similar to this one (made up of multiple parts)
]
- public encryption key for DMs
- could be the same as ID
Optional Attributes:
- preferredName
- fullName
- avatarImage: e.g. {
type: 'hyper'
blobId,
readKey / unboxKey,
mimeType,
size
}
Encryption ideas:
- if public ID and public encryption key are different
- would have to support this public encryption key
- if public ID and encryption key are same
- would work for current systems
- question:
- is this multi-identity a group? does it use the first slot of box2?
- how do we need to know when we need to try "meta-arj" keys on "arj-phone" messages?
```
@MixDesktop @MixPhone
\ |
%link/feed-profile-> %MixQueerProfile <-%link/feed-profile
- @creator |
%transform1
|
%transform2
%MixBusinessProfile
|
%transform1
|
%transform2
```
questions:
- how does arj know how to message mix mention / privately?
- what feeds do I need to get to know who "Mix" is?
- if an author is another meta-identity, how do you know how to replicate the appropriate people?
### Authorship of a profile in Ahau
```
A authored by @mixDesktop
{
preferredName: { set: Mix }
authors: [
{ id: @mixDesktop, seq: 223 } // then there's some way to show add/remove
{ id: @mixPhone, seq: 14 } // then there's some way to show add/remove
]
}
B authored by @mixPhone
{
preferredName: { set: MetaMix }
authors: [
{ id: @mixLaptop, seq: 33 }
]
}
```
questions:
- this implies phones is happy to be added?
- there's no consent
- possible idea:
- this is the backend
- in the front-end, we show it as a proposal / invitatoin, UNTIL mixPhone published something (this is them speaking with their new authorship priviledge)
- yes to consent!
- 3 message
- invite
- yes thanks / no thanks
- (if yes) ok, here's a DM with the private key
- ???
- 2 message
- invite (publicly? send private key DM?)
- yes is via authoring yourself into a "consented" list on record
- mostly private, sign yourself in
- DM: invite
- DM: yes please
- DM: here's your private key
- public: adds self to authors, SIGNS with private key
- OR
- DM: invite + key
- problem - if you access the private key no-one in the meta identity has to have added you ... which could be dangerous
- public: adds self to authors, SIGNS with private key
- how do we make this easy to publicly audit / follow along?
- what is this going to be used for? by who?
- how is this different to private groups?
- private groups are about being able to have hidden comms, hidden group of people.
- you can have a public shop-front, which tells you a little about a group, and who to talk to to apply to join.
- a meta-identity is for?
- I have multiple devices, and I want to just have one account
- being able to have one DM inbox
- one id which is added to groups
- one id which is mentioned
- a public group
- can speak as a group/ on behalf of the group
- DM for multiple people (e.g. email the [email protected])
- is this a nice to have, or a core feature
- this is a nice to have corollary?
- we're ok with this being cut if it has to be
Other things we will need:
- to inform the other facets of the Private Key
- to declare a link from your identity to this meta-identity
## Summary
we covered:
- what the identity needed
- tombstoning
- purpose: this is primarily for multi-device
open questions:
- inviting / consent
- how we do authorship?
- how does it work
- is this a core part of the spec?
- signing?
- checking list of authors?
- redirects
- attestation
- confirming / denying tombstones (adding meta data)
- confirming / dening redirects