Desde agosto, el desarrollo del ecosistema Sui ha sido rápido. Según DefiLlama, el TVL de Sui ha superado los $1 mil millones, un aumento del 200% en los últimos dos meses, y actualmente el volumen de negociación de Cetus, un Dex construido en Sui, supera los $160 millones al día.
El 9 de octubre, el USDC nativo de SUI se lanzó en la red principal, lo que continuará atrayendo más fondos al ecosistema de SUI. Como miembro importante del Ecosistema Move, SUI se compromete a proporcionar servicios de transacciones rápidos y seguros para una variedad de escenarios de aplicación de blockchain.
En este artículo, Beosin te ayudará a comprender los desafíos de seguridad a los que se enfrentan los usuarios y desarrolladores del ecosistema SUI con años de experiencia en auditorías de seguridad.
Sui utiliza Move como lenguaje de programación para contratos inteligentes. Move fue diseñado para ser un lenguaje de Bytecode ejecutable con algoritmos de seguridad incorporados y un verificador de Bytecode, y utiliza llamadas estáticas al llamar a contratos.
Este diseño permite que Move aborde vulnerabilidades comunes en contratos inteligentes, como ataques de reentrancia, desbordamientos de enteros, doble gasto y posibles problemas del compilador, pero aún es posible que los desarrolladores introduzcan inadvertidamente vulnerabilidades en el desarrollo del contrato. En respuesta, Beosin introdujo Move Lint en 2023, una herramienta de detección estática que automatiza la detección de posibles riesgos de seguridad en los contratos y localiza vulnerabilidades.
Además de las herramientas de detección, los siguientes son problemas de seguridad a los que los desarrolladores deben prestar atención adicional en el desarrollo de contratos Move para mejorar la seguridad:
En comparación con otros lenguajes de contratos inteligentes, Move verifica automáticamente los problemas de desbordamiento de forma predeterminada al realizar operaciones matemáticas con enteros, lo que puede prevenir una gran cantidad de problemas de desbordamiento, pero aún hay dos puntos a tener en cuenta:
Las operaciones de bits en el lenguaje Move no realizan automáticamente comprobaciones de desbordamiento porque las operaciones de bits son operaciones a nivel de bits en los datos que se comportan de manera diferente a las operaciones enteras.
Cuando la comprobación de desbordamiento automático de Move entra en vigor, la ejecución de la función lanza una excepción, que, si está mal diseñada, puede hacer que el negocio del proyecto falle en su ejecución esperada, lo que resulta en ataques de DoS.
El paso de objetos privilegiados y llamadas de función privilegiadas debe ser cuidadosamente autenticado, ya que estas funciones y objetos están involucrados en la seguridad de la financiación. Además, se deben verificar los tipos de objetos para determinar si son objetos privados o compartidos. Si un objeto se convierte incorrectamente de un objeto privado a un objeto compartido, los usuarios no autorizados pueden acceder al objeto, lo que representa un posible riesgo de seguridad.
Los desarrolladores pueden usar Move Prover para verificar que el programa esté aplicando una política de control de acceso explícita. Por ejemplo, en std.offer, podemos ver que la función se termina cuando el destinatario no está en la lista blanca:
La dependencia del orden de transacción (TOD) se refiere al hecho de que el comportamiento de un contrato puede tener resultados diferentes dependiendo del orden en que se ejecuten las transacciones, especialmente en un entorno descentralizado donde el minero o el verificador pueden elegir cómo se ordenan las transacciones. Puede traer riesgos como ataques de front-running.
En SUI, todavía depende del productor de bloques ejecutar la orden de transacciones, por lo que los contratos MOVE todavía pueden verse afectados por este problema si están diseñados para depender del orden de transacciones para cambios de estado.
En la cadena Sui, el problema de Gas de los contratos inteligentes de Move se refleja principalmente en los costos de cálculo y almacenamiento necesarios para la ejecución del contrato. Con el aumento de la complejidad del contrato y los cambios de estado, el consumo de Gas también aumenta en consecuencia. Los desarrolladores deben centrarse en optimizar la lógica del contrato, reduciendo cálculos innecesarios y actualizaciones de estado para disminuir los costos de transacción para los usuarios, y especialmente para evitar la situación de iteraciones incontrolables en el contrato, que pueden ser debido a gas insuficiente y no poder realizar el negocio correctamente.
En la actualidad, el tipo numérico soportado por Move es entero sin signo y no admite punto flotante, por lo que la parte fraccional se truncará y se redondeará hacia abajo durante las operaciones de división, lo que llevará a resultados de cálculo inexactos, lo que puede afectar algunas políticas clave, provocar pérdidas de ingresos e incluso convertirse en una vulnerabilidad de seguridad.
Para este problema, la medida de mitigación habitual es extender la precisión, pero debe tenerse en cuenta que la precisión debe restaurarse cuando se obtenga el resultado final.
En Move smart contracts en la blockchain SUI, la gestión de objetos es un desafío clave que abarca múltiples aspectos del ciclo de vida del objeto, propiedad, acceso concurrente, serialización y costos de almacenamiento. Los desarrolladores deben administrar con precisión la creación, actualización y destrucción de objetos para evitar el desperdicio de recursos y la inconsistencia de estado. Al mismo tiempo, el diseño razonable de la lógica del contrato para controlar la propiedad y los derechos de acceso de los objetos, así como manejar el acceso concurrente de múltiples usuarios al mismo objeto, son factores importantes para garantizar el funcionamiento seguro y eficiente de los smart contracts.
Por ejemplo, con la implementación de préstamos relámpago en el proyecto SUI DeFi, los atacantes pueden utilizar préstamos flash para llevar a cabo ataques de grandes fondos como la manipulación de precios.
En la función común de intercambio de tokens AMM, los desarrolladores pueden usar Move Prover para verificar que el número de tokens ha cambiado correctamente:
Por ejemplo, los protocolos de préstamo siempre deben estar completamente asegurados después de una serie de depósitos, préstamos y retiros. En el caso de que se cancele el libro de órdenes del acuerdo de negociación de contratos perpetuos en cadena después de que se coloque la orden, no debe haber cambios en el libro mayor, etc., que deben ser verificados y comprobados por el desarrollador.
Actualmente, DeFi y Memecoins de SUI están floreciendo, y el volumen de negociación y TVL han atraído un crecimiento explosivo. Posteriormente, hay cada vez más tipos de estafas y operaciones de spam que los usuarios necesitan evitar.
Este año, apareció una estafa de airdrop llamada Suisses en Sui Eco, que permitió que muchos usuarios tuvieran sus activos robados. Cuando un usuario se conecta a una billetera en el sitio web de Suisses y hace clic en Reclamar, aparece una solicitud de transacción para la transferencia de los activos del usuario. Si el usuario firma la transacción, encontrará que todos los activos de su billetera han sido transferidos.
Debido a las características de SUI: todo es objeto, no solo los tokens en la billetera del usuario, NFT es objeto, sino también la participación del usuario en la minería DeFi, la garantía de liquidez y otros certificados. Si ocurre un ataque de phishing, todos los activos de un usuario dentro del ecosistema de SUI pueden ser transferidos por el hacker de una vez.
Existen muchos tokens falsos y honeypots en el ecosistema SUI. En particular, cuando los usuarios comercian memecoins en el ecosistema SUI, pueden verse atrapados accidentalmente.
Al crear tokens en SUI, como se muestra a continuación, los hackers pueden definir los mismos iconos y nombres que los tokens populares o principales, lo que los hace indistinguibles para los usuarios generales. Por lo tanto, los usuarios deben verificar si el formato de datos del token es correcto al comprarlo.
Además, los hackers también pueden añadir una función de DenyList al contrato del token, de modo que los usuarios que compren el token no puedan venderlo, causando pérdidas a los usuarios.
MEV significa valor extraíble máximo. MEV originalmente se refería al Valor Extraíble por el Minero, donde los mineros en la red BTC ganan recompensas más allá de las tarifas de bloque y de red al reordenar transacciones en bloques. MEV no tiene nada que ver con el tipo de red blockchain. MEV existe en todas las blockchains, y SUI no es una excepción.
Sui utiliza Narwhal como piscina de memoria para asignar transacciones no finalizadas a nodos, y utiliza el algoritmo Bullshark como motor de consenso para ordenar transacciones.
La regla de pedido de Sui para las transacciones se basa en las tarifas de gas. Además, dado que Sui adopta un esquema de ejecución de transacciones que combina paralelo y secuencial, las transacciones que comparten el mismo estado del grupo de transacciones de AMM solo se pueden ejecutar secuencialmente. Por lo tanto, el ataque sándwich / transacción frontrunning es factible. Un atacante puede lanzar un ataque sándwich a través de una tarifa de gas más alta, de modo que los usuarios que participan en las operaciones de DeFi sufran pérdidas.
Compartir
Desde agosto, el desarrollo del ecosistema Sui ha sido rápido. Según DefiLlama, el TVL de Sui ha superado los $1 mil millones, un aumento del 200% en los últimos dos meses, y actualmente el volumen de negociación de Cetus, un Dex construido en Sui, supera los $160 millones al día.
El 9 de octubre, el USDC nativo de SUI se lanzó en la red principal, lo que continuará atrayendo más fondos al ecosistema de SUI. Como miembro importante del Ecosistema Move, SUI se compromete a proporcionar servicios de transacciones rápidos y seguros para una variedad de escenarios de aplicación de blockchain.
En este artículo, Beosin te ayudará a comprender los desafíos de seguridad a los que se enfrentan los usuarios y desarrolladores del ecosistema SUI con años de experiencia en auditorías de seguridad.
Sui utiliza Move como lenguaje de programación para contratos inteligentes. Move fue diseñado para ser un lenguaje de Bytecode ejecutable con algoritmos de seguridad incorporados y un verificador de Bytecode, y utiliza llamadas estáticas al llamar a contratos.
Este diseño permite que Move aborde vulnerabilidades comunes en contratos inteligentes, como ataques de reentrancia, desbordamientos de enteros, doble gasto y posibles problemas del compilador, pero aún es posible que los desarrolladores introduzcan inadvertidamente vulnerabilidades en el desarrollo del contrato. En respuesta, Beosin introdujo Move Lint en 2023, una herramienta de detección estática que automatiza la detección de posibles riesgos de seguridad en los contratos y localiza vulnerabilidades.
Además de las herramientas de detección, los siguientes son problemas de seguridad a los que los desarrolladores deben prestar atención adicional en el desarrollo de contratos Move para mejorar la seguridad:
En comparación con otros lenguajes de contratos inteligentes, Move verifica automáticamente los problemas de desbordamiento de forma predeterminada al realizar operaciones matemáticas con enteros, lo que puede prevenir una gran cantidad de problemas de desbordamiento, pero aún hay dos puntos a tener en cuenta:
Las operaciones de bits en el lenguaje Move no realizan automáticamente comprobaciones de desbordamiento porque las operaciones de bits son operaciones a nivel de bits en los datos que se comportan de manera diferente a las operaciones enteras.
Cuando la comprobación de desbordamiento automático de Move entra en vigor, la ejecución de la función lanza una excepción, que, si está mal diseñada, puede hacer que el negocio del proyecto falle en su ejecución esperada, lo que resulta en ataques de DoS.
El paso de objetos privilegiados y llamadas de función privilegiadas debe ser cuidadosamente autenticado, ya que estas funciones y objetos están involucrados en la seguridad de la financiación. Además, se deben verificar los tipos de objetos para determinar si son objetos privados o compartidos. Si un objeto se convierte incorrectamente de un objeto privado a un objeto compartido, los usuarios no autorizados pueden acceder al objeto, lo que representa un posible riesgo de seguridad.
Los desarrolladores pueden usar Move Prover para verificar que el programa esté aplicando una política de control de acceso explícita. Por ejemplo, en std.offer, podemos ver que la función se termina cuando el destinatario no está en la lista blanca:
La dependencia del orden de transacción (TOD) se refiere al hecho de que el comportamiento de un contrato puede tener resultados diferentes dependiendo del orden en que se ejecuten las transacciones, especialmente en un entorno descentralizado donde el minero o el verificador pueden elegir cómo se ordenan las transacciones. Puede traer riesgos como ataques de front-running.
En SUI, todavía depende del productor de bloques ejecutar la orden de transacciones, por lo que los contratos MOVE todavía pueden verse afectados por este problema si están diseñados para depender del orden de transacciones para cambios de estado.
En la cadena Sui, el problema de Gas de los contratos inteligentes de Move se refleja principalmente en los costos de cálculo y almacenamiento necesarios para la ejecución del contrato. Con el aumento de la complejidad del contrato y los cambios de estado, el consumo de Gas también aumenta en consecuencia. Los desarrolladores deben centrarse en optimizar la lógica del contrato, reduciendo cálculos innecesarios y actualizaciones de estado para disminuir los costos de transacción para los usuarios, y especialmente para evitar la situación de iteraciones incontrolables en el contrato, que pueden ser debido a gas insuficiente y no poder realizar el negocio correctamente.
En la actualidad, el tipo numérico soportado por Move es entero sin signo y no admite punto flotante, por lo que la parte fraccional se truncará y se redondeará hacia abajo durante las operaciones de división, lo que llevará a resultados de cálculo inexactos, lo que puede afectar algunas políticas clave, provocar pérdidas de ingresos e incluso convertirse en una vulnerabilidad de seguridad.
Para este problema, la medida de mitigación habitual es extender la precisión, pero debe tenerse en cuenta que la precisión debe restaurarse cuando se obtenga el resultado final.
En Move smart contracts en la blockchain SUI, la gestión de objetos es un desafío clave que abarca múltiples aspectos del ciclo de vida del objeto, propiedad, acceso concurrente, serialización y costos de almacenamiento. Los desarrolladores deben administrar con precisión la creación, actualización y destrucción de objetos para evitar el desperdicio de recursos y la inconsistencia de estado. Al mismo tiempo, el diseño razonable de la lógica del contrato para controlar la propiedad y los derechos de acceso de los objetos, así como manejar el acceso concurrente de múltiples usuarios al mismo objeto, son factores importantes para garantizar el funcionamiento seguro y eficiente de los smart contracts.
Por ejemplo, con la implementación de préstamos relámpago en el proyecto SUI DeFi, los atacantes pueden utilizar préstamos flash para llevar a cabo ataques de grandes fondos como la manipulación de precios.
En la función común de intercambio de tokens AMM, los desarrolladores pueden usar Move Prover para verificar que el número de tokens ha cambiado correctamente:
Por ejemplo, los protocolos de préstamo siempre deben estar completamente asegurados después de una serie de depósitos, préstamos y retiros. En el caso de que se cancele el libro de órdenes del acuerdo de negociación de contratos perpetuos en cadena después de que se coloque la orden, no debe haber cambios en el libro mayor, etc., que deben ser verificados y comprobados por el desarrollador.
Actualmente, DeFi y Memecoins de SUI están floreciendo, y el volumen de negociación y TVL han atraído un crecimiento explosivo. Posteriormente, hay cada vez más tipos de estafas y operaciones de spam que los usuarios necesitan evitar.
Este año, apareció una estafa de airdrop llamada Suisses en Sui Eco, que permitió que muchos usuarios tuvieran sus activos robados. Cuando un usuario se conecta a una billetera en el sitio web de Suisses y hace clic en Reclamar, aparece una solicitud de transacción para la transferencia de los activos del usuario. Si el usuario firma la transacción, encontrará que todos los activos de su billetera han sido transferidos.
Debido a las características de SUI: todo es objeto, no solo los tokens en la billetera del usuario, NFT es objeto, sino también la participación del usuario en la minería DeFi, la garantía de liquidez y otros certificados. Si ocurre un ataque de phishing, todos los activos de un usuario dentro del ecosistema de SUI pueden ser transferidos por el hacker de una vez.
Existen muchos tokens falsos y honeypots en el ecosistema SUI. En particular, cuando los usuarios comercian memecoins en el ecosistema SUI, pueden verse atrapados accidentalmente.
Al crear tokens en SUI, como se muestra a continuación, los hackers pueden definir los mismos iconos y nombres que los tokens populares o principales, lo que los hace indistinguibles para los usuarios generales. Por lo tanto, los usuarios deben verificar si el formato de datos del token es correcto al comprarlo.
Además, los hackers también pueden añadir una función de DenyList al contrato del token, de modo que los usuarios que compren el token no puedan venderlo, causando pérdidas a los usuarios.
MEV significa valor extraíble máximo. MEV originalmente se refería al Valor Extraíble por el Minero, donde los mineros en la red BTC ganan recompensas más allá de las tarifas de bloque y de red al reordenar transacciones en bloques. MEV no tiene nada que ver con el tipo de red blockchain. MEV existe en todas las blockchains, y SUI no es una excepción.
Sui utiliza Narwhal como piscina de memoria para asignar transacciones no finalizadas a nodos, y utiliza el algoritmo Bullshark como motor de consenso para ordenar transacciones.
La regla de pedido de Sui para las transacciones se basa en las tarifas de gas. Además, dado que Sui adopta un esquema de ejecución de transacciones que combina paralelo y secuencial, las transacciones que comparten el mismo estado del grupo de transacciones de AMM solo se pueden ejecutar secuencialmente. Por lo tanto, el ataque sándwich / transacción frontrunning es factible. Un atacante puede lanzar un ataque sándwich a través de una tarifa de gas más alta, de modo que los usuarios que participan en las operaciones de DeFi sufran pérdidas.