quale algoritmo di hash hard di memoria può equalizzare i dispositivi di potenza a bassa computazione e high computational per utilizzare blockchain nell'IoT?

4

Recentemente IBM e Microsoft hanno mostrato il loro interesse ( IBM post , < a href="https://www.cryptocoinsnews.com/microsoft-also-exploring-blockchain-technology-iot-world-distributed-connected-devices/"> Microsoft post ) nell'utilizzo della blockchain di bitcoin per internet di lo sviluppo delle cose (IoT). Supponiamo che in un prossimo futuro la tecnica blockchain sia implementata nelle auto intelligenti sovrapponendo le condizioni stradali o i dati del traffico l'una all'altra. La Blockchain di Bitcoin è basata su un Proof-of-Work SHA256 o sulla ricerca di una prova che quando hash è più di un obiettivo. Questo aiuta ad affrontare un attacco a doppia spesa.

Nell'esempio delle future macchine intelligenti descritte sopra la maggior parte dei nodi onesti saranno dispositivi di potenza a basso computazionale (forse come il raspberry pi) quindi, sarà facile per un avversario effettuare un attacco a doppia spesa se l'algoritmo di mining implementato non essere in grado di strozzare le capacità di mining dei dispositivi.

Nella domanda " Come posso assicurarmi che l'hashing della password sia sicuro sui computer senza rallentare eccessivamente sui dispositivi mobili? " Mr.nsl sta cercando un algoritmo di hashing della password in grado di bilanciare sicurezza e velocità per dispositivi con CPU veloce e dispositivi mobili lenti. Sto cercando un algoritmo in grado di resistere a CPU / GPU veloci per utilizzare la loro potenza di calcolo per il vantaggio di sorpasso sulla rete di dispositivi a bassa computazione. Pertanto ho due ipotesi su come affrontare questo problema:

  1. Utilizzare una funzione di hashing in grado di fornire equità / equilibrio in una certa misura tra dispositivi a bassa elaborazione e dispositivi a più rapido consumo (ad esempio tra laptop e Raspberry PI).
  2. Durante la connessione ai peer in un nodo di rete si inviano reciprocamente versioni e se le versioni sono uguali, i nodi procedono con lo scambio di messaggi verack (un riconoscimento della connessione). Quindi forse questi dispositivi dovrebbero insieme a una versione del client installato dovrebbe inviare le loro capacità computazionali. Pertanto, se un peer richiedente possiede troppa potenza computazionale, nessun altro nodo sarà collegato a lui.

Quindi domande,

  1. Anche se capisco che la risoluzione delle prove di lavoro è direttamente influenzata dalla velocità di calcolo, una persona criptata può suggerirmi un algoritmo di hash della memoria che può soddisfare l'assunto n. 1, cioè essere buono per il raspberry pi (che attualmente ha un massimo di 512 MB di RAM) e non consente a un computer medio con 8 GB di superare una rete ed eseguire attacchi a doppia spesa?

  2. Inoltre, è fisicamente possibile inviare il tuo potere di calcolo reale durante una stretta di mano con un nodo?

Grazie

    
posta Nur 08.01.2015 - 12:58
fonte

2 risposte

2

Mentre gli algoritmi limitati dalla memoria sono discussi nella comunità di altcoin (monete crittografiche "alternative" basate su idee simili ai bitcoin), non risolvono principalmente la disparità tra un computer "low-end" per scopi generici (ad esempio il RasPi) e un computer di scopo generale di fascia alta, ma sono usati per prevenire hardware per scopi speciali che superano la potenza di calcolo (anche la potenza di calcolo per Watt) di più ordini di grandezza. L'idea è che l'hashing non ha bisogno di molto spazio su chip e si costruisce un chip che calcola molti hash in parallelo semplicemente copiandolo / incollandolo molte volte in un caso. D'altra parte, la memoria ha ha bisogno di spazio, e i megabyte di memoria hanno bisogno di molto spazio (date un'occhiata alle immagini attuali dei processori.) La grande quantità di spazio di memoria è occupata dalle cache, non dal calcolo motore). Per bitcoin, i chip di mining bitcoin per scopi speciali (minatori FPGA e successivi minatori ASIC) "hanno conquistato il mondo" circa 2 anni fa, perché sovraperformano le macchine di uso generale. Questo è il motivo per cui monete come DogeCoin usano l'algoritmo Scrypt già menzionato da sukosevato.

La razione tra la memoria RasPi (0,5 GB) e il PC di un appassionato (32 GB) è probabilmente persino maggiore della differenza di potenza della CPU tra questi dispositivi, quindi andare a memoria limitata non aiuta il RasPi a raggiungere il livello. Infatti, se non puoi impedire a un dispositivo che ha n volte la potenza di calcolo e n volte la memoria di un dispositivo più piccolo, comportati come n dei dispositivi più piccoli.

Quindi, in sintesi: non penso che sia possibile trovare un algoritmo di hash basato su CPU e operazioni di memoria che non fornisce ai PC veloci (di gioco) un grande vantaggio rispetto al Pi (che ha ancora molta potenza di calcolo).

Affrontando la tua seconda domanda, sukosevato ha di nuovo ragione: non c'è modo di impedire che un dispositivo dichiari di avere un potere di calcolo inferiore a quello che ha realmente. Un dispositivo veloce che finge di essere un dispositivo lento può essere catturato se ne sfrutta sistematicamente il vantaggio - se conosci la velocità di hashing di un dispositivo, sai quante monete riesce a estrarre con successo in un certo intervallo di tempo. Se sfrutta il vantaggio di ottenere "piccoli dispositivi bonus" avendo bisogno di risolvere gli hash meno difficili e di inviare più soluzioni di quelle che puoi realisticamente trovare con il dispositivo di piccole dimensioni, la rete potrebbe provare a metterti al bando.

L'unico modo ragionevole che vedo per evitare che i dispositivi richiedano una potenza di calcolo troppo bassa è rendere più vantaggiosa la maggiore potenza di calcolo che nasconderlo. Purtroppo, questo si traduce direttamente in: Il dispositivo più veloce deve essere in grado di convertire il vantaggio a piena velocità in profitto, altrimenti potrebbe provare a giocare leggermente ingiusto e sfruttare il "bonus dispositivo lento".

    
risposta data 10.02.2015 - 01:03
fonte
1

Non ho molta familiarità con i bitcoin e non ho idea di quanto sia rilevante per IoT. Il miglior esempio di una funzione hashing hard di memoria che conosco è Scrypt .

Posso rispondere in una certa misura alla tua seconda domanda. È possibile inviare facilmente una stringa casuale di byte a un nodo e dirglielo hash il più spesso possibile entro un certo periodo di tempo. In questo modo è possibile stabilire un limite inferiore per le prestazioni di un nodo. Più spesso sono riusciti a distruggerlo, più velocemente è. Tuttavia, nulla sta fermando un nodo molto veloce semplicemente eseguendolo 100.000 volte e quindi non fare nulla per il resto del periodo di tempo per agire come se fosse un nodo più lento. Quindi un limite inferiore per la potenza di calcolo reale è possibile, un limite superiore non è dato che un computer più veloce può sempre fingere di essere lento.

    
risposta data 10.01.2015 - 22:36
fonte

Leggi altre domande sui tag