Closed orthecreedence closed 3 years ago
Ended up working on this. Probably 80% of the way there. Needs some wires hooked up, some security assurances, and some heavy testing. However, it has centralized so much weird complexity in the identity system and made everything an absolute pleasure to work with. Not having to sign every little fucking thing is really much nicer. Also, it effectively solved the recovery system (#4) since I was thining of doing some kind of trnsaction chain there anyway.
Seriously, now that this is almost done, I can't believe I tried to do this project without it.
Done. Very nice.
I'm not sure if this makes sense yet, need to find pros and cons. The concept though is that instead of an identity being a singular object, it's rather the transactions that make it up, each one signed by the highest-level key required for that transaction. Each transaction would also sign the transaction(s) before it, creating a DAG.
The idea is this would make it easier to sync identities across the private StampNet (because it's almost/kind of a CRDT) and could make it easier to detect malicious "forks" of identities.
Pros
Cons
Overall, not sure which wins. I'm leaning towards doing this but doing it later on, not immediately. Although it might make sense to do it before seriously starting the StampNet implementation.
Implementation
Transactions implement
Public
, giving themstrip_private
so we can remove private data from them (for publishing et al). The identity is built by ordering (via Kahn's algo) transactions and running them start to finish. Transactions link to any unlinked ones before them.TODO