일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- multicall
- ethers
- 컨트렉트 동일한 함수이름 호출
- ethers type
- 컨트렉트 배포 자동화
- vue기초
- ethers typescript
- 체인의정석
- nest.js설명
- SBT표준
- 스마트컨트렉트 예약어 함수이름 중복
- rust 기초
- 러스트 기초
- 프록시배포구조
- 스마트컨트렉트프록시
- 러스트기초
- ethers v6
- 티스토리챌린지
- Vue
- 오블완
- ethers websocket
- ambiguous function description
- chainlink 설명
- 스마트컨트렉트테스트
- 러스트 기초 학습
- git rebase
- 머신러닝기초
- 스마트컨트렉트 함수이름 중복 호출
- Vue.js
- 스마트 컨트렉트 함수이름 중복
- Today
- Total
체인의정석
ENS 살펴보기 - 공식문서 살펴보기 본문
출처 : https://docs.ens.domains/
ENS의 2개 포인트 Register과 Resolver
ENS의 경우 크게 Registry와 Resolver 2개로 나뉜다고 한다.
ENS는 도메인과 sub도메인으로 이루어져 있으며 다음 3가지 요소가 핵심이라고 한다.
1. 도메인의 Owner
2. 도메인의 Resolver
3. 해당 도메인의 캐싱 시간
도메인의 Owner
도메인의 Owner는 다음 3가지 특징을 가진다고 한다.
1. 도메인에 대한 확인자 및 TTL 설정
2. 도메인의 소유권을 다른 주소로 이전
3. 하위 도메인의 소유권 변경
ENS 레지스트리는 의도적으로 단순하며 이름에서 해당 이름을 담당하는 확인자로 매핑하기 위해서만 존재합니다.
이름을 주소로 변환하는 실제 프로세스는 리졸버가 담당합니다. 관련 표준을 구현하는 모든 컨트랙트는 ENS에서 리졸버 역할을 할 수 있습니다. 자주 변경되지 않는 이름 주소를 제공하는 등 요구사항이 간단한 사용자를 위해 범용 확인자 구현이 제공됩니다.
각 레코드 유형(암호화폐 주소, IPFS 콘텐츠 해시 등)은 해당 종류의 레코드를 제공하기 위해 확인자가 구현해야 하는 메서드를 하나 이상 정의합니다. 새로운 레코드 유형은 EIP 표준화 프로세스를 통해 언제든지 정의할 수 있으며, 이를 지원하기 위해 ENS 레지스트리나 기존 리졸버를 변경할 필요가 없습니다.
ENS에서 이름을 확인하는 과정은 2단계로 이루어집니다: 먼저 레지스트리에 해당 이름을 담당하는 리졸버를 요청하고, 두 번째로 해당 리졸버에게 쿼리에 대한 답변을 요청합니다.
위의 예시에서는 'foo.eth'가 가리키는 이더리움 주소를 찾으려고 합니다. 먼저 레지스트리에 'foo.eth'를 담당하는 리졸버를 요청합니다. 그런 다음 해당 확인자에게 'foo.eth'의 주소를 쿼리합니다.
---- ENS 공식 docs 단순번역 ----
개인 요약 => ENS에서는 역할이 크게 Resolver와 Registry2개로 나뉜다. ENS Reigstery에서는 Resolver의 주소를 조회하는 것이고 여기서 조회된 주소를 Resolver에 요청을 해야 실제 유저의 주소를 받아올 수 있는 구조가 되는 것이다.
Namehash 네임 해시
스마트 컨트랙트의 리소스 제약으로 인해 사람이 읽을 수 있는 이름과 직접 상호 작용하는 것은 비효율적이므로 ENS는 고정 길이 256비트 암호화 해시로만 작동합니다. 계층적 속성을 유지하면서 이름에서 해시를 도출하기 위해 네임해시라는 프로세스가 사용됩니다.
예를 들어, 'alice.eth'의 네임해시는 0x787192fc5378cc32aa956ddfdedbf26b24e8d78e40109add0eea2c1a012c3dec이며, 이는 ENS 내부에서만 사용되는 이름의 표현입니다.
네임해시는 유효한 도메인 이름에 대해 고유한 해시를 생성할 수 있는 재귀적 프로세스입니다. 사람이 읽을 수 있는 원래 이름을 알거나 처리할 필요 없이 모든 도메인의 네임해시(예: 'alice.eth')로 시작하여 모든 하위 도메인의 네임해시(예: 'iahttp://m.alice.eth')를 도출할 수 있습니다. 이러한 특성 덕분에 ENS는 내부적으로 사람이 읽을 수 있는 텍스트 문자열을 처리할 필요 없이 계층 시스템을 제공할 수 있습니다. 네임해시로 해시되기 전에 먼저 UTS-46 정규화라는 프로세스를 사용하여 이름을 정규화합니다. 이렇게 하면 대문자와 소문자 이름이 동등하게 취급되고 유효하지 않은 문자가 금지됩니다. 이름을 해시하고 확인하는 모든 것은 먼저 정규화해야 모든 사용자가 일관된 ENS를 볼 수 있습니다.
개인 요약 => ENS에서 내부적으로는 256비트 암호화 해시로만 작동하며 최상위 도메인의 네임해시로 하위 도메인의 네임해시를 도출할 수 있다. 또한 UTS-46 정규화라는 프로세스를 통해 정규화 하여 대소문자 구분 및 유효한 문자만 걸러낸 후에 일관된 ENS를 사용한다.
용어
관리자:
네임의 기록을 수정할 수 있는 계정입니다. 컨트롤러는 등록자 또는 컨트롤러가 변경할 수 있습니다.
레이블:
- 레이블: 이름의 개별 구성 요소(예: 'alice').
- 레이블 해시: 개별 레이블의 keccak256 해시입니다.
이름: 'alice.eth'와 같은 ENS 식별자입니다. 이름은 점으로 구분된 레이블이라고 하는 여러 부분으로 구성될 수 있습니다.
이름 해시: ENS 이름을 처리하고 해당 이름을 고유하게 식별하는 암호화 해시를 반환하는 데 사용되는 알고리즘입니다. 네임해시는 이름을 입력으로 받아 노드를 생성합니다.
노드:
- 노드: 이름을 고유하게 식별하는 암호화 해시입니다.
- 소유자: 이름의 소유자는 ENS 레지스트리의 소유자 필드에 참조된 엔티티입니다. 소유자는 소유권을 이전하고, 리졸버 또는 TTL을 설정하고, 하위 도메인을 만들거나 재할당할 수 있습니다.
'블록체인 > NFT & BRIDGE' 카테고리의 다른 글
ERC7638 - 크로스체인 전송 규격 (0) | 2024.04.22 |
---|---|
ENS Namehash 만들고 Namehash로 컨트렉트에서 실제 지갑주소 뽑아보기 (0) | 2023.11.27 |
IPFS에 데이터 올리는 방법 (0) | 2023.10.19 |
Chainlink functions 사용해보기 (0) | 2023.10.13 |
SBT와 관련된 표준 ERC 정리) ERC-6239: Semantic Soulbound Tokens (0) | 2023.09.16 |