반응형
📔 ENS(Ethereum Name Service)
ENS란?
- 2017년 Nick Johnson이 출시한 Ethereum Name Service
- 복잡한 영어 + 숫자 블록체인 주소를 사람이 읽을 수 있는 형식으로 변환하는 서비스(0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045→vitalik.eth)
- DNS 가 그랬던 것처럼 기억하기 쉽기 때문에, ENS는 암호화폐 거래의 접근성을 향상시킴
- ENS 주소는 ERC-721 토큰 표준을 사용하여 NFT로 발행 → 거래소에서 거래 가능
ENS 작동 원리
- 두 가지 이더리움 Smart Contract를 기반으로 구축 → ENS Registry, Resolver
- ENS 컨트랙트 Github 주소: https://github.com/ensdomains/ens-contracts
ENS Registry
- 모든 도메인 및 서브도메인 소유권 정보를 저장하는 스마트 컨트랙트
- 도메인 소유자, 확인자, 도메인 아래 모든 레코드의 캐싱 시간을 유지 관리
- 주요 인터페이스
- owner(bytes32 node): 특정 노드(도메인)의 소유자 주소를 반환
- resolver(bytes32 node): 특정 노드의 resolver 주소를 반환
- setOwner(bytes32 node, address owner): 노드의 소유자를 변경
- setResolver(bytes32 node, address resolver): 노드의 resolver를 설정
- setTTL(bytes32 node, uint64 ttl): 노드의 TTL 값을 설정
Resolver
- 사람이 읽을 수 있는 도메인 주소를 기계가 읽을 수 있는 주소로 변환하거나, 기계가 읽을 수 있는 주소를 사람이 읽을 수 있는 주소로 변환하는 역할
- 주요 인터페이스
- addr(bytes32 node): 노드에 매핑된 이더리움 주소를 반환
- setAddr(bytes32 node, address addr): 노드에 이더리움 주소를 설정
- text(bytes32 node, string key): 노드에 매핑된 텍스트 레코드를 반환
- setText(bytes32 node, string key, string value): 노드에 텍스트 레코드를 설정
ENS 작동 예시
- 도메인 등록: alice.eth 를 등록하기 위해 Alice는 Registrar 에 등록 요청을 한다.
- 소유권 설정: 등록이 완료되면, 레지스트리에 alice.eth 도메인의 소유자가 Alice 의 주소로 설정된다.
- Resolver 설정: Alice는 Resolver를 설정하여 alice.eth 도메인이 자신의 이더리움 주소 ‘0x1234…’ 로 매핑 되도록 한다.
- 도메인 해석: Bob이 alice.eth 로 이더를 송금하려고 . 할 때 ENS 레지스트리에서 ‘alice.eth’ 의 resolver 주소를 가져오고, 해당 resolver에서 이더리움 주소‘0x1234…’ 를 반환한다.
- 트랜잭션: Bob의 트랜잭션은 최종적으로 ‘0x1234…’ 주소로 송금된다.
도메인 해싱
- ENS는 도메인 이름을 해싱하여 저장하는데, 이 때 namehash 알고리즘이 사용
- Namehash는 도메인 이름의 계층적 구조를 유지하면서, 도메인 이름을 해시값으로 변환
- 계산 과정
- 초기 값 설정: 빈 문자열의 해시 값은 0x0 으로 시작
- 도메인 분리: mynam.eth 를 분리하면 [”myname”, “eth”] 가 된다.
- 레이블 해싱 및 결합: 각 레이블을 오른쪽에서 왼쪽으로 처리하면서 해싱하고 결합
- 실제 계산 과정 (해시 알고리즘으로 keccak256 을 사용)
- eth 레이블의 해시값 계산: keccak256(”eth”)
- myname 레이블의 해시값 계산: keccak256(0x0 + keccak256(”eth”))
- 최종 도메인 해시값 계산: keccak256(keccak256(0x0 + keccak256(”eth”))+keccak256(”myname”))
Reference
https://plisio.net/ko/blog/what-is-the-ethereum-name-service-ens
https://www.btcc.com/ko-KR/academy/crypto-basics/what-is-ens
반응형
'블록체인 > 블록체인이란?' 카테고리의 다른 글
TON 블록체인이 왜 주목받을까? (0) | 2024.06.07 |
---|---|
Keccak256의 작동 원리 (0) | 2024.05.23 |
ERC-6551, Token Bound Account (0) | 2024.05.17 |
ERC1155 란 무엇일까?! 스마트 컨트랙트 코드로 이해해보기. (0) | 2022.09.12 |
인적 문제로 발생할 수 있는 블록체인의 보안적 이슈, 크립토재킹 & 더스팅 공격 & 시빌 공격 (0) | 2022.08.05 |
댓글