Exploración Solana Contrato inteligente modelo de programación

6/11/2024, 5:47:31 AM
Principiante
Ethereum
Solana es una plataforma blockchain de alto rendimiento diseñada para soportar dApps. Es conocido por su velocidad y escalabilidad, lograda a través de un mecanismo de consenso y un diseño arquitectónico únicos. Este artículo utiliza Ethereum como objeto de comparación para presentar brevemente las características del modelo de programación de contratos inteligentes de Solana.

Reenviar el título original '小学生也能看懂!Solana 的编程模型,究竟和 ETH 有啥区别?'

Solana es una plataforma blockchain de alto rendimiento diseñada para soportar dApps. Es conocido por su velocidad y escalabilidad, lograda a través de un mecanismo de consenso y un diseño arquitectónico únicos. Este artículo utiliza Ethereum como objeto de comparación para presentar brevemente las características del modelo de programación de contratos inteligentes de Solana.

Contratos inteligentes y programas on-chain:

Los programas que se ejecutan en Ethereum se denominan contratos inteligentes, una serie de códigos (función) ubicados en una dirección específica en Ethereum y data(state). (Oh, el código y los datos están acoplados) Los contratos inteligentes también son cuentas de Ethereum, que se llaman cuentas de contrato. Tienen saldos y pueden convertirse en objetos de transacción, pero no pueden ser controlados por humanos y se despliegan en la red para ejecutarse como programas.

Los códigos ejecutables que se ejecutan en Solana se denominan programas on-chain y pueden interpretar las instrucciones enviadas en cada transacción. Estos programas pueden ser implementados directamente en el núcleo de la red como programas nativos, o publicados por cualquier persona como programas SPL.

  1. Instrucciones: Las instrucciones son términos únicos para programas en la cadena Solana. Los programas on-chain se componen de instrucciones. Son las unidades más pequeñas que realizan operaciones específicas: se incluyen una o más instrucciones en cada transacción de Solana. Las instrucciones especifican las acciones que se realizarán, incluida la llamada a un programa on-chain específico, pasar una cuenta, una lista de entradas y proporcionar una matriz de bytes. Las instrucciones tienen restricciones computacionales, por lo que los programas on-chain deben optimizarse para usar un pequeño número de unidades computacionales o para dividir operaciones costosas en múltiples instrucciones.

  1. Programas nativos: Son programas que proporcionan las funcionalidades necesarias para la validación de nodos. El más notable es el Programa del Sistema, que se encarga de gestionar la creación de nuevas cuentas y la transferencia de SOL entre dos cuentas.
  2. Programas SPL: Estos definen una serie de actividades on-chain, incluida la creación, intercambio y préstamo de tokens, así como la creación de grupos de participación y el mantenimiento de servicios de resolución de nombres de dominio on-chain. Entre estos, el Programa de token SPL se utiliza para operaciones de token, mientras que el Programa de cuenta de token asociado se usa comúnmente para escribir otros programas personalizados.

Tú los llamas contratos inteligentes, yo los llamo programas on-chain. Términos diferentes, pero ambos se refieren al código que se ejecuta en la cadena de bloques. Al igual que Alice, Bob y John son todos nombres, y sus cualidades reales deben ser evaluadas por otros aspectos.

Modelo de cuenta, desacoplamiento de datos:

Al igual que Ethereum, Solana también es una cadena de bloques basada en un modelo cuenta, pero Solana proporciona un modelo de cuenta diferente al Ethereum y almacena datos de diferentes maneras.

En Solana, las cuentas pueden guardar información de billetera y otros datos. Los campos definidos por la cuenta incluyen Lamports (saldo de la cuenta), Propietario (propietario cuenta), Ejecutable (si se trata de un cuenta ejecutable) y Datos (datos almacenados en el cuenta). Cada cuenta designa un programa como su propietario para distinguir para qué programa se usa la cuenta como almacén de estado. Estos programas on-chain son de solo lectura o sin estado: la cuenta del programa (cuenta ejecutable) solo almacena el bytecode BPF y no almacena ningún estado. El programa almacenará el estado en otras cuentas independientes (cuentas no ejecutables). Es decir, el modelo de programación de Solana desacopla el código y los datos.

El Ethereum cuenta es principalmente una referencia al estado EVM. Su contrato inteligente no solo tiene lógica de código, sino que también necesita almacenar datos de usuario. Esto a menudo se considera un defecto de diseño que queda de la historia de la EVM.

¡No subestimes esta distinción! Solana contratos inteligentes son fundamentalmente más difíciles de atacar en comparación con las cadenas de bloques con un modelo de programación acoplado como Ethereum.

En Ethereum, un "propietario" de contrato inteligente es una variable global que se corresponde uno a uno con el contrato inteligente. Por lo tanto, llamar a una función podría cambiar directamente el "propietario" del contrato.

