Comprar Cripto
Mercados
Spot
Futuros
Earn
Promoción
Más
reward-centerZona para nuevos usuarios
Análisis de informesDetalles
Investigaciones de la industria

Investigación CoinEx: El Dilema de Seguridad de los Activos Blockchain: Razones por las que se Requiere el Tiempo Real como Capa Adicional de Seguridad

  • ETH0%
  • DOT0%
  • ATOM0%
  • LUNA0%
  • BTC0%
CoinEx logo
Publicado el 2022-04-07

Desde el Verano DeFi de 2020, impulsado por el avance continuo de las infraestructuras blockchain, los protocolos DeFi han evolucionado desde Swap hasta Lend, pasando por Yield Farming hasta protocolos cada vez más sofisticados, abarcando estrategias de Yield Farming AMM (creación automatizada de mercado) basadas en derivados blockchain, plataformas de préstamos estructurados construidas sobre infraestructura de préstamos y protocolos de préstamos en cadena que conectan garantías del mundo real, etc.

Uno de los factores clave detrás del auge de la innovación DeFi es un concepto llamado composabilidad. La mayoría de las veces, cuando se lanza un nuevo protocolo DeFi, la mayor parte de su código fuente también se pone a disposición del público. Esto significa que los códigos fuente de contratos inteligentes de uno o más protocolos DeFi pueden componerse fácilmente para crear uno nuevo. Funcionan como bloques de Lego: bloques de diferentes formas pueden usarse para construir proyectos únicos, reduciendo significativamente el costo de la innovación.

Sorprendentemente, a la luz de tales innovaciones masivas, el número de usuarios de DeFi no ha visto un crecimiento significativo desde 2020. Mientras tanto, las instituciones tradicionales no han puesto liquidez en el espacio blockchain. Una de las principales causas de esto es la preocupación por la seguridad de DeFi.

Las finanzas del mundo real vienen con un sistema seguro bien establecido. Por ejemplo, al mover fondos del Banco A al Banco B, habrá camiones de efectivo y oficiales de policía armados para mantener los fondos seguros, lo cual es un proceso tranquilizador. Además, los bancos también serán responsables de la propiedad de un cliente y ofrecerán compensación por cualquier pérdida durante el proceso. DeFi, sin embargo, difiere del sistema financiero tradicional. Los contratos inteligentes son inmutables por diseño. Son esencialmente cajas negras que no enviarán registros legibles, por lo que las personas no pueden obtener una vista clara de los procesos internos. La mayoría de las auditorías de contratos inteligentes no ayudan ya que se centran solo en formas conocidas de ataques, en lugar de nuevos tipos de fallas que son muy probables que ocurran. Mientras tanto, muchos protocolos DeFi se etiquetan como un producto de "uso bajo su propio riesgo". Esto puede ser aterrador para los usuarios regulares y hacer que no tengan confianza para poner la mayoría de sus depósitos bancarios en un ecosistema DeFi. DeFi no ha decepcionado a aquellos que no confiaban en él. Hasta ahora, DeFi ha visto 82 brechas de seguridad, con una cantidad inicial hackeada de más de 1.8 mil millones de dólares. En particular, el préstamo flash es el ataque más común, representando 33 casos. Una de las razones de seguridad detrás de un ataque de préstamo flash es la falta del concepto de tiempo preciso y un mecanismo de confirmación en las blockchains . Analizaremos las razones específicas en los siguientes capítulos.

Investigación CoinEx: El Dilema de Seguridad de los Activos Blockchain: Razones por las que se Requiere el Tiempo Real como Capa Adicional de Seguridad

I. El Tiempo y la Red de Tiempo de las Computadoras

Primero veamos cómo funciona el tiempo en los programas informáticos convencionales.

El tiempo es un concepto esencial para los programas informáticos. Sin el concepto de tiempo, es imposible acceder a cualquier sitio web habilitado con TLS, crear entropía para ciertos algoritmos, intercambiar secretos o autenticar licencias de Windows. Damos por sentado el control del tiempo en las computadoras, pero intercambiar y realizar un seguimiento del tiempo es un problema increíblemente difícil de resolver cuando se trata de operaciones reales.

El tiempo es esencialmente una representación del estado global actual del universo. Esto significa que para cualquier momento dado, cada entidad debe compartir exactamente el mismo valor. Esto es obviamente un gran problema para las computadoras: Supongamos que hay un reloj atómico enorme y altamente preciso en el centro del universo, transmitiendo datos de tiempo a través de Internet. Un problema durante este proceso es que la transmisión de datos toma tiempo por sí misma. Cuando un dispositivo recibe datos de tiempo a través de Internet y los aplica a sus propios sistemas, el estado global del universo (tiempo) ya habría cambiado. En otras palabras, es imposible que un dispositivo en red esté perfectamente actualizado con el valor de tiempo global real.

