ENS-Doku

ENS-Doku
Photo by Shubham Dhage / Unsplash

ENS-Dokumentation: Ein umfassender Leitfaden

Das Ethereum Name Service (ENS) ist ein dezentrales Namenssystem, das auf der Ethereum-Blockchain aufgebaut ist. Es ermöglicht Benutzern, menschenlesbare Namen wie „beispiel.eth“ auf maschinenlesbare Identifikatoren wie Ethereum-Adressen, Inhalts-Hashes und Metadaten abzubilden. Diese Dokumentation bietet eine detaillierte Erklärung von ENS, seiner Funktionsweise und seiner Schlüsselkomponenten, basierend auf den Informationen von https://docs.ens.domains/.


1. Einführung in ENS

Was ist ENS?

ENS ist ein dezentrales System, das es Benutzern ermöglicht, leicht merkfähige Namen anstelle langer, komplexer Blockchain-Adressen zu verwenden. Es funktioniert ähnlich wie das Domain Name System (DNS) des traditionellen Internets, ist jedoch auf der Ethereum-Blockchain implementiert. Diese Dezentralisierung bedeutet, dass keine zentrale Behörde das System kontrolliert, was es sicherer und widerstandsfähiger gegen Zensur macht.

Vorteile von ENS

  • Benutzerfreundlichkeit: Ersetzt kryptische Adressen wie „0x123...abc“ durch einfache Namen wie „beispiel.eth“.
  • Dezentralisierung: Kein zentraler Kontrollpunkt, was Manipulation erschwert.
  • Vielseitigkeit: Unterstützt verschiedene Ressourcen wie Adressen, Inhalts-Hashes (z. B. IPFS) und Textdatensätze (z. B. E-Mail-Adressen).

Vergleich mit DNS

Während DNS zentral gesteuert wird, läuft ENS auf der Blockchain und nutzt Smart Contracts. Dadurch ist es unabhängig von traditionellen Servern und bietet eine höhere Resistenz gegen Angriffe oder Abschaltungen.


2. Wie ENS funktioniert

Domain-Hierarchie

ENS verwendet ein hierarchisches System von durch Punkte getrennten Namen, genannt Domains. Zum Beispiel:

  • „beispiel.eth“ ist eine Domain.
  • „subdomain.beispiel.eth“ ist eine Unterdomain von „beispiel.eth“.
  • „.eth“ ist die Top-Level-Domain (TLD).

Die Struktur ähnelt einem Baum, wobei die Root-Domain („.“) an der Spitze steht und Subdomains von ihren übergeordneten Domains verwaltet werden.

Nodes und Namehash

Jede Domain wird intern durch einen 32-Byte-Hash, genannt Node, repräsentiert. Dieser wird mit dem Namehash-Algorithmus erzeugt, der später detailliert beschrieben wird. Der Node dient als eindeutige Kennung für jede Domain im ENS-System.

Auflösungsprozess

Um einen Namen wie „beispiel.eth“ aufzulösen:

  1. Der Benutzer fragt das ENS-Register nach dem Resolver für den Node der Domain.
  2. Der Resolver wird abgefragt und liefert die gewünschte Ressource, z. B. eine Ethereum-Adresse.

3. Das ENS-Register

Das ENS-Register ist der zentrale Smart Contract, der alle Domains und deren Metadaten speichert. Es enthält für jede Domain folgende Informationen:

  • Eigentümer: Die Adresse, die die Domain kontrolliert.
  • Resolver: Der Smart Contract, der die Auflösung der Domain übernimmt.
  • TTL (Time to Live): Die Dauer, für die die Datensätze zwischengespeichert werden können.

Funktionen des Registers

  • Eigentümerschaft ändern: Der aktuelle Eigentümer kann die Domain an eine andere Adresse übertragen.
  • Resolver festlegen: Bestimmt, welcher Resolver für die Auflösung zuständig ist.
  • Subdomains erstellen: Eigentümer können Subdomains (z. B. „shop.beispiel.eth“) erstellen und verwalten.

4. Resolver

Resolver sind Smart Contracts, die Namen in Ressourcen übersetzen. Sie sind das Bindeglied zwischen dem Register und den tatsächlichen Daten, die ein Benutzer sucht.

