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
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
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
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:
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.
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.
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
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
Una plataforma de contratos inteligentes amigable para desarrolladores, basada en Rust, diseñada para escalar y sensibilidad. Soroban se integra sin…
Artículo
• Garand Tyson
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…
Artículo
• Garand Tyson
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…
Los Boletines
Entérate de nosotros primero. Suscríbete para obtener información en tiempo real sobre noticias, funcionalidades y recursos del ecosistema Stellar.