Solana é uma plataforma de blockchain de alto desempenho projetada para suportar dApps, conhecida por sua velocidade e escalabilidade alcançadas por meio de mecanismos de consenso únicos e designs arquiteturais. Este artigo irá introduzir brevemente as características do modelo de programação de contratos inteligentes da Solana, comparando-o com o Ethereum para contexto.
Por outro lado, o código executável em execução na Solana é referido como Programas On-Chain, que interpretam as instruções enviadas com cada transação. Estes programas podem ser implantados diretamente no núcleo da rede como programas nativos ou publicados por qualquer pessoa como programas SPL.
Instruções: As instruções são termos exclusivos para programas on-chain da Solana. Consistem em instruções que executam operações específicas, formando a menor unidade de execução para transações da Solana. Cada transação da Solana contém uma ou mais instruções especificando as operações a serem realizadas, incluindo a chamada de programas on-chain específicos, passando contas, listas de entrada e fornecendo matrizes de bytes. As instruções possuem limites computacionais, portanto os programas on-chain devem ser otimizados para usar menos unidades computacionais ou dividir operações caras em múltiplas instruções.

Programas nativos: Estes fornecem as funcionalidades essenciais necessárias pelos nós validadores. O mais famoso é o Programa do Sistema, responsável por gerenciar a criação de novas contas e transferir SOL entre duas contas.
Programas SPL: Estes definem uma série de atividades on-chain, incluindo criação de tokens, troca, empréstimo, criação de pools de staking, manutenção de serviços de resolução de nomes de domínio on-chain, e mais. Entre eles, o Programa de Token SPL é usado para operações com tokens, enquanto programas como o Programa de Conta de Token Associado são comumente usados para escrever outros programas personalizados.
Você chama de contratos inteligentes, eu chamo de programas on-chain. Nomes diferentes, mas ambos se referem a códigos sendo executados na blockchain. Assim como Zhang San, Li Si e Wang Ma Zi são todos nomes, a qualidade de alguém também deve ser avaliada com base em outros aspectos.
No Solana, as contas podem conter informações da carteira e outros dados. Os campos definidos por uma conta incluem Lamports (o saldo da conta), Proprietário (o proprietário da conta), Executável (se é uma conta executável) e Dados (os dados armazenados na conta). Cada conta especifica um programa como seu proprietário para diferenciar qual estado do programa ele armazena. Esses programas on-chain são somente leitura ou sem estado: contas de programa (contas executáveis) apenas armazenam o bytecode BPF e não armazenam nenhum estado. Os programas armazenam seu estado em outras contas independentes (contas não executáveis). O modelo de programação da Solana desacopla código e dados.

Por outro lado, as contas do Ethereum servem principalmente como referências ao estado da EVM (Máquina Virtual Ethereum). Os contratos inteligentes no Ethereum contêm tanto lógica de código quanto a necessidade de armazenar dados do usuário. Isso é frequentemente considerado uma falha de design herdada da história da EVM.

Não subestime esta distinção! Os contratos inteligentes da Solana são fundamentalmente mais difíceis de atacar do que blockchains com modelos de programação acoplados, como o Ethereum:
No Ethereum, o “dono” de um contrato inteligente é uma variável global que corresponde diretamente a cada contrato inteligente. Portanto, chamar uma determinada função poderia alterar diretamente o “dono” do contrato.
No Solana, no entanto, o "dono" de um contrato inteligente é dados associados a uma conta, em vez de uma variável global. Uma conta pode ter vários donos, em vez de uma associação um para um. Para um atacante explorar uma vulnerabilidade de segurança em um contrato inteligente, eles não só precisam identificar a função problemática, mas também preparar as contas "corretas" para chamar essa função. Este passo não é fácil, porque os contratos inteligentes do Solana normalmente envolvem várias contas de entrada e gerenciam suas relações através de restrições (como account1.owner==account2.keyO processo de "preparar as contas corretas" para "lançar o ataque" é suficiente para que os monitores de segurança detectem proativamente transações suspeitas envolvendo a criação de contas "falsas" relacionadas a contratos inteligentes antes que um ataque ocorra.
Os contratos inteligentes do Ethereum são como um cofre com uma única senha exclusiva. Uma vez que você tenha esta senha, você ganha propriedade completa. Os da Solana, por outro lado, são como um cofre com várias senhas. Para obter acesso, você não só precisa obter as senhas, mas também entender os identificadores correspondentes antes de poder destrancar a porta.
No entanto, devido à alta curva de aprendizado da linguagem Rust e à falta de personalização para o desenvolvimento blockchain, muitos requisitos resultam em código redundante e reinventando a roda. Para simplificar o desenvolvimento, muitos projetos em produção usam o framework Anchor criado pela colaboração da Backpack e Armani. Além disso, várias novas linguagens de programação especificamente adaptadas para o desenvolvimento blockchain, como Cairo (Starknet) e Move (Sui, Aptos), são baseadas em Rust.

Muitos projetos em produção usam o framework Anchor.
Contratos inteligentes do Ethereum são desenvolvidos principalmente usando a linguagem Solidity, que tem uma sintaxe semelhante ao JavaScript, com arquivos de código tendo a extensão .sol. Devido à sua sintaxe relativamente simples e ferramentas de desenvolvimento mais maduras (como o framework Hardhat e o IDE Remix), o Ethereum é geralmente considerado oferecer uma experiência de desenvolvimento mais simples e agradável em comparação com o Solana, que tem uma curva de aprendizado mais alta. Apesar da atual popularidade do Solana, o número de desenvolvedores no Ethereum continua sendo muito maior do que no Solana.
Em circunstâncias específicas, um carro de corrida de primeira linha superará um carro modificado. A ferrugem, assim como um carro de corrida de primeira linha, garante efetivamente o desempenho e a segurança do Solana. No entanto, não é inherentemente projetado para o desenvolvimento de programas on-chain, o que na verdade aumenta o nível de dificuldade de condução (desenvolvimento). As cadeias públicas que adotam linguagens baseadas em Rust e personalizadas para o desenvolvimento on-chain podem ser comparadas à modificação deste carro de corrida para se adaptar melhor às condições da estrada. Solana está em desvantagem neste aspecto.
Aviso legal: As visões e opiniões expressas neste artigo representam apenas as visões pessoais do autor e não constituem nenhum conselho de investimento.
Outras versões do artigo são traduzidas pela equipe Gate Learn, não mencionada em[](http://Gate.comGate.com, o artigo traduzido não pode ser reproduzido, distribuído ou plagiado.





