Handshake Hard Fork - Arbitrary DNS Records, Supply Reallocation, and Tree Interval#952
Handshake Hard Fork - Arbitrary DNS Records, Supply Reallocation, and Tree Interval#952realrasengan wants to merge 1 commit intohandshake-org:masterfrom
Conversation
…ee interval - Add 17 new on-chain DNS record types (A, AAAA, CNAME, MX, SRV, TLSA, etc.) - Add LABEL pseudo-record for subdomain compression - Add RAW record for arbitrary DNS types - Increase MAX_RESOURCE_SIZE from 512 to 8192 bytes - Dynamic NSEC bitmap generation - Reallocate 874,728,834.85 HNS unclaimed airdrop/name claims to Foundation multisig - Reduce treeInterval to 1 (commit every block)
HIP-0018: Arbitrary DNS Resource Records On-Chain HIP-0019: Unclaimed Supply Reallocation to Handshake Foundation HIP-0020: Reduce Urkel Tree Interval to 1 Block Reference implementation: handshake-org/hsd#952
|
Overall I agree with this though I would disagree with the signers. I would make the following changes if it were up to me. Remove: Add: |
|
I'm for all of this, but I think the multi-sig wallet would be better served as a registered DAO. A DAO gives more of an independent feel than a multi-sig wallet. The DAO can use a multi-sig wallet to manage the treasury, but it allows voting to be done more cleanly in the event that one of the signers wants out. So instead of identifying a multi-sig wallet and the signers, just identify the DAO and allocate the tokens to whoever you want and however many you want. It will make future voting efforts easier. |
|
@2drewlee How many years has the Handshake community been developing? What have you done in the community? |
|
disagree hard fork |
Remove: Andrew Lee |
|
Not sure who you are @ForestCoin, I don't think we've ever interacted. I'm mostly a behind the scenes guy. Originally was the node that brought Joseph JJ Andrew together to start Handshake. Kept the team together, unblocked obstacles that came up, and pushed to get the project launched. The idea behind Handshake was for us to pass off the project to the community like Satoshi - and we've all done that to varying degrees. Time to time, community members have asked me to help with things, and I've continued to try my best to guide the project without being a figure that overshadows community member efforts. Mike and Anne asked me to be a part of Handycon every year, and I've continued to be a part of it to show support as part of the founding team. I also helped organize and fund the first live hackathon for Handshake in Vietnam - many community members from the East met for the first time as a result including Michelini, Rithvik, Nathan, Jacky Chan, and so forth. Most recently, Mark Tyneway has been pitching an idea to bridge HNS to Solana, and I think it's a terrific idea. To get it moving, I brought together a group with multi-chain engineers including Rithvik to explore how to do this. Zcash, for example, got a lot of traction this cycle in part because of this type of strategy. Long story short, the highest leverage thing I can do is tapping into a network of people I know who can move the needle together for various initiatives. Some are my ideas, but most are ideas people have but don't have the connections, resources or know-how to get things moving. Even this upgrade that @realrasengan is proposing is the result of multi-year conversations we've had within the community (including Skyinclude's HIP-18 proposal). We wouldn't be discussing this unless I was in the background pushing for it. I'm sure most of the other proposed multi-sig members including @realrasengan Nathan Rithvik Jesse Skyinclude would vouch for everything above. Also, I'll make a quick case for JJ - he poured blood sweat and tears into the project and wrote 99% of the code. He knows the codebase better than everyone. He's technical, apolitical, and there will come a time when the project needs him, and I'm sure he'll deliver when he's needed. DAO is a good idea too. Mb DAO should control the multi-sig. |
|
I'm agree with points 1 and 3. |
I have almost no interest (or stake) in HNS anymore but I will leave some comments so community members have some threads to pull. I am going to mute this thread after posting, so don't reply me: reply to the community. First of allA hard fork PR adding 2,000 lines of code in one commit with zero tests is absolutely, unforgivably, UTTERLY NOT SERIOUS. I don't know what kind of discussion has already taken place around these proposed changes, but if it's not worth the author's time to take seriously, it's not worth the reviewers time to take seriously. DNS recordsAs far as I can remember, there are NO CONSENSUS RULES whatsoever about data in the resource. You can put whatever you want in there. It's not a hard fork, it's not a soft fork, it's application-layer data. I think I had a proposal back in the day that used resource version Consensus limitsAuthor proposes expanding the maximum resource size 16x. Some analysis should be done on the impact of this on block space, TX relay, effect on light clients, the amount of hashing required by Urkel operations. Author proposes writing the Urkel tree to disk and computing new tree root every block instead of every 36 blocks. For both of these changes, there is probably a lengthy explanation in the whitepaper for the original values. A proposal to change them should address that directly. However, its also reasonable to admit that the project overall has failed the original goals of the founders who wrote the whitepaper, the blockchain has a totally different use case now, and is so under-utilized that these limits can be safely multiplied. ReallocationI thought the whole point of the last soft fork was to effectively reduce the money supply to make the coin more valuable? How much real-world value is there in 800M HNS? Are there developers out there willing to trade their time for that? What happens to the price when these coins are minted? Or sold for USD? Author proposes three Handshake founders as recipients. As founders, those parties should already have a huge amount of HNS premine. Not to mention the three people mentioned are early bitcoin adopters with history of selling companies and otherwise, I would assume, being completely capable of funding developers right from their own pocket. NathanIf I still have your attention, please review #953 and leave feedback there if you think @Nathanwoodburn would be a good LEAD DEVELOPER AND PROJECT MAINTAINER for the entire HNS ecosystem. hsd and hnsd. He may very well be the single person who decides if a hard fork like this gets deployed. |
|
Thanks for submitting a pull request. My recommendation is: make 3 individual PR to address each individual change. Also, about hard fork, they need to be activated via BIP 9, as every other change we had in the past. |
|
Appreciate everyone weighing in. Let me address things directly.
Also, a fun tidbit I want to mention is that resource record limits are per name, not per subdomain. Thus, you can DNAME a subdomain to another TLD you own fully on-chain and uncensorable
10 min trees make Handshake as a powerful decentralized identity possible. On chain resource records make Handshake as uncensorable DNS possible. And a funded Foundation will steward development and community outreach for the next generation of Handshake. |
|
Split this into 3 separate PRs. Items 1 (Arbitrary DNS Records) and 3 (Tree Interval) are solid technical improvements that stand on their own merit. Bundling them with a ~875M HNS supply reallocation forces the community into an all-or-nothing decision where opposing the treasury grab means blocking legitimate protocol upgrades. These should be evaluated independently. On the supply reallocation specifically: These tokens were permanently unclaimable — the market priced them as dead supply. Minting them into a multisig wallet doesn't bring new capital, new users, or new demand into the ecosystem. It just increases the liquid supply, diluting every current holder. Worse, this dilution directly undermines the miners who are actually securing the network. Their block rewards become worth less in real terms while a one-time coinbase output hands a small group more tokens than miners earn over extended periods. If you weaken the economic incentive to mine, you weaken network security — which hurts adoption, not helps it. There is zero accountability framework. Before any supply reallocation should even be considered, the community needs to see at minimum:
As it stands, this proposal asks the community to trust a self-selected multisig with no legal obligations, no spending rules, no oversight, and no way to remove bad actors. That's not a foundation — it's a blank check. Get items 1 and 3 merged on their own. Then come back with item 2 as a standalone proposal that includes a real governance framework the community can evaluate. |
AI is a great auto-completion tool, but as you can see lacks world context. We're talking about a 4M market cap blockchain here that's quickly nearing zero. |
So we should force it to zero faster? Furthermore you don't want to see the response my AI gave me on this PR lol |
Forcing it to zero faster is a poor suggestion. It's imperative that Handshake both pivots its use case and has the resources available to disseminate said use case. This can be 3 PRs but remains a single issue. |
I'm not the one suggesting we force it to zero. This PR is. Minting 875M tokens into a self-appointed multisig with no plan, no accountability, and no new capital is the definition of forcing it to zero faster. It's not like demand appears out of thin air to back them up. |
|
G'day,
|
It's a pain to wait. Even 10 minutes is long! :)
It depends on what site/service. While many static production sites may not change their DNS settings often, there are actually many other sites that include dynamically changing DNS as a part of their architecture.
Only full nodes CAN do this.
As of now, there is likely minimal to no impact since the community is small. This answer is variably dependent on community size, though, and should be revisited as the community grows again!
If the community is on board, it's imperative the foundation contacts now and stays in touch thereafter with the mining community; albeit, in a loosely coupled fashion.
There are still TBD (to be determined) decisions to be made!
512 bytes is too small for a zone file.
512 bytes is still too small for a zone file. Every subdomain will automatically take a significant number of bytes. Other records could take up more. A simple handshake bech32 address is already 32 bytes!
This is a good question, and while my previous answers had more confidence, this one is significantly more of an opinion than a fact: Other foundations in the past had good motives, but the world of cryptocurrency has evolved at such a quick speed, that the launching and sustaining of a token and, in this case a chain, is much different than it was when Handshake first launched. There are certain things missing from the ecosystem that need to exist. In hindsight, the step away of the founders should have been more transitioned with a foundation taking its place. Rather than complain about spilt milk, let's clean it up and eat some cookies while we are at it! Edit: s\it\at it |
|
There are a few issues that I can see with every block being an urkel update.
|
This PR proposes a hard fork with three consensus changes proposed by myself and @2drewlee :
Arbitrary DNS resource records on-chain. Expand from 7 custom record types to full DNS zone support including A, AAAA, MX, CNAME, SRV, TLSA, and any other DNS type via a generic RAW record, with subdomain label compression and an increased resource size limit (512 to 8192 bytes).
Unclaimed supply reallocation. Reallocate ~874.7M unclaimed HNS (airdrop + name claims) to a Handshake Foundation multisig wallet via a one-time coinbase output at the fork activation height.
Tree interval reduction. Commit the Urkel Tree every block instead of every 36 blocks, reducing proof availability from ~6 hours to ~10 minutes.
Motivation
DNS Records
Handshake currently restricts on-chain resource records to 7 custom types (DS, NS, GLUE4, GLUE6, SYNTH4, SYNTH6, TXT) with a 512-byte size limit. TLD owners cannot serve arbitrary DNS records directly from the chain. They can only delegate via NS or use synthetic records. This forces reliance on external nameservers for common records like A, AAAA, MX, and TLSA, undermining the trustless nature of Handshake.
By allowing full zone data on-chain, TLD owners can operate entirely from the blockchain without running external infrastructure. The LABEL mechanism enables subdomain records (e.g.,
_443._tcpfor TLSA,wwwfor A records) within a single compact resource. The RAW record type future-proofs the system for any DNS type that may emerge.Supply Reallocation
The airstop soft fork (HSD v8.0.0, activated October 2025) permanently disabled airdrop claims. The original developer airdrop achieved only ~2.9% uptake, leaving ~686.8M HNS unclaimed. Similarly, ICANN TLD and Alexa domain name claims expired after the 4-year claim period with ~188.0M HNS unclaimed.
Combined, ~874.7M HNS is permanently unclaimable dead supply. This PR reallocates these tokens to a Handshake Foundation multisig controlled by long-standing community members, to fund ecosystem development, tooling, and adoption.
Tree Interval
The Urkel Tree currently commits every 36 blocks (~6 hours). While full nodes serve DNS from the in-memory transaction (no delay), light clients and proof-based verification must wait up to 6 hours for cryptographic proofs of name ownership. Reducing the tree interval to 1 block makes proofs available within ~10 minutes. The Urkel Tree is append-only, so the additional disk I/O is negligible on modern hardware, and reorg recovery is actually simplified.
Specification
1. Arbitrary DNS Resource Records
1.1 New Record Types
Add 17 new Handshake record types to
hsTypes:1.2 LABEL Pseudo-Record (hsType 24)
The LABEL record is a control marker that sets the subdomain context for all subsequent records. It does not produce a DNS record itself.
Records before any LABEL apply to the TLD itself. This enables compact subdomain encoding without repeating names per record.
Backwards compatibility: TLD-level records are always serialized first. Old nodes encountering an unknown hsType (LABEL = 24) will stop decoding and still have all TLD records intact.
1.3 RAW Record (hsType 25)
A generic container for any DNS record type not covered by the named types above:
This future-proofs the system for new DNS types without requiring consensus changes.
1.4 Resource Size Limit
MAX_RESOURCE_SIZEincreases from 512 to 8192 bytes, allowing rich zone files with multiple subdomains and record types.1.5 Dynamic NSEC Bitmap
NSEC denial-of-existence proofs are now generated dynamically from the record types present in a resource, replacing hardcoded type bitmaps. This correctly advertises which types exist at each name and subdomain.
1.6 DNS Resolution
www.example.) extract the prefix, check for a matching LABEL, and resolve from on-chain subdomain records.2. Supply Reallocation
At a designated activation height, the coinbase transaction MUST include an additional output:
This is a one-time event. The amount represents:
Validation rules:
2.1 Foundation Multisig
The reallocation address is a multisig wallet controlled by the following Handshake Foundation keyholders:
The multisig threshold is TBD (e.g., 4-of-6).
3. Tree Interval
The Urkel Tree commit interval (
treeInterval) changes from 36 blocks to 1 block across all networks. Every block now commits the tree, making cryptographic name proofs available within ~10 minutes.Consensus Changes Summary
MAX_RESOURCE_SIZEhsTypescounttreeInterval(mainnet)Activation
This is a hard fork. Activation occurs at a designated block height (TBD). All nodes must upgrade before the activation height.
Security Considerations
References