Während ich das schreibe, sitze ich im Londoner Büro und überlee, wie ich Ihnen einen guten Überblick über die Arbeit geben kann, die wir geleistet haben, um die Protokolle, Kunden und P2P-Netzwerke von Ethereum zu sichern. Wie Sie sich vielleicht erinnern, bin ich Ende letzten Jahres dem Ethereum -Team beigetreten, um das Sicherheitsaudit zu verwalten. Als der Frühling vergangen ist und der Sommer ankam und inzwischen mehrere Audits abgeschlossen haben, ist es jetzt eine gute Zeit für mich, einige Ergebnisse aus der Inspektion des Maschinenraums des World Computers zu teilen. 😉
So viel ist klar, ebenso wie die Lieferung der Kunden ein ausführlicher Produktentwicklungsprozess, es ist eine aufregende, aber stark komplexe Forschungsanstrengung. Letzteres ist der Grund, warum selbst der beste geplante Entwicklungsplan geändert werden kann, da wir mehr über unsere Problemdomäne erfahren.
Das Sicherheitsaudit begann Ende letzten Jahres mit der Entwicklung einer allgemeinen Strategie zur Gewährleistung der maximalen Sicherheit für Ethereum. Wie Sie wissen, haben wir eher einen sicherheitsorientierten als einen Zeitplanentwicklungsprozess. In diesem Sinne haben wir einen mehrstufigen Audit-Ansatz zusammengestellt, der aus:
- Analysen der neuen Protokolle und Algorithmen etablierter Blockchain -Forscher und Spezial -Software -Sicherheitsunternehmen
- End-to-End-Prüfung von Protokollen und Implementierung durch eine erstklassige Expertensicherheitsberatung (GO, gefolgt von C ++ und einer grundlegenden Prüfung für den Python-Kunden des Bildungsbereichs) sowie eine grundlegende Prüfung
- Der Bug Bounty -Programm.
Die Analysen der neuen Protokolle und Algorithmen umfassten Themen wie die Sicherheit von:
- Die Gasökonomie
- Der neu entwickelte asic-resistente Beweis für das Arbeitspuzzle sowie
- Die wirtschaftliche Anreize von Bergbauknoten.
Die Prüfungskomponente „Crowd-Sourcing“ begann zusammen mit unserem Bug Bounty-Programm um Weihnachten. Wir hatten eine 11-stellige Satoshi-Betrag beiseite gelegt, um Menschen zu belohnen, die Fehler in unserem Code gefunden haben. Wir haben sehr hohe Qualität gesehen Einreichungen zu unserem Bug Bounty -Programm und Jäger erhielten entsprechende Belohnungen. Das Bug Bounty -Programm läuft noch und wir benötigen weitere Einsendungen, um das zugewiesene Budget zu verbrauchen …
Das erste große Sicherheitsaudit (die die Gasökonomie und das POW -Puzzle) durch die am wenigsten Behörde für die Sicherheitsberatung wurde im Januar begonnen und dauerte bis zum Ende des Winters. Wir sind sehr froh, dass wir den meisten unserer externen Prüfer zustimmen, dass diese Prüfungsberichte öffentlich verfügbar sein werden, sobald die Prüfungsarbeiten und die Festlegung der Ergebnisse abgeschlossen sind. Zusammen mit diesem Blog -Beitrag freuen wir uns, die geringste Autorität vorzustellen Prüfungsbericht und begleitet Blog -Beitrag. Darüber hinaus enthält der Bericht hilfreiche Empfehlungen für ðApp -Entwickler, um die sichere Gestaltung und Bereitstellung von Verträgen sicherzustellen. Wir erwarten, weitere Berichte zu veröffentlichen, sobald sie verfügbar sind.
Zu Beginn des Jahres haben wir auch ein weiteres Software -Sicherheitsunternehmen engagiert, um die Abdeckung der GO -Implementierung zu prüfen. Angesichts der erhöhten Sicherheit, die mit mehreren Kunden einhergeht und wie GAV in seinem vorherigen Beitrag erwähnt hat, haben wir uns auch entschlossen, dem Python- und C ++ – Audit ab Anfang Juli ein leichtes Sicherheitsaudit zu geben. Der C ++ – Code erhält gleich danach eine vollständige Prüfung Unser Ziel bei diesem Ansatz ist es, während des Veröffentlichungsprozesses einige verfügbare geprüfte Kunden so früh wie möglich sicherzustellen.
Wir haben dieses umfassendste Audit für den GO-Kunden, auch bekannt als “End-to-End-Audit”, im Februar mit einem einwöchigen Workshop gestartet, auf dem wochenlang regelmäßige Check-in-Anrufe und wöchentliche Prüfungsberichte gefolgt werden. Das Audit wurde in einen umfassenden Prozess für Fehlerverfolgung und Behebung, Verwaltung und gründliche Verfahren eingebettet auf GitHub verfolgt durch Gustav mit Christoph und Dimitry codieren die entsprechenden erforderlichen Tests.
Wie der Name schon sagt, wurde das End-to-End-Audit um „alles“ abdeckt (von der Vernetzung zum Ethereum-VM bis zur Synchronisierung von Schicht mit POW), so dass mindestens ein Auditor die verschiedenen Kernschichten von Ethereum überprüft hätte. Einer der Berater hat kürzlich die Situation ziemlich prägnant zusammengefasst: „Um ehrlich zu sein, sind die Testbedürfnisse von Ethereum komplexer als alles, was ich zuvor angesehen habe.“ Wie Gav in seinem berichtete Letzter Blog -BeitragAufgrund der wesentlichen Änderungen in der Netzwerk- und Synchronisierungsstrategie haben wir uns schließlich beschlossen, weitere Prüfungsarbeiten für Go zu beauftragen – die wir diese Woche fertigstellen. Der Anpfiff für das End-to-End-C ++-und die grundlegenden Python-Audits findet jetzt statt.
Die Prüfung funktioniert mit anschließenden Fehlerfixierungs- und Regressionstests sowie zugehöriger Refactoring und Neugestaltung (von Networking- und Synchronisierungsschicht) den größten Teil der Arbeit, die die Entwickler derzeit beschäftigt. Ebenso sind die Festlegung von Befunden, Neugestaltung und Regressionstests der Grund für die Verzögerung der Lieferung. Darüber hinaus hat die olympische Testphase uns in verschiedenen Szenarien wie langsame Verbindungen, schlechte Kollegen, ungerade verhaltensfreie Kollegen und veraltete Kollegen viel über die Resilienz beigebracht. Die bisher größte Herausforderung war es, sich von Gabeln zu erholen und sich zu erholen. Wir haben viel aus den Wiederherstellungsversuchen in Bezug auf die erforderlichen Prozesse gelernt, wenn es um die Art von Szenarien und Vorfällen geht.
Es ist möglicherweise nicht überraschend, dass die verschiedenen Audits erhebliche Ausgaben darstellen – und wir denken, dass Geld, das nicht besser investiert werden könnte.
Wenn wir uns der Freigabe nähern, sind Sicherheit und Zuverlässigkeit in unseren Köpfen zunehmend am Obersten, insbesondere angesichts der Handvoll kritischer Probleme in der olympischen Testveröffentlichung. Wir sind sehr dankbar für die Begeisterung und die gründliche Arbeit, die alle Prüfer bisher geleistet haben. Ihre Arbeit hat uns geholfen, die Spezifikation im gelben Papier zu schärfen und Mehrdeutigkeiten auszuräumen und mehrere subtile Probleme zu beheben, und sie halfen bei der Identifizierung einer Reihe von Implementierungsfehler.

