A Diferença Entre os Modelos de Programação Solana e ETH

Avançado5/22/2024, 7:43:04 PM
Este artigo compara os modelos de programação de contratos inteligentes da Solana e da Ethereum. Os programas on-chain da Solana são semelhantes aos contratos inteligentes da Ethereum, mas a Solana oferece um ambiente de execução diferente por meio de seu modelo de conta exclusivo e abordagem de desacoplamento de dados. O modelo de conta da Solana separa o armazenamento de código e dados, aumentando a segurança. A Solana usa principalmente a linguagem Rust para o desenvolvimento de contratos inteligentes, que oferece alto desempenho e segurança, mas tem uma curva de aprendizado íngreme. Por outro lado, a Ethereum usa principalmente o Solidity, proporcionando uma experiência de desenvolvimento mais simples e madura. Apesar dos desafios de desenvolvimento com a Solana, sua alta taxa de transferência, baixos custos e escalabilidade a tornam uma escolha ideal para o desenvolvimento de dApps de alta performance.

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.

Contratos inteligentes e programas on-chain:

Os programas em execução no Ethereum são conhecidos como contratos inteligentes, que são uma série de códigos (funções) e dados (estado) localizados em um endereço específico na rede Ethereum. Os contratos inteligentes também são contas Ethereum, referidas como contas de contrato. Eles têm saldos, podem ser o alvo de transações, mas não podem ser controlados por indivíduos. Eles são implantados na rede para serem executados como programas.

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.

Modelo de Conta, Desacoplamento de Dados:

Assim como o Ethereum, a Solana também é uma blockchain baseada em um modelo de conta, mas a Solana fornece um modelo de conta diferente do Ethereum, armazenando dados de maneira diferente.

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.

Linguagem de Programação

Rust é a linguagem de programação principal para o desenvolvimento de contratos inteligentes na Solana. Suas características de desempenho e segurança a tornam adequada para o ambiente de alto risco de blockchain e contratos inteligentes. A Solana também suporta C, C++, e outras linguagens (embora menos comuns). Os SDKs oficiais Rust e C são fornecidos para apoiar o desenvolvimento de programas on-chain. Os desenvolvedores podem usar ferramentas para compilar programas em bytecode Berkeley Packet Filter (arquivos com extensão .so) e implantá-los na blockchain Solana. A lógica dos contratos inteligentes é então executada através da execução paralela de contratos inteligentes Sealevel.

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.

Conclusão

O modelo de programação de contratos inteligentes da Solana é inovador. Ele oferece uma abordagem sem estado para o desenvolvimento de contratos inteligentes, com Rust como a linguagem de programação principal e uma arquitetura que separa a lógica do estado. Isso fornece aos desenvolvedores um ambiente poderoso para criar e implantar contratos inteligentes, garantindo segurança e desempenho, embora com maior dificuldade de desenvolvimento. A Solana foca na alta taxa de transferência, baixos custos e escalabilidade, tornando-a a escolha ideal para desenvolvedores que buscam criar dApps de alto desempenho.

Declaração:

  1. Este artigo é reproduzido a partir de [Gatepanews], título original “Minha avó também pode entender: Qual é a diferença entre o modelo de programação da Solana e o ETH?”, os direitos autorais pertencem ao autor original [Foresight News, Alex Liu], se tiver alguma objeção à reimpressão, entre em contato Equipe de Aprendizado Gate, a equipe irá lidar com isso o mais rápido possível de acordo com os procedimentos relevantes.

  2. 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.

  3. Outras versões do artigo são traduzidas pela equipe Gate Learn, não mencionada emGate.io, o artigo traduzido não pode ser reproduzido, distribuído ou plagiado.

A Diferença Entre os Modelos de Programação Solana e ETH

Avançado5/22/2024, 7:43:04 PM
Este artigo compara os modelos de programação de contratos inteligentes da Solana e da Ethereum. Os programas on-chain da Solana são semelhantes aos contratos inteligentes da Ethereum, mas a Solana oferece um ambiente de execução diferente por meio de seu modelo de conta exclusivo e abordagem de desacoplamento de dados. O modelo de conta da Solana separa o armazenamento de código e dados, aumentando a segurança. A Solana usa principalmente a linguagem Rust para o desenvolvimento de contratos inteligentes, que oferece alto desempenho e segurança, mas tem uma curva de aprendizado íngreme. Por outro lado, a Ethereum usa principalmente o Solidity, proporcionando uma experiência de desenvolvimento mais simples e madura. Apesar dos desafios de desenvolvimento com a Solana, sua alta taxa de transferência, baixos custos e escalabilidade a tornam uma escolha ideal para o desenvolvimento de dApps de alta performance.

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.

Contratos inteligentes e programas on-chain:

Os programas em execução no Ethereum são conhecidos como contratos inteligentes, que são uma série de códigos (funções) e dados (estado) localizados em um endereço específico na rede Ethereum. Os contratos inteligentes também são contas Ethereum, referidas como contas de contrato. Eles têm saldos, podem ser o alvo de transações, mas não podem ser controlados por indivíduos. Eles são implantados na rede para serem executados como programas.

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.

Modelo de Conta, Desacoplamento de Dados:

Assim como o Ethereum, a Solana também é uma blockchain baseada em um modelo de conta, mas a Solana fornece um modelo de conta diferente do Ethereum, armazenando dados de maneira diferente.

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.

Linguagem de Programação

Rust é a linguagem de programação principal para o desenvolvimento de contratos inteligentes na Solana. Suas características de desempenho e segurança a tornam adequada para o ambiente de alto risco de blockchain e contratos inteligentes. A Solana também suporta C, C++, e outras linguagens (embora menos comuns). Os SDKs oficiais Rust e C são fornecidos para apoiar o desenvolvimento de programas on-chain. Os desenvolvedores podem usar ferramentas para compilar programas em bytecode Berkeley Packet Filter (arquivos com extensão .so) e implantá-los na blockchain Solana. A lógica dos contratos inteligentes é então executada através da execução paralela de contratos inteligentes Sealevel.

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.

Conclusão

O modelo de programação de contratos inteligentes da Solana é inovador. Ele oferece uma abordagem sem estado para o desenvolvimento de contratos inteligentes, com Rust como a linguagem de programação principal e uma arquitetura que separa a lógica do estado. Isso fornece aos desenvolvedores um ambiente poderoso para criar e implantar contratos inteligentes, garantindo segurança e desempenho, embora com maior dificuldade de desenvolvimento. A Solana foca na alta taxa de transferência, baixos custos e escalabilidade, tornando-a a escolha ideal para desenvolvedores que buscam criar dApps de alto desempenho.

Declaração:

  1. Este artigo é reproduzido a partir de [Gatepanews], título original “Minha avó também pode entender: Qual é a diferença entre o modelo de programação da Solana e o ETH?”, os direitos autorais pertencem ao autor original [Foresight News, Alex Liu], se tiver alguma objeção à reimpressão, entre em contato Equipe de Aprendizado Gate, a equipe irá lidar com isso o mais rápido possível de acordo com os procedimentos relevantes.

  2. 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.

  3. Outras versões do artigo são traduzidas pela equipe Gate Learn, não mencionada emGate.io, o artigo traduzido não pode ser reproduzido, distribuído ou plagiado.

Comece agora
Inscreva-se e ganhe um cupom de
$100
!