Otro problema con el control del tiempo en red es que no podemos predecir perfectamente el tiempo requerido para la transmisión de datos: las condiciones de la red cambian constantemente, y nadie puede garantizar una fiabilidad perfecta en el mundo real. Combinado con el primer problema, esto significa que el receptor no puede replicar perfectamente el valor del tiempo tampoco, lo que lleva a inconsistencias.

El Protocolo de Tiempo de Red (NTP) resuelve este problema a través de la estructura de verificación mutua de servidores de control de tiempo distribuidos en todo el mundo (hasta 15 estratos) y mediante la construcción de un árbol de expansión de ruta más corta Bellman-Ford (que reduce tanto la latencia como las inconsistencias en el tiempo de transferencia). Esto funciona perfectamente bien para computadoras personales y servicios centralizados, especialmente con aplicaciones que dependen de una temporización precisa (por ejemplo, programas de cifrado). Aunque las marcas de tiempo derivadas a través de NTP son meras estimaciones, son lo suficientemente precisas y maduras para que las aplicaciones críticas en tiempo puedan confiar en ellas.

Investigación CoinEx: El Dilema de Seguridad de los Activos Blockchain: Razones por las que se Requiere el Tiempo Real como Capa Adicional de Seguridad - image 2

Fuente: https://medium.com/@gokhansengun/bilgisayarlar-zaman%C4%B1-nas%C4%B1l-do%C4%9Fru-tutar-78c1203397f0

II. Mecanismo de Tiempo en Redes Blockchain

El concepto de tiempo también existe en las blockchains. Aunque algunos dicen que la blockchain en sí es un derivado del concepto de tiempo, el procesamiento del tiempo de una red blockchain es extremadamente impreciso en comparación con la precisión de 64 bits del sistema NTP. Después de todo, esto también se debe a que los objetivos de servicio del tiempo blockchain no son aplicaciones de contratos inteligentes sensibles al tiempo como las aplicaciones DeFi. Además, tiene como objetivo permitir la ejecución segura y eficiente del mecanismo de consenso. Tal objetivo diferente también hace que las redes blockchain sean más tolerantes a las inexactitudes temporales. En los siguientes párrafos, discutiremos algunos mecanismos de consenso populares y cómo determinan el tiempo. Dicho esto, debe notarse que la confirmación del tiempo en las blockchains es tan generalmente imprecisa que no pueden llevar a cabo las operaciones financieras y las verificaciones de seguridad para los activos en cadena que valen decenas de miles de millones de dólares.

1. Bitcoin

Bitcoin presenta el concepto de tiempo porque es necesario para su mecanismo de consenso Proof-of-Work. Sin una marca de tiempo válida, la red no puede verificar si una transacción particular que se está minando está intentando manipular una anterior. Aunque cada bloque de Bitcoin contiene una marca de tiempo UNIX, el tiempo de bloque no es una representación precisa de una marca de tiempo UNIX. Esto se debe a que el consenso de Bitcoin solo considera las marcas de tiempo como parte del sistema de seguridad PoW, no como una herramienta real para medir el tiempo en la blockchain.

Citando a Bitcoin Wiki, cada bloque contiene una marca de tiempo Unix proporcionada por los mineros y será aceptada como válida si es 1) mayor que la marca de tiempo media de los 11 bloques anteriores y 2) menor que el tiempo ajustado de la red más 2 horas. Por lo tanto, la diferencia entre los tiempos de bloque y los tiempos del mundo real varía de una hora a dos horas.

Investigación CoinEx: El Dilema de Seguridad de los Activos Blockchain: Razones por las que se Requiere el Tiempo Real como Capa Adicional de Seguridad - image 3

Fuente: https://en.bitcoin.it/wiki/Block_timestamp

2. Ethereum

En la red Ethereum, las marcas de tiempo también son enviadas directamente por los mineros con gran flexibilidad. En términos simples, una marca de tiempo de Ethereum puede ser verdadera o falsa, y no hay forma de que el mecanismo de consenso confirme su precisión. Según una publicación en el foro de Ethereum (fuente: https://ethereum.stackexchange.com/questions/413/can-a-contract-safely-rely-on-block-timestamp/428#428), se pueden utilizar varios mecanismos para prevenir la desviación excesiva de las marcas de tiempo de Ethereum: 1) Si la marca de tiempo de un bloque se desvía significativamente del tiempo del mundo real, nadie estará dispuesto a generar más bloques con este bloque como bloque padre; 2) La marca de tiempo del último bloque no puede ser anterior al bloque padre; 3) La dificultad del bloque será la más baja cuando el bloque no esté marcado antes de lo requerido. Estos mecanismos podrían permitir que los mineros envíen voluntariamente marcas de tiempo que creen que son correctas. Sin embargo, cuando existen otros incentivos externos, la red Ethereum no tiene ningún mecanismo riguroso para asegurar que los mineros sigan enviando la marca de tiempo correcta. Por lo tanto, la red no puede asegurar el funcionamiento adecuado de protocolos sensibles al tiempo (por ejemplo, yield farming, préstamos). Como tal, las grandes instituciones no confiarán en Ethereum con su dinero.

3. Polkadot

Según el documento de Substrate, Polkadot también marca los bloques con marcas de tiempo que son proporcionadas directamente por los mineros. Mientras tanto, no hay mecanismos rigurosos que confirmen o sincronicen dichas marcas de tiempo. El documento también establece que aunque el tiempo de un bloque no puede ser probado, los validadores pueden acordar que está dentro de algún delta de su reloj del sistema.

Investigación CoinEx: El Dilema de Seguridad de los Activos Blockchain: Razones por las que se Requiere el Tiempo Real como Capa Adicional de Seguridad - image 4

Fuente: https://wiki.polkadot.network/docs/build-protocol-info

4. Cosmos

Tendermint de Cosmos es el único algoritmo de consenso que incorpora el tiempo en el mecanismo de consenso, lo que lo dota del concepto de tiempo más robusto. Más específicamente, los nodos de un bloque votarán sobre el tiempo que se ha enviado para alcanzar un consenso, y solo la marca de tiempo en la que los nodos estén de acuerdo se incluirá en el bloque.

Investigación CoinEx: El Dilema de Seguridad de los Activos Blockchain: Razones por las que se Requiere el Tiempo Real como Capa Adicional de Seguridad - image 5

Fuente: https://docs.tendermint.com/master/spec/consensus/bft-time.html

III. La Ausencia de un Sistema de Marcas de Tiempo en los Bloques

Las cadenas de bloques no solo son imprecisas en términos de generación de marcas de tiempo, sino que también carecen de un sistema o mecanismo de marcas de tiempo dentro de los bloques. Las transacciones del mundo real se envían y confirman una por una, cada una con un tiempo y secuencia claros. De esta manera, muchas transacciones falsas no pueden ocurrir ni ser confirmadas. En una red blockchain, por otro lado, las transacciones dentro de cada bloque se empaquetan juntas y no están marcadas con marcas de tiempo precisas una por una.

Aunque todas las transacciones pueden verificarse después de la generación del bloque, es imposible determinar el tiempo específico de envío y la secuencia de cada transacción. Esto explica en parte por qué se pueden llevar a cabo muchos ataques (por ejemplo, préstamos flash o intercambios flash). Si se proporcionaran marcas de tiempo precisas dentro de los bloques como prueba de verificación, los protocolos de aplicación podrían desarrollar algoritmos más seguros y estables. Mientras tanto, debido a sus características intrínsecas, el tiempo es una red de consenso altamente segura que es irreversible e inmutable.

IV. Soluciones Potenciales

La falta de tiempo en las cadenas de bloques puede resolverse interna o externamente.

Solución interna: Se debe introducir un mecanismo de confirmación a nivel de consenso que verifique el tiempo del bloque contra el tiempo del mundo real, o se debe establecer un sistema de tiempo independiente con mayor precisión.

Solución externa: Las cadenas de bloques necesitan una red descentralizada que utilice una red de oráculos de tiempo similar a NTP para agregar marcas de tiempo precisas a los bloques de la red y a las transacciones dentro de los bloques.

En vista de la colaboración entre múltiples cadenas, la solución externa podría ser más adecuada. Suponiendo, por ejemplo, que Ethereum y Terra tienen sus propios relojes, si las marcas de tiempo proporcionadas por estos relojes son diferentes, será difícil determinar cuál es correcta durante las interacciones entre ambas. Por ejemplo, en una red informática convencional, en última instancia, solo un reloj maestro le dice a todos qué hora es. Las cadenas de bloques también necesitan un reloj maestro.

En el futuro multiverso habilitado por múltiples cadenas, nos enfrentaremos a otro desafío: el número de relojes en todas las diferentes computadoras es mucho mayor de lo esperado. Por ejemplo, hay relojes de juegos, relojes de acumulación de intereses DeFi, relojes de blockchain, etc. Dado que estos relojes alterarán el tiempo en los nodos meta, se necesitará una única fuente confiable de tiempo para unificar y sincronizar todas las transacciones. Cuando dicha red de oráculos de tiempo sea finalmente adoptada ampliamente, proporcionará una capa de seguridad adicional, ofreciendo confirmaciones de tiempo adicionales a cada transacción, tal como sucede en el mundo real. El tiempo también se convertirá en una capa de seguridad adicional para las redes blockchain.

Referencias:

  1. https://medium.com/@gokhansengun/bilgisayarlar-zaman%C4%B1-nas%C4%B1l-do%C4%9Fru-tutar-78c1203397f0
  2. https://en.bitcoin.it/wiki/Block_timestamp
  3. https://ethereum.stackexchange.com/questions/413/can-a-contract-safely-rely-on-block-timestamp/428#42
  4. https://wiki.polkadot.network/docs/build-protocol-info