DEATHStr empieza de forma caótica. Por desgracia, no vi el rush inicial, pero encontré un problema que pasé por alto, que informé al equipo y que ahora está parcheado. DEATHStr está diseñado para comprar NFTs y listarlos un 20% más bajo, con la intención de reducir los suelos de los NFTs en beneficio del propio DEATHStr (los ingresos se usan para comprar y quemar el token). Sin embargo, no hay retraso ni otra mecánica que impida un arb puro: cualquiera que tenga un Moonbird podría aprovechar efectivamente el 20% de las comisiones del contrato en cualquier momento. La función anterior es suficiente para que cualquier poseedor de Moonbird pueda aceptar atómicamente y sin riesgo el 20% de las tarifas disponibles de DEATHSTR. En orden, es: - Determina las tarifas disponibles - genera un listado de puerto marítimo para esa cantidad - le dice a DEATHSTR que compre ese anuncio - Lee el precio al que DEATHSTR puso el NFT (debería tener un 20% de descuento) - Recompra el NFT El usuario acaba con el mismo NFT con el que empezó, + algo de ETH fresco. Esto podía funcionar siempre que 'currentFees() * 0.2' saliera a más que el gas para ejecutarse. Solución sugerida: implementar un retraso de un bloque antes de que un NFT pueda ser recomprado a DEATHSTR. Esto elimina la atomicidad y hace que cualquier NFT vendido al protocolo tenga una oportunidad legítima de ser comprado por cualquiera en el mundo, por lo que vender por cualquier valor por debajo del suelo es de repente un riesgo, e incluso probablemente una pérdida garantizada para el usuario. Por ahora, el equipo simplemente ha añadido control de acceso a buyTargetNFT, por lo que solo las direcciones aprobadas pueden activar compras. Esto está bien a corto plazo, pero me encantaría ver una solución más abierta a largo plazo.
Consideraría esto más un problema narrativo que mecánico. DEATHSTR sigue comprándose y quemándose igualmente, pero ya no hay ningún aspecto que pueda considerarse un "ataque" en los pisos NFT. De hecho, la desconecta completamente de la colección a la que se dirige, salvo por el hecho de que el arbitrador debe tener un NFT de la colección objetivo para poder recolectar las comisiones.
11