Este es el mayor deterioro de servicio para Cardano en sus 8 años de operación, y como desarrollador clave dentro del ecosistema Cardano, sentí que era una buena oportunidad para reflexionar sobre lo que iba bien, y lo que podemos aprender para mejorar aún más la robustez de Cardano. He elegido construir una carrera y una compañía en Cardano.Cuando sucede algo así, no tengo el lujo de golpear mi pecho en Twitter o participar en dunking colectivo. La respuesta a la que llegué fue sí, absolutamente, con algunas tareas de casa. **What happened \ A serialization bug caused a unidirectional soft-fork: one portion of the nodes rejected a transaction that the rest didn't. This was initially triggered in testnet, likely on accident, and a fix was identified and released quickly. Unfortunately, someone with deep familiarity with Cardano was able to reverse engineer how the transaction was constructed, and submitted it to mainnet. (You may see claims this was "vibe-coded"; that appears to refer to using AI to set firewall rules in an attempt to quarantine the transaction, not the attack itself.) Desafortunadamente, esto fue antes de que la corrección alcanzara una amplia adopción, y por lo tanto una mayoría de los nodos (aquellos en versiones con el bug) lo aceptaron, mientras que las infraestructuras clave como carteras, exploradores de cadena y intercambios, lo rechazaron. A medida que los operadores de nodos actualizaron a la versión fija, la cadena que rechazó la transacción comenzó a crecer más rápido que la que la había aceptado, y finalmente superó, lo que llevó a un reorg que reparó la cadena. Como un pequeño punto de orgullo, las herramientas de diagnóstico construidas rápidamente para triar el problema utilizado código de ), un nodo alternativo está siendo escrito en Rust que el equipo de Sundae Labs es un contribuyente a. Este fue una buena validación de nuestro plan para traer diversidad de implementación a Cardano. \ Real Impact \ In practice, the impact of this chain fork was severe, though not as severe as you might have assumed. The chain continued to produce blocks, and a majority of transactions made it into the surviving fork, though delayed. The monitoring infrastructure run by the CF detected a spike in transaction delays up to 5 minutes, but other users may have seen delays as long as 16-30 minutes, the longest gap between blocks. Some subset of users may also have been unable to submit transactions entirely, though this was due to faulty 3rd party infrastructure that was unable to follow either fork. Un pequeño porcentaje (3,3%, 479 de 14401) de transacciones lo convirtió en la cadena defectuosa, y no lo convirtió en la cadena de supervivencia. **How I think about Blockchain Outages \ I've developed a personal taxonomy for categorizing large outages, from most serious to least: Violaciones de la soberanía, donde se violan las promesas y la integridad básicas (como las firmas criptográficas) de una cadena de bloques 2. Ledger bugs, where the economic principles (such as monetary policy) of a blockchain are broken La violación irrecuperable del consenso, donde una red se forja permanentemente Violación del consenso recuperable, donde una red tiene una forca de larga duración pero se recupera Explotación grave de contratos inteligentes, donde se pierden fondos de los usuarios debido a un error en el contrato Parada de pleno consenso, donde la cadena debe ser detenida y reiniciada, coordinada a través de una autoridad central Degradación del servicio, donde las transacciones se retrasan o la información incorrecta se muestra a los usuarios El incidente con el que se enfrentó Cardano se califica como 4: serio, pero recuperable.En mi post completo en el blog, doy ejemplos de cada uno. **What went well \ This incident put Cardano's Ouroboros consensus through its paces: long forks like this are supposed to be exceedingly rare black swan events, but the design of the consensus protocol and networking stack anticipate and account for this. For example, the fact that it was able to self-heal is built into the protocol, and the way time is handled has a self-regulating lamport clock that gave the stake pool operators time to upgrade their nodes. Además, la infraestructura de información y comunicación mantenida por las entidades fundadoras realmente brilló, ya que pudimos ver rápidamente el problema y comunicarlo ampliamente. Finally, it was great validation for Cardano's choice of language. The particular error was related to some faulty bounds checking on a buffer of untrusted input. In languages like C, this El error (si no este específicamente) podría muy fácilmente haber conducido a una violación de la soberanía a través de la ejecución remota de código o similar. **What broke down \ It became clear from the incident that we need better infrastructure around some wallets, dApps, and chain explorers. Many were unable to follow En algunos casos esto puede haber sido una consideración de seguridad, pero en otros fue sólo una falta de programación defensiva que anticipó este escenario. Del mismo modo, especialmente a medida que Cardano entra en una era de diversidad de clientes, está claro que necesitamos mejorar nuestros criterios de prueba ya rigurosos. Como el nivel de prueba en la implementación de nodo actual es fenomenal, pero ese mismo rigor debe ser mejorado y estandarizado en todas las implementaciones del nodo. **Conclusion \ Blockchains are not immune to the Es generalmente seguro asumir que todo el software es un paquete de red alejado de un derrumbe catastrófico, suponiendo que puede pero encontrar el hechizo correcto. Amaro Tipo también Bias de supervivencia Los mismos tipos de bugs Afortunadamente, la mayoría (pero no todos) de estos son encontrados por investigadores de seguridad conscientes y fijados antes de que puedan causar un impacto generalizado. Este incidente fue una excepción y destacó áreas en las que Cardano puede mejorar mientras también demuestra sus fortalezas. Por Pi Lanningham, Jefe de Tecnología de SundaeSwap Labs. Por Pi Lanningham, Jefe de Tecnología de SundaeSwap Labs. Laboratorios de Salud