Skip to content

Instantly share code, notes, and snippets.

@nodech
Last active June 21, 2023 21:04
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nodech/ccfe8df3516e73ac59a0f0a68d887b8f to your computer and use it in GitHub Desktop.
Save nodech/ccfe8df3516e73ac59a0f0a68d887b8f to your computer and use it in GitHub Desktop.

Name issue and solutions

Claim Stats

ICANN TLDs will become available for auction at block 210240, around January 31 to February 2, 2024. As there's interest in preventing ICANN TLD trading on chain, we need to either completely disable claims and permanently seal reservations (soft-fork), or extend the claim period for these reserved names (hard-fork). Names on the reserved list fall into several categories: ROOT (ICANN TLDs), TOP 100 (Unique 54), Custom (Unique 25), and Others. To gain a clearer understanding of the situation, we present the statistics of the claims on the network. Calculations are based on the unique list; entries falling into other categories are disregarded. Entries that belong to multiple categories will be grouped into the first category they fit into, in the following order:

June 1, 2023 - claim stats

Bucket Name Claimed Unique Total
ICAN TLDS 5 1,516
TOP 100 1 54
CUSTOM 9 25
Others 4,825 88,448

Some examples from unclaimed names for each:

  • ICANN TLD: "nec", "cern", "claims", "cafe" ...
  • TOP 100: "pinterest", "tribunnews", "bilibili" ...
  • CUSTOM: "ubuntu", "icann", "blockstack", "cloudflare" ...
  • Others: "123openload", "sungshin", "zonegfx", "openclassrooms" ...

Summary of soft-fork and hard-fork

The critical issue of preventing TLDs (and top100/custom names) from being auctioned can be resolved either through a soft-fork or a hard-fork. Here's a brief summary of what each type accomplishes.

soft-fork

A soft-fork will permanently disable TLDs, top100, and custom names. After January 31, they will no longer be available for claim or opening, effectively locking or sealing them. Implementation: handshake-org/hsd#819

Hard-fork

A hard-fork will extend the claim period for TLDs, top100, and custom names by four years, while allowing all other categories (OTHER) to be auctioned. After these four years, we will still need to implement a hard-fork or a soft-fork. What happens after this period can also be included in the hard-fork plan, such as a lockup scenario. Draft Implementation: https://github.com/pinheadmz/hsd/commits/thumbwrestle-1

soft-fork details

As previously mentioned, a soft-fork will permanently seal the TLDs, top100, and custom names. They will not be claimable (as they would typically become once tradable), nor can they be opened for auction. Upon activation of the soft-fork (BIP9), the OPENs for the reserved names will become illegal and will not be accepted in the mempool once the claim period ends. Blocks containing OPEN of these names will also be considered illegal. Note: Claims will also become illegal as they are no longer "normally reserved" as per usual rules. Names that have been claimed, but have expired or been revoked will also become locked.

  • Pros:

    • Only miners need to upgrade (and BIP9 tries to ensure they do).
      • Wallets, SPV nodes, and HNSD do not need to upgrade.
    • Wallets won't need to upgrade; they only need to be aware that transactions OPENing those names will fail in the mempool and block, which may cause them to get banned from the nodes.
  • Cons:

    • The names can no longer be claimed on the network and are sealed permanently.
    • There's a risk of activation failure, so names may end up being auctioned.

Hard-Fork

