区块见闻 区块见闻
Ctrl+D收藏区块见闻
首页 > AVAX > 正文

HTT:Buidler DAO:以ENS为例深度分析Web3域名系统的技术设计_RES

作者:

时间:

原文标题:《BuidlerDAO:以ENS为例深度分析Web3域名系统的技术设计》

原文作者:}.addr.reverse)到域名名称的解析

根合约:是根域名的owner,拥有一级域名的管理权限

控制器合约:官网的注册入口合约

价格预言机:ENS定价采用的是U本位,所以需要USDT预言机来计算某一时刻的注册费的eth换算值,ENS主网上的注册费为:

长度为5+个字符的域名:每年支付5美元

长度为4个字符的域名:每年支付160美元

长度为3个字符的域名:每年支付640美元

DNSSEC预言机:DNS安全扩展预言机合约,负责校验证明web3域名的所有权和有效性

ENS模块解析

注册表合约(EnsRegistry.sol)

注册表是ENS最核心的合约,上图为注册表合约内部的records结构,维护着域名层级node对应的owner、解析器、ttl信息注册表是ENS最核心的合约,上图为注册表合约内部的records结构,维护着域名层级node对应的owner、解析器、ttl信息。

除了注册表信息records维护,合约还维护owner的委托管理者信息operators,owner可以通过添加设置委托管理者地址来共同管理域名信息合约中相关管理设置接口,都会通过修饰器`authorised(node)`来限制调用权限;该修饰器将判断该接口的交易请求者是否为当前域名的owner,或者委托管理者地址,保证了仅有域名的owner或委托者才有创建下一级子域名的权限。同时这里部署初始化的时候将`」」`根域名的node的owner设置为部署者,只有这样,部署者才能将根域名的owner设置给Root合约根合约。

根合约是根域名的owner,同时根合约作为根域名的owner,有权限调用注册表合约的setSubnodeOwner接口,将域名.eth的owner指向基础注册器合约。

Base:已空投Genesis Builder NFT给100多个在启动时支持Base的APP和服务提供商:9月1日消息,Coinbase推出的L2网络Base宣布,今日已空投Genesis Builder NFT(黄金级),空投对象是在Base区块链启动时给予支持的APP和服务提供商,总数超过100家。

该NFT系列由@KlaraVollstaedt设计,旨在将Base区块链早期贡献者视为Builder社区的宝贵成员,获取该NFT资格的团队必须在启动时部署到Base区块链且必须是APP、基础设施或服务提供商,独立代币或NFT项目不符合申领条件。Genesis Builder NFT持有者将获得Discord特权,与其他社区成员建立联系。[2023/9/1 13:11:16]

基础注册器合约

由于Root合约将域名.eth的owner指向基础注册器合约,从而基础注册器拥有.eth底下的二级域名的设置权限,使得用户可以通过基础注册器合约进行域名注册;同时该注册器合约继承了ERC721协议标准,这也就是为什么ENS域名可以作为NFT在交易市场比如opensea上买卖的原因。除此之外,基础注册器合约还维护着每个域名的过期时间expiries,注册器为每个域名设置了90天的保护期,当域名过期后且在保护期内,域名拥有者可以通过调用续期renew接口进行续期,如果超过了保护期,则需要重新注册。同时在ENS设计中,注册器合约基本上都有controllers结构,维护着可信的controller注册器合约,只有可信合约才可进行调用。

控制器合约

用户在官网中,将要注册的域名等注册信息传给控制器合约,控制器合约通过预言机计算该域名的价格,同时将域名通过namehash转成node后传给基础注册器进行域名NFT的注册,同时将域名相关注册表信息写入注册表合约完成注册,同时域名的owner可以在官网通过注册表合约进行管理操作,官网中的注册页面如下:

核心注册流程:

观点:目前行业内是一个沉淀期,builders应该更多去focus在如何解决问题:近日,BeWater DevCon 2022 全球开发者大会在硅谷湾区成功举办,来自Polychain Capital, Uphonest Capital, DFG Capital, Foresight Ventures的嘉宾进行了圆桌讨论,围绕“VC如何在熊市中投资和支持Builders”。Polychain Capital的Jacob Philips表示,目前行业内是一个沉淀期,builders 应该更多去focus在如何解决问题。Uphonest Capital的KJ表示,VC应该作为共同创业的伙伴,而不仅仅是投资就不管事儿了。DFG Capital的Joanna表示,这个熊市的基本面已经和18年19年的熊市大不一样,基础设施得到大量发展,让大家多多探索

Foresight Ventures的Suning表示,builder可以在熊市多做一些新尝试,比如在开发语言方面,尝试Move或Cairo,探索全新生态的可能性。同时作为Foresight Ventures也会更多关注真正颠覆性的创新,以及围绕DAO或者NFT等的crypto-native的文化发展。[2022/6/24 1:29:46]

ENS注册采用「请求-提交」两阶段注册模式ENS注册采用「请求-提交」两阶段注册模式,为什么需要两阶段提交?我们知道以太坊节点从交易池pool中捞取交易是会按照交易给的gas费进行优先级排序;在注册者携带待注册域名构造的交易提交上链前,在整个网络是公开透明的,恶意的攻击者可以监听并解析此类待上链交易,并构造相同域名的注册交易,通过提高gas费的方式抢先上链注册控制器合约注册。

为了防止此类域名抢注问题,ENS采用了先请求,后提交的注册模式。在第一阶段并不直接提交域名,而是先调用

makeCommitment接口根据待申请域名name、待申请地址owner、随机值secret进行哈希后生成一条特殊的commitment后,通过commit提交上链。

提交阶段的commitment记录着当前时间戳,同时ENS设置commitment的有效期为60s到86400s之间;第二阶段注册的时候合约会重新计算commitment,判断是否与第一阶段提交的一致,同时检查Commitment的有效期,保证跟第一阶段的链上处理时间间隔1分钟以上,保证记录了第一阶段交易的区块经过了至少5个后续区块的确认。

BKEX Global将于今日16:30上线BUIDL:据BKEX Global公告,BKEX Global将于2020年8月9日16:30(UTC+8)上线BUIDL(DFOhub),开放交易对:BUIDL/USDT。

Buidl是DFOhub的治理代币。DFOhub,首个基于DFO协议的独立的去中心化组织。通过BUIDL, Token持有者拥有协议及其资产的所有权。DFOhub是一个基于以太坊的开发项目,它为去中心化弹性组织(Decentralized Felixable Orgnizations)、拥有专有资产的链上公司及作为可编程股权的投票Token提供了一个框架。[2020/8/9]

用户在官网的第二阶段注册流程实际上是代码中的resolver!=address(0)逻辑分支,因为ENS默认会将注册的resolver解析器设置为默认的公共正向解析器,这里为什么需要将域名注册给合约本身然后在转移给用户呢?因为上文中我们提到注册表合约中只有owner或者委托管理者才有权限设置解析器或更新owner,所以为了帮用户设置好解析器,需要通过基础注册器注册给合约自身,再通过注册表合约设置解析器,然后声明所有权,最后才转移给注册者。

解析器(Resolver)

ENS中的解析器合约分为正向解析和反向解析,解析记录是ENS比较重要的内容,只有定义好规范,生态才能方便的即成ENS这类web3域名系统。

正向解析

