ENS Relay and resolver

The ongoing development of output unification will make possible the implementation of DELEGATECALL vouchers. Technical details omitted, it will allow us to implement a ENS resolver in the execution layer.

This will allow DApp users to interact with DApps under their ENS identity without the application caring about their original EOA address. The ENS Relay will make sure that only the current owner of the name can add inputs on behalf of the identity and the resolver will direct any consequences of input to the rightful owner.

I am excited about this feature for two principal use cases:

  1. Imagine a decentralized application (DApp) functioning as a game. I establish a user identity, dragonslayer.eth, and actively participate in the game. Now, I have the option to transfer ownership of my entire in-game account, complete with its historical data within the DApp, by selling the associated dragonslayer.eth.eth Ethereum Name Service (ENS) domain. This transaction encompasses all potential future outcomes arising from yet-to-be-processed inputs. I can sell my game account without having to sell my private key (what would be also unsafe for the buyer).

  2. Suppose I harbor concerns that my wallet may be compromised due to a security lapse, perhaps because of an inadvertent mistake or a necessary mnemonic input to MetaMask during an emergency, making me feel uneasy about its safety. The logical course of action is to promptly transfer all my funds to a new wallet. However, a critical consideration arises regarding future earnings that might still be locked within a decentralized application (DApp).
    Take, for instance, a scenario where I’ve placed a bid in an auction application and am awaiting resolution to receive an NFT. If I’ve been using an Ethereum Name Service (ENS) to interact with the execution layer, migrating the identity associated with my ENS to the new wallet becomes essential. This ensures that any future rewards, such as the NFT from the auction, will be correctly directed to the updated wallet address, mitigating potential complications and ensuring a seamless transition.

DApp developers have the option to create their own identity manager, but utilizing the Ethereum Name Service (ENS) offers a distinct advantage. ENS enables me to conduct auctions, sales, and account transfers across any platform that supports Non-Fungible Tokens (NFTs), whether onchain or offchain. This approach is more versatile and composable beyond the confines of the DApp. By embracing ENS, we avoid imposing the responsibility on DApp developers to construct an internal transfer system, which would lack compatibility with names on other applications.

More context and technical details can be found on Github issue ENS resolver for the DApp layer #58

3 Likes

Woah, thats very cool!

I always imagined that extending ENS identities to dappchains would be great for convenience. And possibly save costs on adding inputs too. But never actually thought of the implication it’d have on migrations/asset management for L2s. Essentially, you’re describing a way to mass migrate your assets/interactions from all dappchains to another address in one transaction.

A small technical question:
Changes in the ENS are reflected instantly, right?

I don’t understand how delegatecall vouchers are the thing that makes this possible, but I’ll read more in the github link you provided.

1 Like

The changes in ENS are reflected instantly.

The delegate call allows the DApp to generate a voucher to a library that resolves the ENS name. The workflow would be the following:
Add input as “ENS name” - ENSRelay verifies that the msg.sender is the ENS name owner.
Dapp uses “ENS name” as any other address.
DApp generates a voucher with delegate call to a library that can resolve the ENS name to owner on layer one.

2 Likes

ENS names are perfect for user identification!
Compared to Ethereum addresses, they are shorter [1], easier to read [2], and customizable [3]:

  1. generally take less than 42 characters
  2. are generally made up of real words rather than hexadecimal digits
  3. you choose the name, instead of it “choosing you” at random

I like very much this proposal its a small convenience layer that can be built within our execution environment

Also can be a very small nice adding for the gaming vertical but also any application where the account itself can carry some value, future gains or reputational information

1 Like