A hard-fork allows us greater flexibility with consensus rules. Instead of permanently sealing the names, we can grant TLDs, top100, and custom names additional time to claim their names on the network. We could also add a failsafe for sealing/locking these important names after four years (not part of the current "Thumb Wrestle" proposal). The current hard-fork implementation/proposal does not use BIP9 (which is generally intended for soft-forks) to signal the miner state. Therefore, I believe it would be a necessary addition to have a soft-fork BIP9 signal to activate the hard-fork. If the signalling fails, the hard-fork won't deploy. The hard-fork proposal has other security measures that are separate but carry different consequences. Because of this, instead of discussing the entire hard-fork, we will present a more detailed pros and cons list per feature.

  • Extending Name Claims

    • Pros
      • This allows name owners an additional four years to make claims.
      • We could also add a safeguard to lock them up when that time expires.
    • Cons
      • Every miner and full node needs to upgrade.
  • Light Node Fork Detection allows light clients, such as SPV or HNSD, to choose which network to follow and whether or not to accept a new fork.

    • Pros
      • Allows greater control for light clients.
    • Cons
      • All full nodes and light clients (SPV, HNSD) need to be updated to support hard fork detection using Name Set entries. Otherwise, they will follow the old chain. Essentially, every application needs to upgrade.
  • Replay Protection allows for safer chain splits, where a transaction sent by old clients on the old chain cannot be copied and replayed on the hard-forked network.

    • Pros
      • This protects users from accidentally spending money on both chains instead of just one.
      • Facilitates future hard-forks, as future hard-forks will already have this feature available and can use it for another hard-fork.
    • Cons
      • Every full node, light node, and Signer implementation (like LEDGER) will need to upgrade the code because it changes the transaction serialization. Essentially, anything that creates or verifies signatures needs to be updated.
  • BIP9 (not part of the draft implementation) will provide a better way to monitor the state of the deployment and allow it to fail if miners do not upgrade in time.

    • Instead of an unfavorable split, activation fails if not adopted in time.

    The general drawback of the current hard-fork is that every project and every code will need to be upgraded. Depending on which parts we omit from the implementation, this requirement could be lessened. For instance, if we decide not to implement replay protection and accept the associated risks, Ledger and other signer implementations won't need to be upgraded.

@nodech
Copy link
Author

nodech commented Jun 1, 2023

List of top100 and custom. Roots were filtered from top100. Top100 + root was filtered from custom:
https://gist.github.com/nodech/a5a308e2b01456d1ea0e34f4be4bd609

@NetOpWibby
Copy link

I'm against a soft-fork, I think names should still be claimable. I'm open to the coin reward being forfeited though.

@nglabs42
Copy link

nglabs42 commented Jun 3, 2023

I'm against a soft-fork, I think names should still be claimable. I'm open to the coin reward being forfeited though.

I agree I am against the soft-fork.

I think we should really make a decisions on the funds and the airdrop to eliminate any additional forks in the future.

@NetOpWibby
Copy link

💯

@hnshnshnshns
Copy link

I'm against a soft-fork, I think names should still be claimable. I'm open to the coin reward being forfeited though. copy from paul )

@nickorlabs
Copy link

nickorlabs commented Jun 4, 2023

So I have been doing some research based on the conversations with Andrew Lee and Meow, and the documentation https://handshake.org/files/handshake.txt, I have the following points to throw out:

  1. Extending the Name Claim Period for ICANN TLDs, TOP 100, Custom, and Others.
    ICANN TLDs, TOP 100, Custom all should be extended at least 4 years.
    Others I think we need to discuss a portion or all of them being extended.

I feel that if we are to ever get mass adoption we must ensure we do not allow any additional names be squatted on, leading to issues with mass adoption in my opinion.

  1. To remain within the spirit of the original implementation, I feel we must burn the unclaimed coins due to the original claim period will be ending.
    image

  2. I think we should reevaluate the funds set aside for FOSS Developers as an incentive to integrate Handshake functionality into their own software.
    image
    Per the Twitter space with Andrew Lee and Meow, this was part of the experiment they had no clue how it would play out. Thus due to the lack of engagement from the FOSS community, I think we need to provide proposals of how these funds should be allocated and dispersed to the FOSS community. I think the following statement in the handshake document on initial design and rationale.
    image

I thing we must find a way to provide FOSS developers with funds in a new manner.

I am doing research now and plan to have a Twitter Space on Wed June 7 at 8:00 PM CST. It will be recorded. It will be with the Summon Platform folks.

Additionally, I think we might be able to model this similar to what Cardano is doing with Project Catalyst, https://projectcatalyst.io/how-it-works

image

image

image

image
I do want to make a change here though, I do not agree with it being based on the total number of HNS or TLDs one owns. I feel it should be one person, one vote, one weight.

image

image

I think we could have a DAO of sorts or something we the handshake ambassadors decide on, as a community!

I think we also need to include this:

BIP9 (not part of the draft implementation) will provide a better way to monitor the state of the deployment and allow it to fail if miners do not upgrade in time.

