stamp-protocol / tracker

The place for all features, bugs, and discussions
https://stampid.net/
2 stars 0 forks source link

DAG transactions #16

Closed orthecreedence closed 3 years ago

orthecreedence commented 3 years ago

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 them strip_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

orthecreedence commented 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.

orthecreedence commented 3 years ago

Done. Very nice.