Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
BlockChainConstruction — BlockChain Security Construction | Kitploit
Strumenti/GitHubGitHub/al1ex/blockchainconstruction
Vulnerability AnalysisCode AnalysisNetwork SecurityCryptographyLearning & EducationCurated Resources
GitHubal1ex/blockchainconstruction

BlockChainConstruction

BlockChain Security Construction

Vedi Repository
315 anni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Prefazione

In questo articolo introduciamo principalmente diversi aspetti dell'audit delle public chain che meritano attenzione. Per gli auditor di sicurezza e gli sviluppatori di public chain, questo è un progetto degno di riferimento e di riflessione.

Architettura

Prima di introdurre la costruzione del sistema di public chain, diamo un'occhiata all'architettura della blockchain:

Era Blockchain 1.0:

Architettura: come mostrato nella figura sottostante

Prodotti rappresentativi: bitcoin, reborn coin, dogcoin, Leyte coin, MasterCard coin, ecc.

blockchain

Era Blockchain 2.0:

Architettura: come mostrato nella figura sottostante

Prodotti rappresentativi: Ethereum, lisk, hyperledger, ecc.

Modifiche principali:

  • Livello applicativo: aggiunto smart contract
  • Livello di incentivazione: riduzione del tempo di blocco a 16 secondi
  • Livello di consenso: aggiunta di dpos, POS, pbft
  • Livello dati: blocco ampliato, supporto per l'invio di dati e variabili, utilizzo di algoritmo di crittografia ottimizzato e albero di Merkle

blockchain

Era Blockchain 2.0

Architettura: come mostrato nella figura sottostante

Prodotti rappresentativi: EOS, VaR, AE, ash, ELA, dfinity

Modifiche principali: gli scenari applicativi della blockchain in tutti i settori al di fuori dell'industria finanziaria possono soddisfare logiche di business più complesse

blockchain

Costruzione della Sicurezza

Di seguito, forniremo una breve introduzione ai problemi degni di considerazione nella costruzione della sicurezza della public chain blockchain, in base all'architettura della blockchain. Circa il 75% dei problemi ha causato problemi di sicurezza nelle public chain, che sono anche alcuni punti degni di attenzione nell'audit di sicurezza delle public chain. Qui li presentiamo sotto forma di domande per stimolare la nostra riflessione. Se desideri approfondire la discussione, puoi farlo direttamente nella issue:

Livello dati

Il livello dati è la tecnologia di livello inferiore e le sue funzioni principali sono l'archiviazione dei dati, l'implementazione di account e transazioni e la sicurezza. L'archiviazione dei dati si basa principalmente sull'albero di Merkle, realizzata tramite la struttura a blocchi e a catena. La maggior parte viene resa persistente tramite database kV, come bitcoin e leveldb adottato da Ethereum.

Per quanto riguarda il livello dati, vale la pena riflettere sui seguenti punti:

  1. Il design della struttura dati del blocco della public chain è ragionevole?
  2. L'algoritmo di crittografia della public chain soddisfa i requisiti della crittografia?
  3. Il design dell'albero di Merkle è ragionevole?
  4. Il design CRUD del nodo dell'albero di Merkle è ragionevole?
  5. Il design della logica di verifica del timestamp dei blocchi della public chain è ragionevole?
  6. Sicurezza dell'archiviazione dei dati e delle operazioni CURD nel database della public chain?
  7. L'algoritmo di generazione della chiave pubblica/mnemonica è abbastanza sicuro?
  8. La chiave pubblica/i mnemonici sono crittografati?
  9. Ci sono abusi/residui di memoria nella chiave pubblica/nei mnemonici?

Livello di rete

Lo scopo principale del livello di rete è realizzare l'interazione informativa tra i nodi della rete blockchain. L'essenza della blockchain è una rete peer-to-peer (P2P). Ogni nodo può ricevere informazioni e anche produrne. I nodi mantengono la comunicazione mantenendo una blockchain comune. Nella rete blockchain, ogni nodo può creare un nuovo blocco. Dopo la creazione del nuovo blocco, gli altri nodi vengono notificati tramite broadcast. A loro volta, gli altri nodi verificano il nodo. Quando più del 51% degli utenti della rete blockchain supera la verifica, il nuovo blocco viene aggiunto alla catena principale.

Ci sono diversi punti su cui vale la pena riflettere per quanto riguarda il livello di rete

  1. Il design dell'algoritmo di scoperta dei nodi della public chain è ragionevole?

  2. Il design dei nodi della public chain è ragionevole?

  3. Il design del meccanismo di punizione è ragionevole?

  4. Il design del protocollo di comunicazione è ragionevole?

  5. Il design dell'elaborazione delle richieste dei nodi della public chain è ragionevole?

  6. Esiste un limite alla dimensione del pacchetto di elaborazione delle richieste?

  7. Il design del meccanismo di comunicazione delle transazioni della public chain è ragionevole?

  8. Il meccanismo di sincronizzazione dei dati dei blocchi è ragionevole?

  9. Il design logico dell'elaborazione delle transazioni è ragionevole?

Livello di consenso

Il livello di consenso consente a nodi altamente dispersi di raggiungere un consenso sull'efficacia dei dati dei blocchi in un sistema decentralizzato. Ogni blockchain in esecuzione necessita di un algoritmo di consenso per garantire l'efficacia e l'ordine dell'emissione dei blocchi. Gli algoritmi di consenso comuni includono pow, POS, dpos, Poa, POC, ecc.

A livello di consenso, dovremmo considerare i seguenti punti:

  1. Il design dell'algoritmo di consenso della public chain è sicuro?

  2. Il design della verifica del consenso della public chain è ragionevole?

  3. Il design della confisca nel consenso della public chain è ragionevole?

  4. Il design delle commissioni di servizio della public chain è ragionevole?

  5. Il design del mining della public chain è ragionevole?

  6. Il design della regolazione dinamica della difficoltà dei blocchi è ragionevole?

  7. Il design logico del controllo della difficoltà dei blocchi è ragionevole?

  8. Design della riorganizzazione della catena, del reset della catena, della biforcazione della catena, ecc.?

Livello di incentivazione

Lo scopo del livello di incentivazione della public chain è fornire determinate misure di incentivazione per incoraggiare i nodi a partecipare alla verifica della sicurezza della blockchain e garantire l'equilibrio e lo sviluppo sano dell'ecosistema blockchain. Nella public chain decentralizzata, è necessario predisporre il corrispondente meccanismo di incentivazione per premiare i nodi contabili partecipanti che rispettano le regole, e istituire il meccanismo di punizione per sanzionare i nodi contabili partecipanti che non rispettano le regole. Il livello di incentivazione della blockchain introduce fattori economici nel sistema tecnologico della blockchain, migliorando l'efficienza della cooperazione organizzativa e dello scambio di valore all'interno dell'ecosistema. Il meccanismo di incentivazione della public chain è un meccanismo importante per garantire lo sviluppo virtuoso della blockchain.

Ci sono diversi punti degni della nostra considerazione per quanto riguarda il livello di incentivazione

  1. Il design del meccanismo di emissione della public chain è ragionevole?

  2. Il design del meccanismo di punizione della public chain è ragionevole?

Livello dei contratti

Il livello dei contratti incapsula tutti i tipi di codici script e algoritmi del sistema blockchain, nonché i contratti intelligenti più complessi da essi generati. Se i tre livelli di dati, rete e consenso, come "macchina virtuale" sottostante della blockchain, assumono rispettivamente le funzioni di rappresentazione dei dati, diffusione dei dati e verifica dei dati, il livello dei contratti è la logica di business e l'algoritmo basati sulla macchina virtuale della blockchain, che costituisce la base per realizzare la programmazione flessibile e l'operazione sui dati del sistema blockchain. La maggior parte delle criptovalute digitali, incluso bitcoin, utilizza codice script semplice non Turing completo per programmare e controllare il processo di transazione, che è anche il rudimento del contratto intelligente. Con lo sviluppo della tecnologia, esistono linguaggi script Turing completi come Ethereum che possono realizzare contratti intelligenti più complessi e flessibili. La blockchain può supportare molte applicazioni dei sistemi finanziari e sociali macro.

Dovremmo considerare i seguenti punti per quanto riguarda il livello dei contratti:

  1. Design di sicurezza della macchina virtuale dei contratti?

  2. Deployment / esecuzione / interfaccia dei contratti?

  3. Sicurezza relativa ai contratti intelligenti?

Livello applicativo

Il livello applicativo incapsula vari scenari applicativi e casi d'uso della blockchain, simile ai vari programmi software presenti nei computer. È un prodotto che gli utenti comuni possono realmente utilizzare direttamente, e può anche essere inteso come il browser dei prodotti con architettura B / S.

Dovremmo considerare i seguenti punti per quanto riguarda il livello applicativo (solo public chain, non wallet App/Exchange/DEFI, ecc.):

Aspetti relativi agli account

  1. Design logico CRUD dell'account del wallet?

  2. Verifica dei permessi di importazione ed esportazione del wallet?

  3. Design della complessità della password del wallet?

  4. Verifica della validità dell'indirizzo dell'account del wallet?

Aspetti relativi a RPC

  1. L'interfaccia RPC pubblica necessita di una rete pubblica esterna?

  2. I permessi dell'interfaccia RPC della public chain sono chiaramente suddivisi?

  3. L'interfaccia RPC pubblica dispone di operazioni di tipo sensibile?

  4. L'interfaccia RPC pubblica gestisce le eccezioni?

  5. Il limite massimo di elaborazione dei dati dell'interfaccia RPC della public chain?

  6. Codifica e decodifica dei dati richiesti dall'interfaccia RPC della public chain?

  7. SSL è abilitato per l'elaborazione delle richieste RPC della public chain?

Aspetti relativi alla concorrenza

  1. Design dell'elaborazione di richieste ad alta concorrenza nella public chain?

  2. Impostazione del numero massimo di connessioni?

  3. L'interfaccia Web UI della public chain consente l'accesso remoto?

  4. Esiste una vulnerabilità di tipo web nell'interfaccia webui della public chain?

  5. All'interfaccia webui della public chain è consentito memorizzare localmente le informazioni sulle password?

Livello del codice

È vero che non esiste un "livello del codice" nella public chain. Qui, l'autore lo propone principalmente per classificare i problemi che potrebbero dover essere considerati nel processo di sviluppo della public chain:

  1. Caratteristiche del linguaggio di sviluppo della public chain, come readall (), funzionalità append nella lettura dei dati del linguaggio go

  2. Versione del linguaggio di sviluppo della public chain, ad esempio, alcune versioni del linguaggio go presentano esecuzione remota di comandi

  3. Codifica secondo le specifiche di sviluppo della public chain, come puntatore nullo, slicing, gestione delle eccezioni e altre operazioni

  4. Elaborazione di crittografia e decrittografia nella public chain, come codifica e decodifica ad alta complessità senza controllo della lunghezza

  5. Elaborazione della conversione dei tipi di dati, come hextobyte, integer. Parseint(), ecc.

  6. Design della logica di business di base, per esem

Altri elementi

Oltre ai problemi sopra menzionati degni di considerazione a livello di architettura blockchain, dobbiamo anche considerare i seguenti problemi di sicurezza:

Sicurezza dei nodi

  1. L'archiviazione dei dati è crittografata?

  2. I permessi dei file sono ragionevoli?

  3. L'ambiente di esecuzione è sicuro?

  4. Il nodo non è avviato come root?

  5. Esiste un servizio web vulnerabile sul lato del nodo?

  6. Esiste una configurazione non sicura sul lato server del nodo?

  7. Esiste una vulnerabilità di accesso non autorizzato sul lato server del nodo?

  8. La password dell'account SSH è trapelata sul lato server del nodo?

Attacco alla potenza di calcolo

  1. Attacco del 51%

  2. Hard fork della public chain

  3. Dirottamento della potenza di calcolo (i worm infettano le macchine di mining)

Librerie di terze parti

Valutare se vengono utilizzate librerie di terze parti con vulnerabilità, come Jackson databind, fastjson, ecc.

Middleware

Utilizzo di middleware vulnerabili, come le versioni precedenti di tendermint

Requisiti cross-chain

  1. La modalità cross-chain è affidabile e appropriata?

  2. Schema di implementazione della cross-chain isomorfa e della cross-chain eterogenea?

  3. Ripetere i problemi di sicurezza menzionati nella sezione precedente

Manutenzione

  • Al1ex@Heptagram

Discussione

Partecipa direttamente alla discussione dei problemi correlati nella issue

Scarica lo strumento