Desarrolladores

Soroban: La Plataforma de Contratos Inteligentes Diseñada para Desarrolladores

Autor

Stellar Development Foundation

Fecha de publicación

Contratos inteligentes

DeFi

Soroban

Tl;dr: Soroban, la plataforma de contratos inteligentes de Stellar, se enfoca en tres pilares críticos: Rendimiento, Sostenibilidad, Seguridad. Estos factores son cruciales para construir aplicaciones blockchain escalables, eficientes y seguras.

Tres atributos críticos forman la "Santa Trinidad" en las plataformas de contratos inteligentes: rendimiento, sostenibilidad y seguridad. Estos tres pilares informaron la construcción de Soroban – la plataforma de contratos inteligentes en Stellar – y las muchas decisiones de diseño tomadas a lo largo del ecosistema de Stellar para ahorrar tiempo, dinero y carga mental al escribir contratos inteligentes.

Examinemos por qué estos factores son cruciales para cualquier plataforma que aspire a una adopción generalizada, cómo los contratos inteligentes en Stellar abordan cada uno de ellos y por qué importan para los creadores.

Rendimiento

La velocidad se encuentra con la sofisticación

El rendimiento en blockchain no se trata solo de transacciones por segundo (TPS). También es la capacidad de manejar contratos inteligentes complejos y sofisticados de manera eficiente. Y a medida que avanzamos hacia casos de uso más avanzados como roll-ups y pruebas de conocimiento cero, el poder computacional bruto se vuelve cada vez más importante.

Con esto en mente, Soroban necesita no solo igualar el rendimiento de la cadena de hoy, sino también estar construida para tener en cuenta las innovaciones futuras. A continuación, se presentan algunas de las decisiones de diseño específicas tomadas para asegurar que el rendimiento nunca sufra en Stellar.


Utiliza Rust y WebAssembly (Wasm) para un rendimiento superior

Soroban aprovecha Rust y WebAssembly (Wasm) para lograr un rendimiento superior. Las características de seguridad de Rust y el conjunto de instrucciones simple y predecible de Wasm proporcionan una base sólida para el desarrollo de contratos inteligentes. A diferencia de los lenguajes específicos de blockchain como Solidity, Soroban se beneficia del extenso ecosistema y las mejoras continuas de los miles de desarrolladores que trabajan en Rust y Wasm.

Implementa concurrencia libre de conflictos, asegurando un procesamiento paralelo de transacciones eficiente sin conflictos.

Una de las características destacadas de Soroban es su implementación de concurrencia libre de conflictos. A diferencia de la concurrencia optimista que muchas blockchains utilizan, Soroban está diseñada para asegurar que las transacciones nunca entren en conflicto durante la ejecución. La concurrencia libre de conflictos elimina la necesidad de que los desarrolladores se preocupen por la programación paralela, y los validadores evitarán tener que reintentar o descartar trabajo debido a conflictos. Y permite verdadera ejecución paralela, aumentando significativamente el rendimiento sin sacrificar la consistencia.

Introduce tarifas multidimensionales para optimizar el uso del espacio de bloque.

Soroban también introduce tarifas multidimensionales para optimizar el uso del espacio de bloque. Este enfoque innovador permite empacar transacciones en bloques de manera más eficiente, potencialmente aumentando el TPS con una mejor asignación de recursos sin cambiar el hardware subyacente o aumentar los costos de red. Soroban reconoce que las computadoras pueden realizar diferentes tipos de trabajo en paralelo.

Conclusión clave: La arquitectura de Soroban permite construir aplicaciones complejas sin preocuparse por los cuellos de botella de rendimiento.

Sostenibilidad

Red a prueba de futuro

Una plataforma verdaderamente sostenible mantiene su rendimiento a medida que escala sin comprometer la rentabilidad. Se trata de más que ser rápido hoy, sino de permanecer rápido y económico una década a partir de ahora.

Aquí están algunas de las decisiones de diseño tomadas para asegurar que Stellar escale para cumplir con las expectativas de los creadores y la demanda de los usuarios.