负责将域名映射为对应用户设置的内容(包括币种地址,ipfs内容hash,通用text记录等等。

首先metamask会通过注册表合约获取域名node设置的解析器地址,然后与该解析器地址交互,获取用户设置的eth的币种地址进行转账操作。

反向解析

负责将用户钱包地址映射为对应的域名。

反向解析实际上是对用户不透明的,用户也无法像正向解析器合约那样可以自定义。用户也可以通过反向注册器的setName方法设置当前钱包地址要绑定的域名,反向记录同样在ENS注册表合约维护,用户注册的反向记录在三级域名记录中,格式为:具体用户地址.addr.reverse

动态 | 质押流动性协议Stafi加入Substrate Builders计划:金色财经报道,为质押资产提供流动性的去中心化协议Stafi今天宣布成为Substrate Builders计划成员。该项目的背后组织Parity希望为Substrate Builders创造一个空间来解决项目的独特问题和需求。从目前的开发情况来看,Stafi的开发进展顺利,即将进入公共测试网阶段。[2020/2/25]

设置反向解析之后,opensea用户界面会将用户钱包地址展示为可读的ENS域名,则是反向解析的过程解析器结构以及node对应的注册表信息。

根域名的owner是根域名:

.eth一级域名的owner是正向注册器也就是

用户注册的二级、三级域名的owner是用户本身,同时可以自由设置解析器合约地址

.reserve一级域名owner是ENS的多签钱包地址

.addr.reserve二级域名owner是反向注册器,ens当前主网版本控制器合约注册的时候默认通过反向注册器设置反向解析记录,用户无需提供gas之外的反向注册费。

用户注册域名的反向三级域名的owner都默认指向反向注册器合约,同时resolver默认指向反向解析器合约

上面我们已经把ENS域名合约设计以及主要的模块梳理完了,ENS在设计上比如模块拆分,权限拆分方面都是值得我们借鉴的,但是目前主网上的ENS也存在一些问题。

ENS存在问题与解决

1、零宽问题:这是ENS目前比较麻烦的问题,因为合约设计之初并没有限制零宽字符,比如可以官网注册某个域名的时候,如果该域名已被注册,此时用https://unicode-table.com/en/200B/?拷贝对应某种零宽字符串插入到要注册的域名中间某个位置,则可以注册对应的域名了。

2、特殊字符:ENS合约并没有限制.,emoji表情等特殊字符过滤,以致于目前交易市场存在太多冗杂非规范的域名。

动态 | 今日丢币巨鲸系Bitcoin Builder创始人Josh Jones:今日被爆丢失价值2.6亿BTC和BCH的巨鲸系Josh Jones(推特ID:zhoujianfu)。据介绍,Josh是一名开源软件和替代货币技术专家,同时也是Topcoin以及Bitcoin Builder的创始人(注:该公司为替代货币交易提供全栈解决方案)。在Inktank被RedHat收购之前,Josh一直是Inktank的董事会成员。在此之前,他是网络托管公司DreamHost的联合创始人兼临时CEO。此外,他还创立了ePub Bud,并担任Group B Strep International的董事。此前消息,巨鲸用户(zhoujianfu)疑似遭到SIM卡攻击,丢失了1547个BTC和接近6万个BCH,目前价值2.6亿元。该用户在Reddit上发布了求救信息,币印创始人潘志彪亦在微博予以确认,并称“技术上来说,重组双花现在时间依然来得及”。据安全公司链安监测,目前被盗比特币正在分别进行小额拆分,并已经与一些交易所转出的小额比特币进行混币[2020/2/22]

目前ENS官网已经对特殊字符进行过滤,并给予必要的警告提示

3、transfer问题:ENS目前有个比较麻烦的问题就是域名NFT在转移的时候,owner没有同步转移,所以当你在交易市场买了一个ENS域名NFT的时候,你需要通过基础注册器合约的reclaim接口,消耗一定的gas费声明NFT所有权后,才能到ens官网上看到自己拥有的域。

4、tokenURI问题:ENS的基础注册器合约并没有即成ERC721标准的tokenURI,可能是设计之初没有考虑好,所以目前我们在交易市场比如opensea上的ENS的NFT的metadata,是交易市场特殊对ENS即成了ENS中心化的metaservice的API。

5、保留字:这是我觉得.bit这方面做得比较好的方面,.bit官方会把web2世界中的机构或公司名称保留下来,便于后续web2与web3之间的连接这对于web3域名生态发展是有意义。

6、基础合约可升级,ENS目前对于基础模块并没有采用代理模式支持合约可升级,这样当未来需要对基础模块升级的时候是比较麻烦的,一种是fallback一种是迁移数据,但这都只能解决部分问题,这个方面ENS是有改善空间的。

我们可以怎么解决上面那些问题呢?

1、字符问题,我们可以在控制器合约的valid函数修改逻辑,一种实现方式是限制零宽等特殊字符比如spaceid,另一种就是只允许符合规范的字符。

2、transfer问题:我们可以在基础注册器里复写transferFrom和saveTransferFrom函数,在转移nft的同时调用setSubnodeOwner转移owner。

3、tokenURI问题:这个比较简单我们只要继承ECR721的tokenURI标准呢就可以了,那怎么实现在图片中动态的域名的展示呢?我们可以采用svg上链。

4、保留字问题:可以将保留字以及对应要保留的钱包地址上链,先保留给合约本身,后面可以通过apply接口申请给某个特定地址。

5、基础合约可升级:我们可以采用代理模式(eip-1967)对基础模块合约进行改造,感兴趣可以参考lens-protocol的合约设计。

DNS模块

ENS的DNS能力并不是我们说的web2域名系统比如.com可以实现在浏览器里访问域名来访问你的ens域名,ENS的dns注册实际上只是基于DNS安全扩展,通过相关的证明,校验算法证明你对于该web2的域名的所有权,然后在链上做一个的记录,使得我们可以用web2域名进行链上转账。详见

但是本文为什么我们没有详细讲ENS的DNS模块呢?是因为ENS虽然花了大部分精力在实现DNS,但是这个功能放在ENS比较鸡肋,用的人很少。其实这实际上是一个did聚合的范畴,类似的能力个人觉得更适合放到聚合DID中去实现,比如像masknetwork的nextid,cloaknetwork的zkid。可以把proof做好,向即成twitter等web2的handler一样,去集成web2域名。

部署自己的web3域名

本文最后给大家提供一个改造后的ENS域名合约版本(https://github.com/axtrur/xens-contracts?改造内容以及部署方式详见readme),方便大家自行部署自己的web3域名,深入理解web3域名系统的设计原理部署goerli测试网命令

OWNER_KEY={{accountprivatekey}}INFURA_ID=c03713652e3c4ef6a3c09ea7dbf58711npxhardhatdeploy--networkgoerli(INFURA_ID可以替换成自己的infuraid,执行前删除deployment/goerli文件夹以及deployment/goerli_result.json)

部署测试网goerli后,执行注册脚本ens.js注册域名

OWNKEY={{accountprivatekey}}INFURA=https://goerli.infura.io/v3/c03713652e3c4ef6a3c09ea7dbf58711nodeens.js

就可以到opensea测试网查看已经部署的nft了,比如我部署的.buidlerdao后缀的域名就可以到opensea测试网查看已经部署的nft了,比如我部署的.buidlerdao后缀的域名

https://testnets.opensea.io/collection/buildlerdao-name-service

总结

ENS域名作为web3域名的先行者,在设计上有很多值得借鉴的地方,我们看到的.bnb,.nft也都是基于ens合约基础上搭建的。希望通过本文大家对ENS的设计从整体到细节有个深入的深入,web3域名不仅仅是一个NFT,他有着更深远的意义。同时web域名只是一个很小的开始,相信随之普及、生态集成以及大家对did的探索,原生链上的可读的web3域名将会被聚合起来,使得每个用户在加密世界里都有个统一的名片描述,更好地去连接多链生态,连接用户。

ENS域名系统相关EIP标准

EIP137-注册表https://eips.ethereum.org/EIPS/eip-137

EIP181-反向注册器https://eips.ethereum.org/EIPS/eip-181

EIP205-ABI解析(ABI()).

EIP619-SECP256k1公钥解析(pubkey()).

EIP634-文本记录解析(text()).

EIP1577-内容hash解析(contenthash()).

EIP2304-多Token地址解析(addr()).新的记录类型可以随时通过EIP标准化程序进行定义

主网部署的ENS合约

注册表合约:0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e

根合约:0xab528d626ec275e3fad363ff1393a41f581c5897

基础正向注册器合约:0x57f1887a8BF19b14fC0dF6Fd9B2acc9Af147eA85

反向注册器合约:0x084b1c3c81545d370f3634392de611caabff8148

默认正向解析器合约:0x4976fb03c32e5b8cfe2b6ccb31c09ba78ebaba41

默认反向解析器合约:0xa2c122be93b0074270ebee7f6b7292c7deb45047

控制器合约:0x283Af0B28c62C092C9727F1Ee09c02CA627EB7F5

ENS域名资料

官网:https://app.ens.domains/

github:https://github.com/ensdomains

合约代码:https://github.com/ensdomains/ens-contracts/tree/master/contracts

线网部署版本:https://etherscan.io/accounts/label/ens

文档:https://ensuser.com/docs/contract-api-reference/ens-contracts-overview.html

交易市场:https://opensea.io/collection/ens

其他web3域名系统资料

.bnb

官网:https://space.id/

github:https://github.com/Space-ID

交易市场:https://www.element.market/collections/space-id-bnb

.bit

官网:https://www.did.id/

github:https://github.com/dotbitHQ

交易市场:https://opensea.io/collection/dotbit

.nft

官网:https://nft.space/

交易市场:https://www.element.market/collections/nft-name-service

标签:TPSHTTRESBUILDtps币行情CHTTBlockXpressDark.Build

AVAX热门资讯
Web3游戏:狂奔的Web3游戏被迫紧急“刹车”_web3域名怎么使用

文:章鱼哥 自今年年初以来,Web3加密游戏板块急速下跌,与整体加密货币市场低迷一致。在过去十年中,手机游戏已成为互动娱乐产业的重要支柱,得益于智能手机的普及,来自世界各地的用户都成为了硬核游戏.

WEB:重听 4 小时的 SBF 听证会 我扒出了一些有趣的细节_比特币k线图十年

撰文:kean 美国听证会前夕,SBF在巴哈马被捕,SBF本人则在巴哈马参加了听证会。SBF的父母暂停他们在Stanford的工作,来巴哈马参加听证会.

COIN:金色观察 | 加密怀疑论者需要的加密用例_Cogecoin

?文/JackNiewold,CryptoPragmatist创始人;译/金色财经xiaozou我们现在尽可以乐观一点,但这是一个一次暴雷后就会损失浪费数十亿美元风险投资的行业.

OWN:加密行业这一年黑暗熊市的开章:Luna崩盘事件的重要调查进展_ens币是下一个百倍币吗

加密货币行业这一年黑暗熊市的开章——Luna崩盘事件的重要调查进展TerraResearchForum成员@FatManTerra发布调查成果:最直接导致UST脱钩LUNA崩盘的罪魁祸首其实是@.

CRYP:被ChatGPT震惊了一天 我想知道AI和crypto是什么关系?_Soccer Crypto

作者:北辰 今天玩了一整天的ChatGPT,上次为前沿技术而感到兴奋还是看VR电影的时候。尽管ChatGPT的文字表达水平让我想起了很多年前写检讨和憋雅思作文的日子,但AI的指数发展速度会让人对.

CRYP:「储备金证明」引发热议 被视为预防FTX事件的有力措施_BUILD Finance

原文标题:《『ProofofReserves』EmergesasaFavoredWaytoPreventAnotherFTX》原文作者:FrederickMunawa.