Solana es una plataforma de blockchain de alto rendimiento diseñada para admitir dApps, conocida por su velocidad y escalabilidad logradas a través de mecanismos de consenso y diseños arquitectónicos únicos. Este artículo presentará brevemente las características del modelo de programación de contratos inteligentes de Solana, comparándolo con Ethereum para contextualizar.
Los programas que se ejecutan en Ethereum se conocen como contratos inteligentes, que son una serie de código (funciones) y datos (estado) ubicados en una dirección específica en la red de Ethereum. Los contratos inteligentes también son cuentas de Ethereum, denominadas cuentas de contrato. Tienen saldos, pueden ser el objetivo de transacciones, pero no pueden ser controlados por individuos. Se despliegan en la red para ejecutarse como programas.
Por el contrario, el código ejecutable que se ejecuta en Solana se denomina Programas On-Chain, los cuales interpretan las instrucciones enviadas con cada transacción. Estos programas pueden implementarse directamente en el núcleo de la red como programas nativos o publicados por cualquier persona como programas SPL.
Instrucciones: Las instrucciones son términos únicos para los programas en cadena de Solana. Consisten en instrucciones que ejecutan operaciones específicas, formando la unidad más pequeña de ejecución para las transacciones de Solana. Cada transacción de Solana contiene una o más instrucciones especificando las operaciones a realizar, incluyendo la llamada a programas en cadena específicos, pasando cuentas, listas de entrada y proporcionando matrices de bytes. Las instrucciones tienen límites computacionales, por lo que los programas en cadena deben optimizarse para utilizar menos unidades computacionales o dividir operaciones costosas en múltiples instrucciones.
Programas nativos: estos proporcionan las funcionalidades esenciales requeridas por los nodos validadores. El más famoso es el Programa del Sistema, responsable de gestionar la creación de nuevas cuentas y transferir SOL entre dos cuentas.
Programas SPL: Estos definen una serie de actividades on-chain, incluyendo la creación de tokens, intercambio, préstamos, creación de pools de participación, mantenimiento de servicios de resolución de nombres de dominio on-chain, y más. Entre ellos, el Programa de Tokens SPL se utiliza para operaciones con tokens, mientras que programas como el Programa de Cuenta de Tokens Asociados se utilizan comúnmente para escribir otros programas personalizados.
Tú lo llamas contratos inteligentes, yo lo llamo programas en cadena. Nombres diferentes, pero ambos se refieren a código que se ejecuta en la cadena de bloques. Al igual que Zhang San, Li Si y Wang Ma Zi son todos nombres, la calidad de uno también debería evaluarse en función de otros aspectos.
Al igual que Ethereum, Solana también es una cadena de bloques basada en un modelo de cuenta, pero Solana proporciona un modelo de cuenta diferente al de Ethereum, almacenando datos de una manera diferente.
En Solana, las cuentas pueden contener información de billetera y otros datos. Los campos definidos por una cuenta incluyen Lamports (el saldo de la cuenta), Propietario (el propietario de la cuenta), Ejecutable (si es una cuenta ejecutable) y Datos (los datos almacenados en la cuenta). Cada cuenta especifica un programa como su propietario para diferenciar qué estado de programa almacena. Estos programas en cadena son de solo lectura o sin estado: las cuentas de programa (cuentas ejecutables) solo almacenan el bytecode BPF y no almacenan ningún estado. Los programas almacenan su estado en otras cuentas independientes (cuentas no ejecutables). El modelo de programación de Solana desacopla el código y los datos.
Por otro lado, las cuentas de Ethereum sirven principalmente como referencias al estado de la Máquina Virtual de Ethereum (EVM). Los contratos inteligentes en Ethereum contienen tanto la lógica del código como la necesidad de almacenar datos de usuario. A menudo se considera que esto es una falla de diseño heredada de la historia de la EVM.
¡No subestimes esta distinción! Los contratos inteligentes de Solana son fundamentalmente más difíciles de atacar que las blockchains con modelos de programación acoplados, como Ethereum:
En Ethereum, el “propietario” de un contrato inteligente es una variable global que corresponde directamente a cada contrato inteligente. Por lo tanto, llamar a cierta función podría alterar directamente el “propietario” del contrato.
En Solana, sin embargo, el "propietario" de un contrato inteligente es 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 identificar la función problemática, sino también preparar las cuentas "correctas" para llamar a esa función. Este paso no es fácil porque los contratos inteligentes de Solana normalmente involucran múltiples cuentas de entrada y gestionan sus relaciones a través de restricciones (como account1.owner==account2.key
El proceso desde "preparar las cuentas correctas" hasta "lanzar el ataque" es suficiente para que los monitores de seguridad detecten de manera proactiva transacciones sospechosas relacionadas con la creación de cuentas "falsas" relacionadas con contratos inteligentes antes de que ocurra un ataque.
Los contratos inteligentes de Ethereum son como una caja fuerte con una sola contraseña única. Una vez que tienes esta contraseña, obtienes la propiedad completa. Los de Solana, por otro lado, son como una caja fuerte con muchas contraseñas. Para obtener acceso, no solo necesitas obtener las contraseñas, sino también entender los identificadores correspondientes antes de poder abrir la puerta.
Rust es el lenguaje de programación principal para desarrollar contratos inteligentes en Solana. Sus características de rendimiento y seguridad lo hacen adecuado para el entorno de alto riesgo de la cadena de bloques y los contratos inteligentes. Solana también es compatible con C, C++ y otros lenguajes (aunque menos comunes). Se proporcionan los SDK oficiales de Rust y C para apoyar el desarrollo de programas en cadena. Los desarrolladores pueden usar herramientas para compilar programas en bytes de código de filtro de paquetes de Berkeley (archivos con extensión .so) y desplegarlos en la cadena de bloques de Solana. La lógica de los contratos inteligentes se ejecuta a través del tiempo de ejecución paralelo de contratos inteligentes de Sealevel.
Sin embargo, debido a la curva de aprendizaje pronunciada del lenguaje Rust y su falta de personalización para el desarrollo de blockchain, muchos requisitos resultan en código redundante y reinventar la rueda. Para simplificar el desarrollo, muchos proyectos en producción utilizan el marco Anchor creado por la colaboración de Backpack y Armani. Además, varios nuevos lenguajes de programación específicamente diseñados para el desarrollo de blockchain, como Cairo (Starknet) y Move (Sui, Aptos), se basan en Rust.
Muchos proyectos en producción utilizan el marco de trabajo Anchor.
Los contratos inteligentes de Ethereum se desarrollan principalmente utilizando el lenguaje Solidity, que tiene una sintaxis similar a JavaScript, con archivos de código que tienen una extensión .sol. Debido a su sintaxis relativamente simple y a herramientas de desarrollo más maduras (como el framework Hardhat y el IDE Remix), Ethereum generalmente se considera que ofrece una experiencia de desarrollo más simple y agradable en comparación con Solana, que tiene una curva de aprendizaje más alta. A pesar de la popularidad actual de Solana, el número de desarrolladores en Ethereum sigue siendo mucho mayor que en Solana.
En circunstancias específicas, un automóvil de carreras de primer nivel superará a un automóvil modificado. El óxido, al igual que un automóvil de carreras de primer nivel, garantiza eficazmente el rendimiento y la seguridad de Solana. Sin embargo, no está diseñado intrínsecamente para el desarrollo de programas en la cadena, lo que en realidad aumenta el nivel de dificultad al conducir (desarrollar). Las cadenas públicas que adoptan lenguajes basados en Rust y personalizados para el desarrollo en cadena pueden ser comparadas con la modificación de este automóvil de carreras para que se adapte mejor a las condiciones del camino. Solana se encuentra en desventaja en este sentido.
El modelo de programación de contratos inteligentes de Solana es innovador. Ofrece un enfoque sin estado para el desarrollo de contratos inteligentes, con Rust como lenguaje de programación principal y una arquitectura que separa la lógica del estado. Esto proporciona a los desarrolladores un entorno potente para construir y desplegar contratos inteligentes, garantizando seguridad y rendimiento, aunque con una mayor dificultad de desarrollo. Solana se centra en alta capacidad, bajos costos y escalabilidad, lo que la convierte en la elección ideal para desarrolladores que buscan crear dApps de alto rendimiento.
Este artículo está reproducido de [ panews], título original “Mi abuela también puede entender: ¿Cuál es la diferencia entre el modelo de programación de Solana y ETH?”, los derechos de autor pertenecen al autor original [Foresight News, Alex Liu], si tiene alguna objeción a la reimpresión, por favor contacteEquipo de aprendizaje de Gate, el equipo lo manejará tan pronto como sea posible de acuerdo con los procedimientos relevantes.
Descargo de responsabilidad: Las opiniones y puntos de vista expresados en este artículo representan solo las opiniones personales del autor y no constituyen ningún consejo de inversión.
Otras versiones del artículo en otros idiomas son traducidas por el equipo de Gate Learn, no mencionadas enGate.io, el artículo traducido no puede ser reproducido, distribuido o plagiado.
Mời người khác bỏ phiếu
Solana es una plataforma de blockchain de alto rendimiento diseñada para admitir dApps, conocida por su velocidad y escalabilidad logradas a través de mecanismos de consenso y diseños arquitectónicos únicos. Este artículo presentará brevemente las características del modelo de programación de contratos inteligentes de Solana, comparándolo con Ethereum para contextualizar.
Los programas que se ejecutan en Ethereum se conocen como contratos inteligentes, que son una serie de código (funciones) y datos (estado) ubicados en una dirección específica en la red de Ethereum. Los contratos inteligentes también son cuentas de Ethereum, denominadas cuentas de contrato. Tienen saldos, pueden ser el objetivo de transacciones, pero no pueden ser controlados por individuos. Se despliegan en la red para ejecutarse como programas.
Por el contrario, el código ejecutable que se ejecuta en Solana se denomina Programas On-Chain, los cuales interpretan las instrucciones enviadas con cada transacción. Estos programas pueden implementarse directamente en el núcleo de la red como programas nativos o publicados por cualquier persona como programas SPL.
Instrucciones: Las instrucciones son términos únicos para los programas en cadena de Solana. Consisten en instrucciones que ejecutan operaciones específicas, formando la unidad más pequeña de ejecución para las transacciones de Solana. Cada transacción de Solana contiene una o más instrucciones especificando las operaciones a realizar, incluyendo la llamada a programas en cadena específicos, pasando cuentas, listas de entrada y proporcionando matrices de bytes. Las instrucciones tienen límites computacionales, por lo que los programas en cadena deben optimizarse para utilizar menos unidades computacionales o dividir operaciones costosas en múltiples instrucciones.
Programas nativos: estos proporcionan las funcionalidades esenciales requeridas por los nodos validadores. El más famoso es el Programa del Sistema, responsable de gestionar la creación de nuevas cuentas y transferir SOL entre dos cuentas.
Programas SPL: Estos definen una serie de actividades on-chain, incluyendo la creación de tokens, intercambio, préstamos, creación de pools de participación, mantenimiento de servicios de resolución de nombres de dominio on-chain, y más. Entre ellos, el Programa de Tokens SPL se utiliza para operaciones con tokens, mientras que programas como el Programa de Cuenta de Tokens Asociados se utilizan comúnmente para escribir otros programas personalizados.
Tú lo llamas contratos inteligentes, yo lo llamo programas en cadena. Nombres diferentes, pero ambos se refieren a código que se ejecuta en la cadena de bloques. Al igual que Zhang San, Li Si y Wang Ma Zi son todos nombres, la calidad de uno también debería evaluarse en función de otros aspectos.
Al igual que Ethereum, Solana también es una cadena de bloques basada en un modelo de cuenta, pero Solana proporciona un modelo de cuenta diferente al de Ethereum, almacenando datos de una manera diferente.
En Solana, las cuentas pueden contener información de billetera y otros datos. Los campos definidos por una cuenta incluyen Lamports (el saldo de la cuenta), Propietario (el propietario de la cuenta), Ejecutable (si es una cuenta ejecutable) y Datos (los datos almacenados en la cuenta). Cada cuenta especifica un programa como su propietario para diferenciar qué estado de programa almacena. Estos programas en cadena son de solo lectura o sin estado: las cuentas de programa (cuentas ejecutables) solo almacenan el bytecode BPF y no almacenan ningún estado. Los programas almacenan su estado en otras cuentas independientes (cuentas no ejecutables). El modelo de programación de Solana desacopla el código y los datos.
Por otro lado, las cuentas de Ethereum sirven principalmente como referencias al estado de la Máquina Virtual de Ethereum (EVM). Los contratos inteligentes en Ethereum contienen tanto la lógica del código como la necesidad de almacenar datos de usuario. A menudo se considera que esto es una falla de diseño heredada de la historia de la EVM.
¡No subestimes esta distinción! Los contratos inteligentes de Solana son fundamentalmente más difíciles de atacar que las blockchains con modelos de programación acoplados, como Ethereum:
En Ethereum, el “propietario” de un contrato inteligente es una variable global que corresponde directamente a cada contrato inteligente. Por lo tanto, llamar a cierta función podría alterar directamente el “propietario” del contrato.
En Solana, sin embargo, el "propietario" de un contrato inteligente es 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 identificar la función problemática, sino también preparar las cuentas "correctas" para llamar a esa función. Este paso no es fácil porque los contratos inteligentes de Solana normalmente involucran múltiples cuentas de entrada y gestionan sus relaciones a través de restricciones (como account1.owner==account2.key
El proceso desde "preparar las cuentas correctas" hasta "lanzar el ataque" es suficiente para que los monitores de seguridad detecten de manera proactiva transacciones sospechosas relacionadas con la creación de cuentas "falsas" relacionadas con contratos inteligentes antes de que ocurra un ataque.
Los contratos inteligentes de Ethereum son como una caja fuerte con una sola contraseña única. Una vez que tienes esta contraseña, obtienes la propiedad completa. Los de Solana, por otro lado, son como una caja fuerte con muchas contraseñas. Para obtener acceso, no solo necesitas obtener las contraseñas, sino también entender los identificadores correspondientes antes de poder abrir la puerta.
Rust es el lenguaje de programación principal para desarrollar contratos inteligentes en Solana. Sus características de rendimiento y seguridad lo hacen adecuado para el entorno de alto riesgo de la cadena de bloques y los contratos inteligentes. Solana también es compatible con C, C++ y otros lenguajes (aunque menos comunes). Se proporcionan los SDK oficiales de Rust y C para apoyar el desarrollo de programas en cadena. Los desarrolladores pueden usar herramientas para compilar programas en bytes de código de filtro de paquetes de Berkeley (archivos con extensión .so) y desplegarlos en la cadena de bloques de Solana. La lógica de los contratos inteligentes se ejecuta a través del tiempo de ejecución paralelo de contratos inteligentes de Sealevel.
Sin embargo, debido a la curva de aprendizaje pronunciada del lenguaje Rust y su falta de personalización para el desarrollo de blockchain, muchos requisitos resultan en código redundante y reinventar la rueda. Para simplificar el desarrollo, muchos proyectos en producción utilizan el marco Anchor creado por la colaboración de Backpack y Armani. Además, varios nuevos lenguajes de programación específicamente diseñados para el desarrollo de blockchain, como Cairo (Starknet) y Move (Sui, Aptos), se basan en Rust.
Muchos proyectos en producción utilizan el marco de trabajo Anchor.
Los contratos inteligentes de Ethereum se desarrollan principalmente utilizando el lenguaje Solidity, que tiene una sintaxis similar a JavaScript, con archivos de código que tienen una extensión .sol. Debido a su sintaxis relativamente simple y a herramientas de desarrollo más maduras (como el framework Hardhat y el IDE Remix), Ethereum generalmente se considera que ofrece una experiencia de desarrollo más simple y agradable en comparación con Solana, que tiene una curva de aprendizaje más alta. A pesar de la popularidad actual de Solana, el número de desarrolladores en Ethereum sigue siendo mucho mayor que en Solana.
En circunstancias específicas, un automóvil de carreras de primer nivel superará a un automóvil modificado. El óxido, al igual que un automóvil de carreras de primer nivel, garantiza eficazmente el rendimiento y la seguridad de Solana. Sin embargo, no está diseñado intrínsecamente para el desarrollo de programas en la cadena, lo que en realidad aumenta el nivel de dificultad al conducir (desarrollar). Las cadenas públicas que adoptan lenguajes basados en Rust y personalizados para el desarrollo en cadena pueden ser comparadas con la modificación de este automóvil de carreras para que se adapte mejor a las condiciones del camino. Solana se encuentra en desventaja en este sentido.
El modelo de programación de contratos inteligentes de Solana es innovador. Ofrece un enfoque sin estado para el desarrollo de contratos inteligentes, con Rust como lenguaje de programación principal y una arquitectura que separa la lógica del estado. Esto proporciona a los desarrolladores un entorno potente para construir y desplegar contratos inteligentes, garantizando seguridad y rendimiento, aunque con una mayor dificultad de desarrollo. Solana se centra en alta capacidad, bajos costos y escalabilidad, lo que la convierte en la elección ideal para desarrolladores que buscan crear dApps de alto rendimiento.
Este artículo está reproducido de [ panews], título original “Mi abuela también puede entender: ¿Cuál es la diferencia entre el modelo de programación de Solana y ETH?”, los derechos de autor pertenecen al autor original [Foresight News, Alex Liu], si tiene alguna objeción a la reimpresión, por favor contacteEquipo de aprendizaje de Gate, el equipo lo manejará tan pronto como sea posible de acuerdo con los procedimientos relevantes.
Descargo de responsabilidad: Las opiniones y puntos de vista expresados en este artículo representan solo las opiniones personales del autor y no constituyen ningún consejo de inversión.
Otras versiones del artículo en otros idiomas son traducidas por el equipo de Gate Learn, no mencionadas enGate.io, el artículo traducido no puede ser reproducido, distribuido o plagiado.