Solución de archivo de estado para gestionar el crecimiento de datos a largo plazo

La novedosa solución de archivo de estado de Soroban aborda el desafío de un estado de blockchain en constante crecimiento. Asegura que la red pueda mantener el rendimiento incluso a medida que los datos se acumulan con el tiempo, un factor crucial para la viabilidad a largo plazo. El enfoque puede permanecer en la construcción de aplicaciones sin preocuparse por cómo el crecimiento del estado podría impactar el rendimiento en los años venideros.

Asegurando Tarifas Bajas y Estables a Medida que la Red Escala

Quizás lo más importante, Soroban se beneficia del Protocolo de Consenso de Stellar. A diferencia de Prueba de Participación o Prueba de Trabajo, el Protocolo de Consenso de Stellar’s Prueba de Acuerdo se basa en la confianza entre validadores, no en incentivos monetarios. Así que a diferencia de cadenas donde los incentivos de los validadores aumentan las tarifas, las tarifas en Stellar – incluso a medida que la red escala y la adopción aumenta – están diseñadas para permanecer bajas. Para los desarrolladores, esto se traduce en una estructura de tarifas más predecible y estable y evita la "espiral de tarifas" que hemos visto ocurrir en otros ecosistemas de blockchain, donde la creciente popularidad puede paradójicamente hacer que la red sea más cara de usar.

Conclusión clave: Los desarrolladores pueden construir con confianza en Soroban, sabiendo que la plataforma está diseñada para escalar de manera rentable.

Seguridad

Asegurando el futuro de las finanzas

Construir nuevos sistemas financieros que manejarán miles de millones o incluso billones de dólares en transacciones es una responsabilidad impresionante. Una única vulnerabilidad puede llevar a pérdidas y erosionar la confianza del usuario. Esta responsabilidad exige una plataforma que trate la seguridad como un principio de diseño central.

Soroban aspira a crear un entorno donde escribir contratos inteligentes seguros se convierta en el camino de menor resistencia.

Rust, reconocido como uno de los lenguajes de programación más seguros

El enfoque de Soroban hacia la seguridad comienza con su fundamento en Rust, un lenguaje con:

  • Aval de expertos en ciberseguridad
  • Fuertes garantías de seguridad de memoria, eliminando clases enteras de vulnerabilidades
  • Amplias herramientas y comprobaciones del compilador ayudan a detectar problemas potenciales temprano en el proceso de desarrollo

Sin reentrada, eliminando un vector de ataque significativo

Una de las características de seguridad clave de Soroban es su decisión de no permitir la reentrada. Mientras que la reentrada puede ser útil en la programación general, puede ser peligrosa en aplicaciones financieras y ha sido responsable de algunos de los mayores hackeos en la historia de blockchain.

  • Los ataques de reentrada han sido responsables de algunos de los mayores hackeos en la historia de blockchain
  • Mientras que útil en la programación general, la reentrada puede ser peligrosa en aplicaciones financieras
  • La elección de diseño de Soroban de no permitir la reentrada reduce significativamente la superficie de ataque

Requerido-Autorización: Simplificando la Seguridad, Previniendo el Mal Uso

Soroban también implementa un marco de autorización requerida que facilita su uso de manera segura mientras también es difícil de mal usar. A diferencia de las plataformas tradicionales de contratos inteligentes que a menudo usan autorizaciones amplias y generales, Soroban permite que los contratos soliciten permisos específicos y limitados. Este enfoque granular reduce significativamente la superficie de ataque y protege a los usuarios de posibles explotaciones. La autorización puede entonces implementarse con un mínimo de código.

#[contracttype]
pub enum DataKey {
    Counter(Address),
}

#[contract]
pub struct IncrementContract;

#[contractimpl]
impl IncrementContract {
    /// Increment incrementa un contador para el usuario, y devuelve el valor.
    pub fn increment(env: Env, user: Address, value: u32) -> u32 {
        // Requiere que `user` haya autorizado la llamada de `increment` de este
        // contrato con todos los argumentos pasados a `increment`, es decir, `user`
        // y `value`. Esto provocará un pánico si la autenticación falla por cualquier motivo.
        // Cuando se llama a esto, el host de Soroban realiza la autenticación necesaria,
        // gestiona la prevención de reproducción y hace cumplir las políticas de autorización del usuario.
        // Los contratos normalmente no deberían preocuparse por estos detalles y simplemente
        // escribir código de manera genérica usando `Address` y `require_auth` (o
        // `require_auth_for_args`).
        user.require_auth();

        // Esta llamada es equivalente a la anterior:
        // user.require_auth_for_args((&user, value).into_val(&env));

        // La siguiente tiene menos argumentos pero es equivalente en alcance de autorización
        // a las llamadas anteriores (la dirección del usuario no tiene que ser
        // incluida en args ya que se garantiza que esté autenticada).
        // user.require_auth_for_args((value,).into_val(&env));

        // Construir una clave para los datos que se almacenan. Usar un enum para configurar el
        // contrato bien para agregar otros tipos de datos a almacenar.
        let key = DataKey::Counter(user.clone());

        // Obtener el conteo actual para el invocador.
        let mut count: u32 = env.storage().persistent().get(&key).unwrap_or_default();

        // Incrementar el conteo.
        count += value;

        // Guardar el conteo.
        env.storage().persistent().set(&key, &count);

        // Devolver el conteo al llamador.
        count
    }
}

Esta única línea de código asegura que solo el propietario legítimo pueda iniciar una transferencia de tokens, simplificando dramáticamente el desarrollo de aplicaciones seguras y reduciendo las posibilidades de error de desarrollador.

  • Implementa un modelo de autorización más granular y específico en comparación con las plataformas existentes de contratos inteligentes
  • Permite que los contratos soliciten permisos específicos y limitados en lugar de una autorización general
  • Ayuda a proteger a los usuarios de posibles explotaciones donde contratos maliciosos podrían abusar de permisos amplios
  • Simplifica el desarrollo de aplicaciones seguras con una sola línea de código, reduciendo las posibilidades de error de desarrollador

Conclusión clave: Soroban proporciona una base de seguridad, permitiendo a los desarrolladores enfocarse en construir características en lugar de preocuparse constantemente por posibles vulnerabilidades.

La Santa Trinidad

Uniendo Todo

Mientras que muchas plataformas blockchain sobresalen en una o dos de estas áreas, Soroban aspira a cumplir con las tres. Este enfoque holístico hace el trabajo pesado para los desarrolladores optimizando el rendimiento, la sostenibilidad a largo plazo y la seguridad, brindando a los desarrolladores una base robusta para construir con facilidad y confianza.

Consulta los documentos por ti mismo y únete al discord para saber más.

Próximos Pasos

Lecturas Recomendadas

Visión General de Contratos Inteligentes Soroban

Una plataforma de contratos inteligentes amigable para desarrolladores, basada en Rust, diseñada para escalar y sensibilidad. Soroban se integra sin…

Saber Más

Artículo

Garand Tyson

Introduciendo Archivo de Estado: La Solución al Bloat de Estado en Stellar

Este artículo es parte de una serie de inmersión profunda sobre el problema del bloat de estado en la industria, que debe resolverse para que las…

Ver

Artículo

Garand Tyson

Escalabilidad con Archivo de Estado en Stellar vs. Avocado de Solana

Un análisis profundo sobre las características de escalabilidad del Archivo de Estado en la red de Stellar y analiza la versión menos eficiente de…

Ver

Los Boletines

El correo que realmente quieres leer

Entérate de nosotros primero. Suscríbete para obtener información en tiempo real sobre noticias, funcionalidades y recursos del ecosistema Stellar.

Al proporcionar la información de contacto requerida en este formulario, aceptas ser contactado por Stellar Development Foundation (SDF) para informarte sobre nuestros productos y servicios. Para más información sobre nuestras prácticas de privacidad o cómo darte de baja, por favor consulta nuestra Política de Privacidad.

Este sitio está protegido por reCAPTCHA y la Política de Privacidad de Google Política de Privacidad y Términos de Servicio aplican