UID:
kobvindex_ERBEBC5942290
Format:
1 online resource (432 pages)
Edition:
1
ISBN:
9783960103486
Note:
Intro -- Inhalt -- Vorwort -- Glossar -- Kapitel 1: Was ist Ethereum? -- Vergleich mit Bitcoin -- Komponenten einer Blockchain -- Die Geburt von Ethereum -- Die vier Entwicklungsstufen von Ethereum -- Ethereum: eine Allzweck-Blockchain -- Die Komponenten von Ethereum -- Weiterführende Literatur -- Ethereum und Turing-Vollständigkeit -- Turing-Vollständigkeit als »Feature« -- Auswirkungen der Turing-Vollständigkeit -- Von Allzweck-Blockchains zu dezentralisierten Anwendungen (Decentralized Applications, DApps) -- Das dritte Internetzeitalter -- Ethereums Entwicklungskultur -- Warum Ethereum lernen? -- Was Sie in diesem Buch lernen -- Kapitel 2: Ethereum-Grundlagen -- Ether-Währungseinheiten -- Eine Ethereum-Wallet wählen -- Kontrolle und Verantwortung -- Einführung in MetaMask -- Eine Wallet anlegen -- Netzwerke wechseln -- Test-Ether beschaffen -- Ether aus MetaMask senden -- Die Transaktionshistorie einer Adresse untersuchen -- Der Weltcomputer -- Externally Owned Accounts (EOAs) und Kontrakte -- Ein einfacher Kontrakt: ein Test-Ether-Faucet -- Den Faucet-Kontrakt kompilieren -- Den Kontrakt in der Blockchain registrieren -- Interaktion mit dem Kontrakt -- Die Kontraktadresse in einem Block-Explorer ansehen -- Den Kontrakt finanzieren -- Abhebungen aus unserem Kontrakt -- Fazit -- Kapitel 3: Ethereum-Clients -- Ethereum-Netzwerke -- Soll ich einen Full Node betreiben? -- Vor- und Nachteile eines Full Node -- Vor- und Nachteile eines öffentlichen Testnetzwerks -- Vor- und Nachteile der Simulation einer lokalen Blockchain -- Einen Ethereum-Client betreiben -- Hardwareanforderungen für einen Full Node -- Softwareanforderungen für die Kompilierung und den Betrieb eines Clients (Node) -- Parity -- Go-Ethereum (Geth) -- Die erste Synchronisation Ethereum-basierter Blockchains -- Geth oder Parity ausführen -- Die JSON-RPC-Schnittstelle
,
Entfernte Ethereum-Clients -- Mobile (Smartphone) Wallets -- Browser-Wallets -- Fazit -- Kapitel 4: Kryptografie -- Schlüssel und Adressen -- Public-Key-Kryptografie und Kryptowährungen -- Private Schlüssel -- Generierung eines privaten Schlüssels aus einer Zufallszahl -- Öffentliche Schlüssel -- Kryptografie mit elliptischen Kurven -- Arithmetische Operationen bei elliptischen Kurven -- Einen öffentlichen Schlüssel generieren -- Bibliotheken für elliptische Kurven -- Kryptografische Hashfunktionen -- Ethereums kryptografische Hashfunktion: Keccak-256 -- Welche Hashfunktion nutze ich? -- Ethereum-Adressen -- Ethereum-Adressformate -- Inter Exchange Client Address Protocol -- Hex-Codierung mit Prüfsumme durch Großschreibung (EIP-55) -- Fazit -- Kapitel 5: Wallets -- Übersicht über die Wallet-Technologie -- Nichtdeterministische (zufallsbasierte) Wallets -- Deterministische (Seed-basierte) Wallets -- Hierarchisch-deterministische Wallets (BIP-32/BIP-44) -- Seeds und mnemonische Codes (BIP-39) -- Die Wallet-Best-Practices -- Mnemonische Codewörter (BIP-39) -- Eine HD-Wallet aus dem Seed-Wert erzeugen -- HD-Wallets (BIP-32) und Pfade (BIP-43/44) -- Fazit -- Kapitel 6: Transaktionen -- Die Struktur einer Transaktion -- Die Transaktions-Nonce -- Die Nonces nachhalten -- Lücken in Nonces, doppelte Nonces und Bestätigungen -- Nebenläufigkeit, Transaktionsursprung und Nonces -- Transaktionsgas -- Transaktionsempfänger -- Transaktionswert und -daten -- Mittel an EOAs und Kontrakte senden -- Nutzdaten an EOAs oder Kontrakte senden -- Spezielle Transaktion: Kontrakterzeugung -- Digitale Signaturen -- Elliptic Curve Digital Signature Algorithm -- Wie digitale Signaturen funktionieren -- Die Signatur verifizieren -- Die Mathematik hinter ECDSA -- Signieren von Transaktionen in der Praxis -- Erzeugen/Signieren einer Rohtransaktion
,
Eine Rohtransaktion generieren mit EIP-155 -- Der Signaturpräfixwert (v) und die Public-Key-Recovery -- Trennung von Signierung und Übertragung (Offlinesignierung) -- Propagation von Transaktionen -- Aufzeichnen in der Blockchain -- Multisignatur-Transaktionen (Multisig) -- Fazit -- Kapitel 7: Smart Contracts und Solidity -- Was ist ein Smart Contract? -- Lebenszyklus eines Smart Contract -- Einführung in Ethereum-Hochsprachen -- Smart Contracts mit Solidity entwickeln -- Eine Solidity-Version wählen -- Download und Installation -- Entwicklungsumgebung -- Ein einfaches Solidity-Programm entwickeln -- Kompilieren mit dem Solidity-Compiler (solc) -- Das Ethereum-Kontrakt-ABI -- Wahl einer Solidity-Compiler- und Sprachversion -- Programmieren mit Solidity -- Datentypen -- Vordefinierte globale Variablen und Funktionen -- Kontraktdefinition -- Funktionen -- Kontraktkonstruktor und selfdestruct -- Unser Faucet-Beispiel um einen Konstruktor und selfdestruct erweitern -- Funktionsmodifikatoren -- Kontraktvererbung -- Fehlerbehandlung (assert, require, revert) -- Events -- Andere Kontrakte aufrufen (send, call, callcode, delegatecall) -- Überlegungen zum Gasverbrauch -- Dynamisch dimensionierte Arrays vermeiden -- Aufrufe anderer Kontrakte vermeiden -- Die Gaskosten kalkulieren -- Fazit -- Kapitel 8: Smart Contracts und Vyper -- Sicherheitslücken und Vyper -- Vergleich mit Solidity -- Modifikatoren -- Klassenvererbung -- Inline-Assembler -- Funktionsüberladung -- Variablen-Typecasting -- Vor- und Nachbedingungen -- Dekoratoren -- Funktions- und Variablenanordnung -- Kompilierung -- Schutz vor Überlauffehlern auf Compilerebene -- Daten lesen und schreiben -- Fazit -- Kapitel 9: Sicherheit von Smart Contracts -- Best Practices -- Sicherheitsrisiken und Anti-Pattern -- Reentrancy-Angriffe -- Die Sicherheitslücke -- Präventive Techniken -- Reales Beispiel: DAO
,
Arithmetischer Über-/Unterlauf -- Die Sicherheitslücke -- Präventive Techniken -- Reale Beispiele: PoWHC und Batch Transfer Overflow (CVE-2018-10299) -- Unerwartete Ether -- Die Sicherheitslücke -- Präventive Techniken -- Weitere Beispiele -- DELEGATECALL -- Die Sicherheitslücke -- Präventive Techniken -- Reales Beispiel: Parity Multisig Wallet (zweiter Hack) -- Standardsichtbarkeit -- Die Sicherheitslücke -- Präventive Techniken -- Reales Beispiel: Parity Multisig Wallet (erster Hack) -- Entropie-Illusion -- Die Sicherheitslücke -- Präventive Techniken -- Reales Beispiel: PRNG-Kontrakte -- Referenzierung externer Kontrakte -- Die Sicherheitslücke -- Präventive Techniken -- Reales Beispiel: Reentrancy-Honeypot -- Kurze Adressen/Parameter -- Die Sicherheitslücke -- Präventive Techniken -- Ungeprüfte CALL-Rückgabewerte -- Die Sicherheitslücke -- Präventive Techniken -- Reales Beispiel: Etherpot und King of the Ether -- Race Conditions/Front Running -- Die Sicherheitslücke -- Präventive Techniken -- Reale Beispiele: ERC20 und Bancor -- Denial of Service (DoS) -- Die Sicherheitslücke -- Präventive Techniken -- Reales Beispiel: GovernMental -- Manipulation der Blockzeitstempel -- Die Sicherheitslücke -- Präventive Techniken -- Reales Beispiel: GovernMental -- Konstruktoren -- Die Sicherheitslücke -- Präventive Techniken -- Reales Beispiel: Rubixi -- Nicht initialisierte Zeiger auf Speicher -- Die Sicherheitslücke -- Präventive Techniken -- Reale Beispiele: OpenAddressLottery- und CryptoRoulette-Honeypot -- Fließkomma und Genauigkeit -- Die Sicherheitslücke -- Präventive Techniken -- Reales Beispiel: Ethstick -- Tx.Origin-Authentifizierung -- Die Sicherheitslücke -- Präventive Techniken -- Kontraktbibliotheken -- Fazit -- Kapitel 10: Tokens -- Wie Tokens genutzt werden -- Tokens und Fungibilität -- Kontrahentenrisiko -- Tokens und »Wesenhaftigkeit«
,
Tokens nutzen: Utility oder Equity -- Ententest -- Utility-Tokens: Wer braucht sie? -- Tokens bei Ethereum -- Der ERC20-Token-Standard -- Ein eigenes ERC20-Token ausgeben -- Probleme mit ERC20-Tokens -- ERC223: ein vorgeschlagener Schnittstellenstandard für Token-Kontrakte -- ERC777: ein vorgeschlagener Schnittstellenstandard für Token-Kontrakte -- ERC721: Standard für nicht fungible Tokens (Deeds) -- Token-Standards nutzen -- Was sind Token-Standards? Was ist deren Zweck? -- Sollte man diese Standards nutzen? -- Sicherheit durch Reife -- Erweiterungen von Token-Interface-Standards -- Tokens und ICOs -- Fazit -- Kapitel 11: Orakel -- Warum Orakel benötigt werden -- Anwendungsfälle und Beispiele -- Entwurfsmuster für Orakel -- Datenauthentifizierung -- Rechnende Orakel -- Dezentralisierte Orakel -- Orakel-Clientschnittstellen in Solidity -- Fazit -- Kapitel 12: Dezentralisierte Anwendungen (DApps) -- Was ist eine DApp? -- Backend (Smart Contract) -- Frontend (Web-Nutzerschnittstelle) -- Datenspeicher -- Dezentralisierte Nachrichtenkommunikationsprotokolle -- Ein einfaches DApp-Beispiel: Auktions-DApp -- Auktions-DApp: Backend-Smart-Contracts -- Auktions-DApp: Frontend-Nutzerschnittstelle -- Weitere Dezentralisierung der Auktions-DApp -- Die Auktions-DApp in Swarm speichern -- Swarm vorbereiten -- Dateien in Swarm hochladen -- Der Ethereum-Nameservice (ENS) -- Geschichte des Ethereum-Nameservice -- Die ENS-Spezifikation -- Untere Schicht: Namenseigner und Resolver -- Mittlere Schicht: die .eth-Nodes -- Oberste Schicht: die Deeds -- Einen Namen registrieren -- Den ENS-Namen verwalten -- ENS-Resolver -- Einen Namen in einen Swarm-Hash (Inhalt) auflösen -- Von der App zur DApp -- Fazit -- Kapitel 13: Die Ethereum Virtual Machine -- Was ist die EVM? -- Vergleich mit existierender Technologie -- Der EVM-Befehlssatz (Bytecode-Operationen) -- Ethereum-Zustand
,
Solidity in EVM-Bytecode kompilieren
Additional Edition:
Print version: Antonopoulos, Andreas M. Ethereum – Grundlagen und Programmierung Heidelberg : o'Reilly,c2019 ISBN 9783960091103
Keywords:
Electronic books.
URL:
https://ebookcentral.proquest.com/lib/th-brandenburg/detail.action?docID=5942290
Bookmarklink