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

Claims & Proofs: cleanup args and terminology #243

Closed
tbfleming opened this issue Nov 29, 2022 · 2 comments
Closed

Claims & Proofs: cleanup args and terminology #243

tbfleming opened this issue Nov 29, 2022 · 2 comments
Milestone

Comments

@tbfleming
Copy link
Member

tbfleming commented Nov 29, 2022

Current verifier args (e.g. verifyec-sys):

struct Claim
{
    AccountNumber     service;
    std::vector<char> rawData;
};

struct VerifyArgs
{
   Checksum256       transactionHash;
   Claim             claim;
   std::vector<char> proof;
};

The transactionHash arg forces use of sha256, which hurts upgradeability since the native code fills it.

Claim and Proof aren't standard terminology. The current use case is Public Key and Signature, but we plan to define more uses in the future (e.g. Antelope Action and Merkle Proof) and it's possible for independent service authors to define their own uses.

This was referenced Nov 29, 2022
@tbfleming
Copy link
Member Author

Here's one possible solution for the terminology problem:

  • Rename them to PublicKey and Signature since this is the majority use case
  • Abuse those terms for the minority use cases. e.g. an Antelope action is a psibase public key and a Merkle proof is a psibase signature.

@swatanabe
Copy link
Collaborator

* Abuse those terms for the minority use cases. e.g. an Antelope action is a psibase public key and a Merkle proof is a psibase signature.

A merkle tree can be seen as a signature scheme if you squint at it right. In fact, a slightly different breakdown would make this seem almost normal:

  • public key: merkle root
  • data: Antelope action
  • signature: merkle proof

Then, a Claim can be defined as a public key + either a tag indicating the whole transaction or an octet-string.

@James-Mart James-Mart added this to the R4 - FG milestone Jul 10, 2023
@James-Mart James-Mart added the refactoring Internal clean-up tasks, or eliminating tech debt label Aug 29, 2023
@James-Mart James-Mart modified the milestones: R4, RN Nov 8, 2024
@cool-ant cool-ant modified the milestones: RN, RC4 - public Jan 23, 2025
@James-Mart James-Mart removed the refactoring Internal clean-up tasks, or eliminating tech debt label Jan 28, 2025
@James-Mart James-Mart closed this as not planned Won't fix, can't repro, duplicate, stale Jan 28, 2025
@github-project-automation github-project-automation bot moved this to Done in Psibase Jan 28, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Done
Development

No branches or pull requests

4 participants