Desarrolladores

Soroban: La Plataforma de Contrato Inteligente 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 través 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 apunte a una adopción generalizada, cómo los contratos inteligentes en Stellar abordan cada uno de ellos y por qué son importantes para los creadores.

Rendimiento

LA VELOCIDAD ENCUENTRA 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. A medida que avanzamos hacia casos de uso más avanzados como roll-ups y pruebas de conocimiento cero, el poder computacional puro 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 construido para tener en cuenta 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 eficiente de transacciones paralelas 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ñado 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 un empaquetado más eficiente de transacciones en bloques, aumentando potencialmente el TPS con una mejor asignación de recursos sin cambiar el hardware subyacente o aumentar los costos de la red. Soroban reconoce que las computadoras pueden realizar diferentes tipos de trabajo en paralelo.

Clave para llevar: La arquitectura de Soroban permite construir aplicaciones complejas sin preocuparse por cuellos de botella en el 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 seguir siendo rápido y asequible 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 innovadora 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 construir 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 basado en el Acuerdo de Confianza se construye sobre la confianza entre validadores, no incentivos monetarios. Así que a diferencia de las 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.

Clave para llevar: 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 sola 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 ambiente 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 fundación 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 controles del compilador ayudan a detectar posibles problemas temprano en el proceso de desarrollo

Sin reentrancia, eliminando un vector de ataque significativo

Una de las características de seguridad clave de Soroban es su decisión de no permitir la reentrancia. Mientras que la reentrancia 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 reentrancia han sido responsables de algunos de los mayores hackeos en la historia de blockchain
  • Aunque útil en la programación general, la reentrancia puede ser peligrosa en aplicaciones financieras
  • La decisión de diseño de Soroban de no permitir la reentrancia reduce significativamente la superficie de ataque

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

Soroban también implementa un marco requerido por autorización que facilita su uso de manera segura al mismo tiempo que 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 código mínimo.

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

#[contract]
pub struct IncrementContract;

#[contractimpl]
impl IncrementContract {
    /// Increment increments a counter for the user, and returns the value.
    pub fn increment(env: Env, user: Address, value: u32) -> u32 {
        // Requires `user` to have authorized call of the `increment` of this
        // contract with all the arguments passed to `increment`, i.e. `user`
        // and `value`. This will panic if auth fails for any reason.
        // When this is called, Soroban host performs the necessary
        // authentication, manages replay prevention and enforces the user's
        // authorization policies.
        // The contracts normally shouldn't worry about these details and just
        // write code in generic fashion using `Address` and `require_auth` (or
        // `require_auth_for_args`).
        user.require_auth();

        // This call is equilvalent to the above:
        // user.require_auth_for_args((&user, value).into_val(&env));

        // The following has less arguments but is equivalent in authorization
        // scope to the above calls (the user address doesn't have to be
        // included in args as it's guaranteed to be authenticated).
        // user.require_auth_for_args((value,).into_val(&env));

        // Construct a key for the data being stored. Use an enum to set the
        // contract up well for adding other types of data to be stored.
        let key = DataKey::Counter(user.clone());

        // Get the current count for the invoker.
        let mut count: u32 = env.storage().persistent().get(&key).unwrap_or_default();

        // Increment the count.
        count += value;

        // Save the count.
        env.storage().persistent().set(&key, &count);

        // Return the count to the caller.
        count
    }
}

Esta única línea de código asegura que solo el propietario legítimo pueda iniciar una transferencia de token, 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 de contratos inteligentes existentes
  • 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 única línea de código, reduciendo las posibilidades de error de desarrollador

Clave para llevar: Soroban proporciona una base de seguridad, permitiendo a los desarrolladores concentrarse en construir características en lugar de preocuparse constantemente por posibles vulnerabilidades.

La Santa Trinidad

Uniendo Todo

Mientras muchas plataformas blockchain sobresalen en uno 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, dando 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.