Storm, almacenamiento descentralizado sobre Bitcoin
El ejemplo anterior es bastante sencillo, pero sería lo que usualmente podríamos ver en Storm. Ana por un lado tiene BTC y usará los mismos para pagar por los servicios de almacenamiento que necesita. Carlos, es parte de la red Storm y acepta BTC por sus servicios.
Para evitar las trampas en este esquema P2P, Storm asegura que los BTC que Ana pasa a Carlos cumplan ciertos requisitos. Por ejemplo, el pago que hace Ana a Carlos no es inmediato y completo, sino que se hace en fases para asegurarse del cumplimiento de las condiciones.
Así por ejemplo, Carlos no puede desentenderse de los datos de Ana, porque de hacerlo, el pago se cancelará. Y Ana, por ejemplo, no puede simplemente sacar los datos de la red rompiendo el trato inicial sin tener que cumplir con los puntos de acuerdo que ella firmó al principio.
Para lograr esto, Storm configura las transacciones de pago por servicios usando CSV y HTLC, asegurándose de que el pago vaya siendo liberado a medida que se cumplen los plazos. Si por ejemplo, Ana quiere que Carlos le ofrezca un espacio de almacenamiento por 1 año, esto significa que la transacción BTC se irá liberando en su totalidad, en porciones de 1/12 cada mes. Lo bueno de este sistema es que el proceso se puede hacer tanto en la red BTC como en LN, sin dificultades.
El uso de PSBT y HTLC por otro lado, también evita otras trampas, como por ejemplo, que Carlos se desentienda de los datos que Ana le ha confiado. En ese punto, la transacción HTLC de Ana y Carlos, usa un esquema PSBT para forzar a Carlos a mantener su parte del trato, porque de lo contrario, Ana puede reclamar el resto de la recompensa y se castiga a Carlos por actuar de mala fe.
En todo caso, las transacciones de pago en Storm están protegidas contra trampas, por lo que resulta seguro.
Seguridad e integridad a nivel de datos
El otro punto de Storm es la seguridad e integridad de los datos. Para lograr esto, el Dr. Maxim Orlovsky trabaja con las conocidas pruebas probabilísticas comprobables. Estas pruebas son las encargadas de brindar seguridad e integridad a los datos que Ana ha dejado en manos de Carlos.
En primer lugar, estas pruebas son una derivación de las ya conocidas ZKP o Pruebas de Conocimiento Cero, usadas en criptos como Monero o ZCash. La idea es que los datos que van a la red Storm puedan cifrarse de tal forma, que si Ana desea saber que sus datos están allí realmente, ella pueda solicitar una prueba criptográfica a Carlos, y Carlos pueda darla sin tener la mas minima idea de los datos que Ana ha dejado en dicha red.
De hecho, Carlos no ha leído, ni puede leer, ni leerá dichos datos, porque desde un principio Ana los ha pasado cifrados, y lo único que puede hacer Carlos es pasar pruebas criptográficas que Ana puede verificar en todo momento.
Para lograr esto, Storm divide los datos que se enviarán a la red en bloques de igual tamaño. En este punto, elige de forma aleatoria una cantidad de esos bloques y realiza un doble proceso de creación de árbol merkle en el que:
- Se toman bloques de datos aleatorios y sin cifrar, para crear un merkle root de esos bloques.
- Los bloques anteriores se cifran y se crea un segundo merkle root de esos datos cifrados.
Al terminar la creación de los merkle root, estos se unen con el fin de crear un marcador criptográfico. Este marcador le permitirá a Ana pedirle pruebas de almacenamiento a Carlos, sin que él sepa qué datos hay dentro del conjunto de datos que almacena, y a Ana le da la seguridad, de que Carlos solo podrá responder con la verdad, porque en caso de no hacerlo, significa que Carlos no tiene los datos que ella le ha dado.
El método no difiere mucho del de redes como Sia y Filecoin, donde modelos parecidos de protección son usados dentro de sus redes. Sin embargo, Storm tiene un potencial adicional y es que sus pruebas criptográficas son mucho más seguras.