Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ATX merge #320

Open
13 of 20 tasks
poszu opened this issue May 29, 2024 · 0 comments
Open
13 of 20 tasks

ATX merge #320

poszu opened this issue May 29, 2024 · 0 comments

Comments

@poszu
Copy link

poszu commented May 29, 2024

Description

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

💒 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 ⚡ and, from the moment Bob published the ATX, Alice and Bob are forever bound by forming a so-called equivocation set.

👪 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.

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

Restrictions

1️⃣ 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:

  • can publish ATXs [A,B,D] + [C] + [E]
  • cannot publish ATXs [A,B,D] + [C,E]

2️⃣ 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.

3️⃣ The equivocation set cannot grow

Identities that are already married cannot marry again.

4️⃣ Merged ATX allows for using 2 poet proofs

TODO

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: 🏗 Doing
Development

No branches or pull requests

2 participants