Arten von Resolvers

  • Öffentlicher Resolver: Von ENS bereitgestellt, unterstützt Standard-Datensätze wie:
    • Ethereum-Adressen
    • Inhalts-Hashes (z. B. IPFS, Swarm)
    • Textdatensätze (z. B. URLs, E-Mails)
  • Benutzerdefinierte Resolver: Benutzer können eigene Resolver erstellen, um spezialisierte Funktionen zu unterstützen.

Funktionsweise

Wenn ein Name aufgelöst wird, leitet das Register den Benutzer an den zugewiesenen Resolver weiter, der dann die entsprechenden Informationen liefert.


5. Registrare

Registrare sind Smart Contracts, die Top-Level-Domains (TLDs) besitzen und die Vergabe von Subdomains regeln.

Beispiel: .eth Registrar

Die TLD „.eth“ verwendet ein Vickrey-Auktionssystem:

  • Benutzer bieten auf einen Namen (z. B. „beispiel.eth“).
  • Der Höchstbietende gewinnt, zahlt aber den zweithöchsten Gebotsbetrag.
  • Nach der Registrierung gehört der Name dem Eigentümer, der ihn im Register konfigurieren kann.

Andere TLDs

  • .test: Für Testzwecke, ermöglicht temporäre Registrierungen.
  • Weitere TLDs können von anderen Registrar-Verträgen verwaltet werden.

6. Der Namehash-Algorithmus

Der Namehash-Algorithmus wandelt menschenlesbare Namen in 32-Byte-Hashes um, die ENS intern verwendet. Er arbeitet rekursiv:

Schritt-für-Schritt-Beispiel für „beispiel.eth“

  1. Starte mit der TLD „eth“:
    • hash("eth") = keccak256("eth")
  2. Füge die nächste Bezeichnung „beispiel“ hinzu:
    • hash("beispiel.eth") = keccak256("beispiel" + hash("eth"))
  3. Das Ergebnis ist der Node von „beispiel.eth“.

Dieser Prozess stellt sicher, dass jeder Name eine eindeutige, festgelegte Kennung erhält.


7. Reverse Resolution

Die Reverse Resolution ermöglicht es, den Namen zu einer Ethereum-Adresse zu finden. Dies geschieht über die spezielle Domain „addr.reverse“.

Beispiel

  • Adresse: 0x123...abc
  • Reverse-Domain: 123abc.addr.reverse
  • Der Eigentümer dieser Adresse kann einen Namen (z. B. „beispiel.eth“) setzen, der dann bei Abfragen angezeigt wird.

Nutzen

Wallets und Anwendungen können Namen statt Adressen anzeigen, was die Benutzerfreundlichkeit erhöht.


8. DNS-Integration

ENS erlaubt die Integration von traditionellen DNS-Namen über DNSSEC (Domain Name System Security Extensions). Benutzer können ihre bestehenden Domains (z. B. „example.com“) in ENS importieren, indem sie den Besitz kryptografisch nachweisen.

Vorteile

  • Bestehende DNS-Namen können mit Blockchain-Anwendungen verknüpft werden.
  • Erhöhte Kompatibilität zwischen Web2 und Web3.

9. Sicherheitsaspekte

ENS ist sicherheitsorientiert designed:

  • Kryptografische Sicherheit: Verwendung von Hashing (z. B. keccak256) und Signaturen zur Sicherung der Datenintegrität.
  • Dezentralisierung: Kein Single Point of Failure, da das System auf der Blockchain läuft.
  • Angriffsresistenz: Schutz vor Manipulation durch die verteilte Natur des Netzwerks.

Empfehlungen für Benutzer

  • Private Schlüssel sicher aufbewahren.
  • Domain-Informationen vor Interaktion überprüfen.

Schlussfolgerung

Das Ethereum Name Service (ENS) ist ein essenzielles Werkzeug, um die Ethereum-Blockchain zugänglicher zu machen. Es bietet eine dezentrale, sichere und flexible Lösung für die Namensverwaltung, die von einfachen Adresszuordnungen bis hin zu komplexen dezentralen Anwendungen reicht. Diese Dokumentation bietet einen umfassenden Überblick über ENS, seine Funktionsweise und seine Komponenten, um Entwicklern und Benutzern den Einstieg zu erleichtern.

Für weitere Details besuchen Sie die offizielle ENS-Dokumentation unter https://docs.ens.domains/.