Instead of an unfavorable split, activation fails if not adopted in time.
The general drawback of the current hard-fork is that every project and every code will need to be upgraded. Depending on which parts we omit from the implementation, this requirement could be lessened. For instance, if we decide not to implement replay protection and accept the associated risks, Ledger and other signer implementations won't need to be upgraded.

@NetOpWibby
Copy link

^ This is honestly, the best proposal I've seen yet. Kudos @nickorlabs.

@rithvikvibhu
Copy link

@NetOpWibby @nglabs42 @hnshnshnshns and others against this soft fork: there is no time to do a hard fork right now. The timeline from thumbwrestle's proposal was:
image
This was for a proposal from mid-2022. Applying this (1+ year long) timeline now when we have less than 8 months just won't work.

So a soft fork is the only realistic option at this point. This stops reserved name claims (for the top ones). Then, in the future, a hard fork can re-enable claiming those reserved names when we have some breathing room.
A soft and hark fork are not mutually exclusive.

@NetOpWibby
Copy link

NetOpWibby commented Jun 5, 2023

@rithvikvibhu Do we need a year?

Actually, I was looking at the source of hsd earlier today and the release schedule for updates is twice a year. So yes, I suppose we do need a year.

@nickorlabs
Copy link

So Nodech is already working on a fork for this, what if we were to be running in tandem; preparing the hard fork and soft fork. Plan the soft fork for Oct 2023 and the hard for from April 2024?

image

I honestly feel if as a community we bind together and work this, we could complete it before April 2024, and get it all done for Oct 2023, but I could be missing things as to why this wont work.

@nickorlabs
Copy link

Also, anyone still talk with @pinheadmz on how far he had gotten? I imagine he might have a bunch completely? Maybe if theres a team of folks he would be willing to come and help? I just feel there could be something we can do to still do all this this year, rough, a bunch of work sure, impossible NO.

@nickorlabs
Copy link

handshake-org/HIPs#50 I am curious with this work how far off we really are from a hard fork to extend ICANN etc 4 more years and drop the Others into the auction poll. Maybe we could adjust this and move forward faster?

@nickorlabs
Copy link

Per @pinheadmz
image
Sorry if I am answering questions that are already known.

@nodech

We are talking about it but not asking you, @rithvikvibhu mentioned this, sorry if it seemed we were not.
What kind of time line do you think is realistic?

Also if you were to have a few other devs interested in helping you, would this be helpful?

Would you like for me to setup a call with everyone so we can discuss this in more detail? We could use @Nathanwoodburn's hnscall.

@Nathanwoodburn
Copy link

Nathanwoodburn commented Jun 6, 2023

We could use @Nathanwoodburn's hnscall.

As long as you only have a few people on the call. It is peer to peer so a bit slow when you have a large call.
https://hcall/fork

@nickorlabs
Copy link

We have a twitter space tonight, https://twitter.com/i/spaces/1LyxBqNkWROJN?s=20, we will be discussing the soft fork, hard fork, opinions etc.

@nickorlabs
Copy link

The next space, instead of a space I would like to use another medium with audio, video, and screen share capabilities. Thinking maybe hosting this 6/19 or 6/20, so there is plenty of time.

I would like to focus on the soft fork and I think there is some question on Alexa Top 101-100,000 (be it top 1000, top 10,000, I think we all agree not the entire A100K)

I was also planning on doing it in the middle of the night CST to hopefully accommodate more people.

I really hope you all will attend because I know we all want to do what is best for Handshake and the continued usability of the chain.

@nickorlabs
Copy link

https://twitter.com/Savethedoctor/status/1668419051754749953

https://star.vote/hnssoftfork23v2/

I have tweeted this and posting it here, I think we should have community discussion before 7/1/2023 on the Alexa 101 -100,000 Websites. Please review the vote and let's work as a community!

@nickorlabs
Copy link

List of top100 and custom. Roots were filtered from top100. Top100 + root was filtered from custom: https://gist.github.com/nodech/a5a308e2b01456d1ea0e34f4be4bd609

How was ICANN, Top 100, and custom determined to be the only name's from the name claim we will lock until a hard fork?

@nickorlabs
Copy link

https://star.vote/a100khsf23/ https://star.vote/hnssf23v3/ updated polls based on feedback and additional discussion on the list we use.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment