spacemeshos / pm

Project management. Meta-tasks related to research, dev, and specs for the Spacemesh protocol and infrastructure.
http://spacemesh.io/
Creative Commons Zero v1.0 Universal
2 stars 0 forks source link

ATX merge #320

Open poszu opened 5 months ago

poszu commented 5 months ago

Description

New ATX V2 allows identities to marry (join an equivocation set) and publish ATX together (merge).

:wedding: Marriage

Marriage happens when an identity selected by the miner publishes an ATX with the Marriages slice filled with marriage certificates.

A certificate proves the will of the identity that signed it to be married to the identity that publishes the certificate. For example, if identity Alice wants to marry Bob (and vice versa), the owner of these identities first picks one that will publish an ATX with a marriage certificate. Say it's Bob. Alice signs Bob's ID and creates a MarriageCertificate, which Bob includes in his next ATX.

The marriage is instant :zap: and, from the moment Bob published the ATX, Alice and Bob are forever bound by forming a so-called equivocation set.

:family: equivocation set

An equivocation set bounds all identities it contains. If one of them acts maliciously, all IDs in the set become malicious.

Merging

A merge is an act of publishing a single ATX on behalf of many identities. A merged ATX contains non-interactive proofs of space-time (NIPoST) for multiple identities. It is signed by a single ID that publishes it and must include a VRF nonce (that belongs to the ID signing the ATX) that satisfies the combined storage of all included IDs. It becomes active for the target epoch and will participate in the network protocols (i.e. Hare) and receive accumulated rewards on the selected coinbase account according to the weight of all IDs present in the ATX.

:bulb: A merged ATX contains a reference to the ATX in which marriage happened for easy syntactical verification if the included IDs are married.

Restrictions

:one: One merged ATX per epoch

There can be only one merged ATX per equivocation set. Identities that choose not to merge (for example because of software or hardware malfunction, being late with PoST proving, etc.) must publish separate ATXs just for themself. They cannot form a second merged ATX in the same epoch.

For example, given an equivocation set of IDs A,B,C,D,E. If C and E malfunction, the node:

:two: There is an upper limit of equivocation set size

Only up to 256 identities can marry int a single equivocation set. Marrying more is malfeasance and cancels all IDs already present in the set as well as the ones that tried to join it.

:three: The equivocation set cannot grow

Identities that are already married cannot marry again.

:four: Merged ATX allows for using 2 poet proofs

TODO