¿Qué algoritmo de hash duro de memoria puede igualar los dispositivos de potencia de computación baja y alta para utilizar blockchain en el IoT?

4

Recientemente, IBM y Microsoft demostraron su interés ( publicación de IBM , < a href="https://www.cryptocoinsnews.com/microsoft-also-exploring-blockchain-technology-iot-world-distributed-connected-devices/"> Microsoft post ) para utilizar el blockchain de bitcoin para internet Desarrollo de cosas (IoT). Supongamos que, en un futuro cercano, se implementará la técnica de blockchain en automóviles inteligentes que superponen entre sí las condiciones de la carretera o los datos de tráfico. La cadena de bloques de Bitcoin se basa en una prueba de trabajo SHA256 o en la búsqueda de una prueba que, cuando se trata, es más que un objetivo. Esto ayuda a hacer frente al ataque de doble gasto.

En el ejemplo de los autos inteligentes del futuro descrito anteriormente, la mayoría de los nodos honestos serán dispositivos de bajo poder computacional (tal como Raspberry pi), por lo tanto, será más fácil para el adversario realizar un ataque de doble gasto si se implementa el algoritmo de minería. No poder realizar cuellos de botella en las capacidades de los dispositivos.

En la pregunta " ¿Cómo puedo asegurarme de que el hash de contraseñas esté seguro en las computadoras mientras no sea prohibitivo en los dispositivos móviles? " Mr.nsl está buscando un algoritmo de hashing de contraseñas que pueda ofrecer un equilibrio entre la seguridad y la velocidad Para dispositivos móviles rápidos y con CPU lenta. Estoy buscando un algoritmo que pueda resistir una CPU / GPU rápida para usar su poder computacional para adelantar la ventaja sobre la red de dispositivos de bajo cálculo. Por lo tanto, tengo dos supuestos sobre cómo abordar este problema:

  1. Utilice una función de hashing que puede proporcionar una equidad / equilibrio hasta cierto punto entre los dispositivos de computación de baja velocidad y los de computación más rápida (por ejemplo, entre la computadora portátil y la Raspberry PI).
  2. Mientras se conectan a pares en una red, los nodos se envían mutuamente y si las versiones son iguales, los nodos continúan intercambiando mensajes de reenvío (un acuse de recibo de la conexión). Por lo tanto, tal vez estos dispositivos deberían, junto con una versión del cliente instalado, enviar sus capacidades computacionales. Por lo tanto, si un par que solicita posee demasiado poder de cómputo, ningún otro nodo se conectará con él.

Por lo tanto, preguntas,

  1. Aunque entiendo que la resolución de la prueba de trabajo está influenciada directamente en la velocidad computacional de una persona, ¿puede una persona criptográfica sugerirme un algoritmo de hashing de memoria que pueda satisfacer la suposición # 1, es decir, ser bueno para la pi frambuesa? (que actualmente tiene un máximo de 512 MB de RAM) y no permite que una computadora promedio con 8GB supere una red y realice ataques de doble gasto?

  2. Además, ¿es físicamente posible enviar su poder computacional real durante un apretón de manos con un nodo?

Gracias

    
pregunta Nur 08.01.2015 - 12:58
fuente

2 respuestas

2

Si bien los algoritmos de memoria limitada se discuten en la comunidad de altcoin (monedas criptográficas "alternativas" basadas en ideas similares a bitcoins), no resuelven principalmente la disparidad entre una computadora de propósito general "de gama baja" (por ejemplo, RasPi) y una computadora de propósito general de alta gama, pero se utilizan para evitar hardware de propósito especial que exceda la potencia de cómputo (también la potencia de cómputo por vatio) en múltiples órdenes de magnitud. La idea es que el hashing no necesita mucho espacio en el chip, y usted construye un chip que calcula muchos hashes en paralelo simplemente copiándolo / pegándolo muchas veces en un caso. Por otro lado, la memoria necesita espacio, y los megabytes de memoria necesitan mucho espacio (eche un vistazo a las imágenes de troquel del procesador actual. La gran cantidad de espacio de troquel está ocupada por cachés, no por el cálculo motor). Para los bitcoins, los chips de minería de bitcoin para fines especiales (mineros de FPGA y luego mineros de ASIC) "se apoderaron del mundo" hace aproximadamente 2 años, porque superan a las máquinas de propósito general. Esa es la razón por la que monedas como DogeCoin usan el algoritmo Scrypt ya mencionado por sukosevato.

La relación entre la memoria RasPi (0,5 GB) y la PC de un entusiasta (32 GB) es probablemente incluso mayor que la diferencia en la potencia de la CPU entre esos dispositivos, por lo que limitar la memoria no ayuda a que RasPi se ponga al día. De hecho, si no puede evitar que un dispositivo que tiene n veces la potencia computacional y n la memoria de un dispositivo más pequeño, se comporte como n de los dispositivos más pequeños.

En resumen: no creo que pueda encontrar un algoritmo de hash basado en las operaciones de CPU y memoria que no ofrezca a las PC rápidas (juegos) una gran ventaja sobre la Pi (que aún tiene mucha potencia informática).

Respondiendo a su segunda pregunta, el sukosevato tiene razón otra vez: no hay manera de evitar que un dispositivo diga tener un poder de cómputo más bajo del que realmente tiene. Se puede atrapar un dispositivo rápido que se hace pasar por un dispositivo lento si se aprovecha sistemáticamente; si conoce la velocidad de hash de un dispositivo, sabrá cuántas monedas puede extraer con éxito en un determinado intervalo de tiempo. Si aprovecha la posibilidad de obtener un "bono de dispositivos pequeños" al necesitar resolver hashes menos difíciles y enviar más soluciones de las que realmente puede encontrar con el dispositivo pequeño, la red podría intentar prohibirlo.

La única forma razonable que veo para evitar que los dispositivos que reclaman una potencia de computación demasiado baja sea hacer que la visualización de la potencia de computación aumentada sea más ventajosa que ocultarla. Desafortunadamente, esto se traduce directamente a: el dispositivo más rápido debe poder convertir la ventaja de velocidad completa en ganancias, de lo contrario, podría intentar jugar un poco injustamente y explotar el "bono de dispositivo lento".

    
respondido por el Michael Karcher 10.02.2015 - 01:03
fuente
1

No estoy muy familiarizado con bitcoin y no tengo idea de cómo es relevante para IoT. El mejor ejemplo de una función de hash duro de memoria que conozco es Scrypt .

Puedo responder tu segunda pregunta hasta cierto punto. Puede enviar fácilmente una cadena aleatoria de bytes a un nodo y decirle que lo haga con tanta frecuencia como pueda dentro de un determinado período de tiempo. De esta manera, podría establecer un límite inferior para el rendimiento de un nodo. Cuanto más a menudo se las arreglaban para hacer el hash, más rápido es. Sin embargo, nada impide que un nodo muy rápido simplemente lo pegue 100.000 veces y luego no haga nada durante el resto del período para que actúe como si fuera un nodo más lento. Por lo tanto, es posible un límite inferior para la potencia computacional real, un límite superior no lo es, ya que una computadora más rápida siempre puede fingir que es lenta.

    
respondido por el sukosevato 10.01.2015 - 22:36
fuente

Lea otras preguntas en las etiquetas