
BlockChain Security Construction
In diesem Artikel stellen wir hauptsächlich mehrere Aspekte des Public-Chain-Audits vor, die Beachtung verdienen. Für Sicherheitsauditoren und Public-Chain-Entwickler ist dies ein Projekt, das als Referenz und Denkanstoß dienen kann.
Bevor wir den Aufbau des Public-Chain-Systems vorstellen, werfen wir einen Blick auf die Architektur der Blockchain:
Blockchain-1.0-Ära:
Architektur: wie in der folgenden Abbildung dargestellt
Repräsentative Produkte: bitcoin, reborn coin, dogcoin, Leyte coin, MasterCard coin usw.

Blockchain-2.0-Ära:
Architektur: wie in der folgenden Abbildung dargestellt
Repräsentative Produkte: Ethereum, lisk, hyperledger usw.
Wesentliche Änderungen:

Blockchain-2.0-Ära
Architektur: wie in der folgenden Abbildung dargestellt
Repräsentative Produkte: EOS, VaR, AE, ash, ELA, dfinity
Wesentliche Änderungen: Die Anwendungsszenarien der Blockchain in allen Lebensbereichen außerhalb der Finanzbranche können komplexere Geschäftslogik abdecken

Im Folgenden geben wir eine kurze Einführung in die Probleme, die beim Sicherheitsaufbau der Blockchain-Public-Chain gemäß der Architektur der Blockchain Beachtung verdienen. Etwa 75 % der Probleme haben Sicherheitsprobleme bei Public Chains verursacht; dies sind auch einige Punkte, die beim Public-Chain-Sicherheitsaudit Beachtung verdienen. Hier stellen wir sie in Form von Fragen dar, um zum Nachdenken anzuregen. Wenn Sie eine weitere Diskussion wünschen, können Sie dies direkt im Issue tun:
Die Datenschicht ist die Basistechnologie; ihre Hauptfunktionen sind Datenspeicherung, Konten- und Transaktionsimplementierung sowie Sicherheit. Die Datenspeicherung basiert hauptsächlich auf dem Merkle-Baum, der durch die Block- und Kettenstruktur realisiert wird. Die meisten davon werden durch KV-Datenbanken persistent gespeichert, wie z. B. bitcoin und das von Ethereum verwendete leveldb.
Zur Datenschicht sind folgende Punkte bedenkenswert:
Der Hauptzweck der Netzwerkschicht besteht darin, den Informationsaustausch zwischen den Knoten des Blockchain-Netzwerks zu ermöglichen. Das Wesen der Blockchain ist ein Peer-to-Peer-Netzwerk (P2P). Jeder Knoten kann Informationen empfangen und auch selbst Informationen erzeugen. Die Knoten halten die Kommunikation aufrecht, indem sie eine gemeinsame Blockchain pflegen. Im Blockchain-Netzwerk kann jeder Knoten einen neuen Block erstellen. Nachdem der neue Block erstellt wurde, werden die anderen Knoten per Broadcast benachrichtigt. Die anderen Knoten überprüfen den Knoten wiederum. Wenn mehr als 51 % der Nutzer im Blockchain-Netzwerk die Überprüfung bestehen, wird der neue Block zur Hauptkette hinzugefügt.
Zur Netzwerkschicht sind mehrere Punkte bedenkenswert:
Ist das Design des Node-Discovery-Algorithmus der Public Chain sinnvoll?
Ist das Design der Public-Chain-Knoten sinnvoll?
Ist das Design des Bestrafungsmechanismus sinnvoll?
Ist das Design des Kommunikationsprotokolls sinnvoll?
Ist das Design der Anfrageverarbeitung der Public-Chain-Knoten sinnvoll?
Gibt es eine Begrenzung der Paketgröße bei der Anfrageverarbeitung?
Ist das Design des Transaktionskommunikationsmechanismus der Public Chain sinnvoll?
Ist der Synchronisationsmechanismus der Blockdaten sinnvoll?
Ist das Logikdesign der Transaktionsverarbeitung sinnvoll?
Die Konsensschicht ermöglicht es stark verteilten Knoten, in einem dezentralen System einen Konsens über die Gültigkeit von Blockdaten zu erzielen. Jede laufende Blockchain benötigt einen Konsensalgorithmus, um die Gültigkeit und Reihenfolge der Blockausgabe sicherzustellen. Zu den gängigen Konsensalgorithmen gehören pow, POS, dpos, Poa, POC usw.
Auf Konsensebene sollten wir folgende Punkte bedenken:
Ist das Design des Public-Chain-Konsensalgorithmus sicher?
Ist das Design der Public-Chain-Konsensprüfung sinnvoll?
Ist das Design des Konsens-Slashing (Forfeiture) der Public Chain sinnvoll?
Ist das Design der Public-Chain-Servicegebühr sinnvoll?
Ist das Design des Public-Chain-Minings sinnvoll?
Ist das Design der dynamischen Anpassung der Blockschwierigkeit sinnvoll?
Ist das Logikdesign der Prüfung der Blockschwierigkeit sinnvoll?
Design von Kettenreorganisation, Ketten-Reset, Kettenverzweigung usw.?
Der Zweck der Anreizschicht der Public Chain besteht darin, bestimmte Anreizmaßnahmen bereitzustellen, um Knoten zur Teilnahme an der Sicherheitsprüfung der Blockchain zu ermutigen und das Gleichgewicht sowie die gesunde Entwicklung des Blockchain-Ökosystems sicherzustellen. In der dezentralen Public Chain ist es notwendig, einen entsprechenden Anreizmechanismus einzurichten, um die teilnehmenden Buchungsknoten zu belohnen, die die Regeln einhalten, sowie einen Bestrafungsmechanismus zu etablieren, um teilnehmende Buchungsknoten zu bestrafen, die die Regeln nicht einhalten. Die Anreizschicht der Blockchain führt wirtschaftliche Faktoren in das Blockchain-Technologiesystem ein, was die Effizienz der organisatorischen Zusammenarbeit und des Wertaustauschs innerhalb des Ökosystems verbessert. Der Anreizmechanismus der Public Chain ist ein wichtiger Mechanismus, um die positive Entwicklung der Blockchain sicherzustellen.
Zur Anreizebene gibt es mehrere Punkte, die wir bedenken sollten:
Ist das Design des Public-Chain-Emissionsmechanismus sinnvoll?
Ist das Design des Public-Chain-Bestrafungsmechanismus sinnvoll?