En Solana, sin embargo, el "propietario" de un contrato inteligente son los datos asociados con una cuenta en lugar de una variable global. Una cuenta puede tener varios propietarios, en lugar de una asociación uno a uno. Para que un atacante explote una vulnerabilidad de seguridad en un contrato inteligente, no solo necesita encontrar la función problemática, sino que también debe preparar las cuentas "correctas" para llamar a esa función. Este paso no es fácil porque Solana contratos inteligentes normalmente implican varias cuentas de entrada y administran sus relaciones a través de restricciones (como account1.owner == account2.key). El proceso desde "preparar las cuentas correctas" hasta "lanzar un ataque" le da al personal de monitoreo de seguridad tiempo suficiente para detectar de manera proactiva transacciones sospechosas relacionadas con la creación de cuentas "falsas" asociadas con el contrato inteligente antes de que ocurra el ataque.

Ethereum contratos inteligentes son como una bóveda que utiliza una contraseña única; una vez que obtienes esta contraseña, obtienes la propiedad completa. Por el contrario, los contratos inteligentes de Solana son como una bóveda con muchas contraseñas. Para obtener acceso, no solo debe obtener las contraseñas, sino también averiguar qué contraseña corresponde a qué cerradura abrirla.

Lenguaje de programación

Rust es el lenguaje de programación principal para desarrollar contratos inteligentes en Solana. Debido a sus características de rendimiento y seguridad, es adecuado para el entorno de alto riesgo de blockchain y contratos inteligentes. Solana también soporta C, C++, y (muy inusualmente) otros lenguajes. El SDK oficial para Rust y C se proporciona para soportar el desarrollo de programas on-chain. Los desarrolladores pueden usar herramientas para compilar el programa en el bytecode Berkley Packet Filter (BPF) (el archivo tiene una extensión .so), luego implementarlo en la cadena Solana y ejecutar la lógica del contrato inteligente a través del tiempo de ejecución del contrato inteligente paralelo Sealevel.

Dado que el lenguaje Rust en sí es difícil de comenzar y no está personalizado para el desarrollo de blockchain, muchos requisitos requieren reinventar la rueda y el código redundante. (Muchos proyectos en producción utilizan el marco Anchor creado por el cocreador de Backpack, Armani, para simplificar el desarrollo) Muchos lenguajes de programación de nueva creación dedicados al desarrollo de blockchain se basan en Rust, como Cairo (Starknet), Move (Sui, Aptos).

Muchos proyectos en producción utilizan el marco Anchor

Ethereum contratos inteligentes se desarrollan principalmente en el lenguaje Solidity (la sintaxis es similar a la de javascript y el archivo de código tiene una extensión .sol). Debido a la sintaxis relativamente simple y las herramientas de desarrollo más maduras (Hardhat framework, Remix IDE ...), generalmente pensamos que la experiencia de desarrollo de Ethereum es más simple y refrescante, mientras que el desarrollo de Solana es más difícil de comenzar. Entonces, aunque Solana es muy popular ahora, de hecho, el número de desarrolladores en Ethereum sigue siendo mucho mayor que Solana.

Bajo ciertas condiciones de la carretera, los mejores autos de carreras no son tan rápidos como los autos modificados. Rust es como un auto de carreras de alto nivel, que garantiza efectivamente el rendimiento y la seguridad de Solana. Sin embargo, no está diseñado para desarrollar esta pista para programas on-chain, sino que provoca un aumento en la dificultad de conducción (desarrollo). El uso de una cadena pública basada en Rust y el desarrollo de un lenguaje personalizado para la cadena equivale a modificar el coche de carreras para hacerlo más adecuado a las condiciones de la carretera. Solana está en desventaja aquí.

Resumen

El modelo de programación de contratos inteligentes de Solana es innovador. Ofrece un enfoque sin estado para el desarrollo de contratos inteligentes, utilizando Rust como lenguaje de programación principal y una arquitectura que separa la lógica del estado. Esto proporciona a los desarrolladores un entorno robusto para construir e implementar contratos inteligentes, lo que garantiza la seguridad y el rendimiento, aunque plantea una mayor dificultad de desarrollo. Solana se centra en el alto rendimiento, el bajo costo y la escalabilidad, lo que la convierte en la opción ideal para los desarrolladores que actualmente buscan crear dApps de alto rendimiento.

Disclaimer:

  1. Este artículo es una reimpresión de [Foresight News]. Todos los derechos de autor pertenecen al autor original [Alex Liu]. Si hay objeciones a esta reimpresión, póngase en contacto con el equipo de Gate Learn, y ellos se encargarán de ello con prontitud.
  2. Descargo de responsabilidad: Los puntos de vista y opiniones expresados en este artículo son únicamente los del autor y no constituyen ningún consejo de inversión.
  3. Las traducciones del artículo a otros idiomas son realizadas por el equipo de Gate Learn. A menos que se mencione, está prohibido copiar, distribuir o plagiar los artículos traducidos.

