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

Feature: ACME like domain verification #230

Open
poelzi opened this issue Dec 13, 2024 · 0 comments
Open

Feature: ACME like domain verification #230

poelzi opened this issue Dec 13, 2024 · 0 comments

Comments

@poelzi
Copy link

poelzi commented Dec 13, 2024

This proposal is design do bridge the world wide DNS system to validated Sui objects.

Having on chain Domain objects will allow novel use cases to verify ownership of domains and prevent scams.

  • Serve Walrus sites under own domain
  • Verified URLs in package descriptions
  • Allow profile links to be verified
  • ...

ACME like verification

NS daemon

  • SuiNS daemon is responsible for verifying requests in a distributed way
  • Each instance requires a stake of NS token to become active
public struct Domain {
    /// domain name
    name: String,
    /// Date when the Domain validation expires
    valid_until: Date,
   ...
}

Verification process

  1. Initiating
  • User calls new_domain(name: String, method: VerificationMethod, cost: Coin<NS>) -> Domain
  • Renewal renew_domain(domain: &mut Domain, method: VerificationMethod, cost: Coin<NS>)
  1. SuiNS daemons with enough stake verifies the requested domain through the verification method and signs the result
    • The SuiNS daemon instance earns NS tokens for the verification process
  2. Once enough stake positively signs the query result, the Domainvalid_until timestamp is extended by 3 months.

Validation Methods

  • HTTP: return a /.well-known/suins/[uuid]challange
  • DNS: resolve a _suins_[uuid] TXT domain challange
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant