Informe de incidentes y problemas de contratos inteligentes de ILK de INLOCK Marzo de 2021

Creamos un resumen completo del caso a la mañana siguiente (el domingo CET 7:46): (https://t.me/inlock_hun/24870)

Como se formularon varias preguntas en relación con el resumen, se respondió en la siguiente declaración:

Estimados INLOCKERs, Aquí hay algunos pensamientos después del incidente:

– los auditores y los probadores de penetración siempre tratan de sacar el máximo partido a su trabajo. El hecho de que los auditores hayan revisado el contrato del token INLOCK no nos libera de ninguna responsabilidad, solo reconoce que realmente hemos hecho todo lo posible para evitar resbalones.

– El error con el que pudieron duplicar tokens es completamente banal. Lo más probable es que lo hayan encontrado completamente por accidente. Miramos hacia atrás en los eventos de y también había sucedido antes que alguien había logrado duplicar una pequeña cantidad de tokens. Lamentablemente, este error lleva con nosotros desde el verano de 2018, frente al cual es especialmente sorprendente que solo alguien haya logrado aprovecharlo solo 3 veces y ayer fue el único que resultó en daños materiales más graves. Tenemos los registros de transacciones de duplicación en los tres casos, e incluso conocemos la identidad exacta de las partes involucradas.

– Quemaremos los tokens extra generados durante los duplicados, por lo que también restauraremos los parámetros según la tokenomics.

– el agresor se mostró cooperativo y devolvió todo lo que pudo.

– En los próximos días, planeamos restaurar el tipo de cambio y los mercados de tokens. Me temo que llevará un poco más de tiempo recuperar la confianza en el token, pero en cualquier caso, defenderemos plenamente nuestro modelo y el valor del token.

Dado que los tokens que existían anteriormente se duplicaron aprovechando el error, el conjunto total de tokens ILK también aumentó en casi 80 millones de tokens ILK.

Sin embargo, al comienzo del proyecto, declaramos claramente que nunca podría haber más de 4.400 millones de tokens ILK, se tomó la decisión sobre los tokens generados adicionales que se quemarían dentro de una fecha límite. Sin embargo, el proceso exacto de esto aún está en desarrollo, ya que el token ILK no fue diseñado para simplemente quemarlo.

Una parte de los tokens que se quemarán estaría cubierta por los tokens devueltos, sin embargo, en relación con los tokens que ya se vendieron, tomamos la siguiente resolución:

También me parece importante señalar que alrededor del 60% de los tokens duplicados durante el daño podrían ser devueltos por el perpetrador (el resto ya se ha vendido). Aquellos que compraron una ficha del perpetrador pueden, por supuesto, quedársela tal como la pagaron. En el caso de la quema de tokens, la plataforma INLOCK tampoco se puede dañar, por lo que no se reemplazará aproximadamente el 40% del stock propio de la plataforma. La decisión ya se tomó anoche sobre la cantidad de tokens adicionales en cuestión que serían financiados directamente por la participación del propio equipo de los fundadores. (https://t.me/inlock_hun/24893)

El error estaba en el código tokenDB.sol del contrato inteligente INLOCK, más precisamente en su función de transferencia:

La función de transferencia leyó los saldos de recepción y envío por adelantado incorrectamente y luego los trató por error como dos direcciones diferentes durante su mantenimiento. Produciendo así un estado en el que el saldo enviado se duplica en la dirección de recepción si las direcciones del receptor y del remitente son las mismas.

El error se ha solucionado con una solución alternativa actualmente, lo que hace que sea físicamente imposible transferir un token ILK a la misma dirección, ocultando así el problema.

Dado que tokenDB.sol también fue diseñado para actualizarse, el error base en tokenDB.sol se solucionará más adelante, pero la protección que se encuentra en tokenLib.sol (_from! = _To) permanece incluso después.

Este viejo proverbio estaba claramente justificado en relación con el incidente:

"¡Lo que no te mata te hace más fuerte!"

Como resultado de este incidente específico, logramos corregir un error que, si hubiera ocurrido solo más tarde, podría haber causado daños más importantes. Todo esto de tal forma que logramos eliminar y reparar el daño en breve.