Compartir

Calendario cripto

Desbloqueo de Tokens
Immutable X desbloqueará 24,520,000 IMX tokens el 8 de agosto, constituyendo aproximadamente el 1.31% del suministro actualmente en circulación.
IMX
-3.02%
2025-08-07
Desbloqueo de 24.52MM Token
Immutable desbloquea los tokens a las 12 AM UTC.
IMX
-3.02%
2025-08-07
AMA en X
PaLM AI realizará un AMA en X el 7-8 de agosto a las 18:00-19:00 UTC.
PALM
-2.24%
2025-08-07
Taller
Swarms llevará a cabo un taller de API el 8 de agosto. Se espera que la sesión describa las actualizaciones recientes de la API de Swarms, presente tutoriales de implementación paso a paso y discuta técnicas de optimización multi-agente.
SWARMS
-6.22%
2025-08-07
AMA en X
Dolomite llevará a cabo un AMA en X el 8 de agosto a las 17:00 UTC. La sesión se centrará en el estado de los fondos cotizados en bolsa de Bitcoin y Ether, el sentimiento del mercado prevalente y las implicaciones de las iniciativas legislativas Genius y Clarity.
DOLO
3.62%
2025-08-07

Artículos relacionados

¿Qué es Neiro? Todo lo que necesitas saber sobre NEIROETH en 2025
Intermedio

¿Qué es Neiro? Todo lo que necesitas saber sobre NEIROETH en 2025

Neiro es un perro Shiba Inu que inspiró el lanzamiento de tokens Neiro en diferentes blockchains. A partir de 2025, Neiro Ethereum (NEIROETH) ha evolucionado en una moneda meme líder con una capitalización de mercado de $215 millones, más de 87,000 titulares y cotizaciones en 12 importantes intercambios. El ecosistema ahora incluye un DAO para gobernanza comunitaria, una tienda de mercancía oficial y una aplicación móvil. NEIROETH ha implementado soluciones de capa 2 para mejorar la escalabilidad y asegurar su posición en los 10 primeros puestos de monedas meme temáticas de perros por capitalización de mercado, respaldado por una comunidad vibrante y principales influencers de criptomonedas.
9/5/2024, 3:37:05 PM
Guía sobre cómo cambiar de red en MetaMask
Principiante

Guía sobre cómo cambiar de red en MetaMask

Esta es una guía sencilla paso a paso sobre cómo cambiar su red en MetaMask.
1/11/2024, 10:37:30 AM
¿Qué es Ethereum envuelto (WETH)?
Principiante

¿Qué es Ethereum envuelto (WETH)?

Wrapped Ethereum (WETH) es una versión ERC-20 de la moneda nativa de la cadena de bloques de Ethereum, Ether (ETH). El token WETH está vinculado a la moneda original. Por cada WETH en circulación, hay un ETH en reserva. El objetivo de crear WETH es la compatibilidad en toda la red. ETH no cumple con el estándar ERC-20 y la mayoría de las DApps integradas en la red siguen este estándar. Por lo tanto, WETH se utiliza para facilitar la integración de ETH en las aplicaciones DeFi.
11/24/2022, 8:49:09 AM
Las 10 mejores herramientas de trading en Cripto
Intermedio

Las 10 mejores herramientas de trading en Cripto

El mundo cripto está en constante evolución, con nuevas herramientas y plataformas emergiendo regularmente. Descubre las principales herramientas de criptomonedas para mejorar tu experiencia de trading. Desde la gestión de cartera y el análisis de mercado hasta el seguimiento en tiempo real y las plataformas de meme coin, aprende cómo estas herramientas pueden ayudarte a tomar decisiones informadas, optimizar estrategias y mantenerte al frente en el dinámico mercado cripto.
11/28/2024, 5:39:59 AM
¿Qué es The Merge?
Principiante

¿Qué es The Merge?

Con Ethereum llevando a cabo la fusión final de la red de pruebas con la red principal, Ethereum hará oficialmente la transición de PoW a PoS. ¿Entonces, qué impacto traerá esta revolución sin precedentes al mundo de las criptomonedas?
7/10/2024, 9:12:24 AM
Principales plataformas de criptolotería para 2024
Principiante

Principales plataformas de criptolotería para 2024

Explora el mundo de las criptoloterías con esta guía completa sobre la mecánica de las criptoloterías, así como las mejores plataformas.
1/28/2024, 4:53:22 PM
Empieza ahora
¡Registrarse y recibe un bono de
$100
!