Explorando Solana Contrato inteligente modelo de programação

Principiante6/11/2024, 5:47:31 AM
Solana é uma plataforma blockchain de alto desempenho projetada para suporte dApps. É conhecida pela sua velocidade e escalabilidade, conseguida através de um mecanismo de consenso único e design arquitetónico. Este artigo usa Ethereum como um objeto de comparação para introduzir brevemente as características do modelo de programação de contrato inteligente Solana.

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

Solana é uma plataforma blockchain de alto desempenho projetada para suporte dApps. É conhecida pela sua velocidade e escalabilidade, conseguida através de um mecanismo de consenso único e design arquitetónico. Este artigo usa Ethereum como um objeto de comparação para introduzir brevemente as características do modelo de programação de contrato inteligente Solana.

Smart contracts and na cadeia programs:

Programas executados em Ethereum são chamados de contratos inteligentes, uma série de códigos (função) localizados em um endereço específico em Ethereum e dados(estado). (Ah, o código e os dados estão acoplados) Os contratos inteligentes também são contas Ethereum, que são chamadas de contas de contrato. Eles têm saldos e podem se tornar objetos de transação, mas não podem ser controlados por humanos e são implantados na rede para serem executados como programas.

Os códigos executáveis executados em Solana são chamados de programas na cadeia, e eles podem interpretar as instruções enviadas em cada transação. Esses programas podem ser implantados diretamente no núcleo da rede como programas nativos ou publicados por qualquer pessoa como programas SPL.

  1. Instruções: Instruções são termos exclusivos para programas na cadeia de Solana. Os programas on-chain são compostos por instruções. São as menores unidades que realizam operações específicas: uma ou mais instruções são incluídas em cada transação Solana. As instruções especificam as ações a serem executadas, incluindo chamar um programa na cadeia específico, passar um conta, uma lista de entradas e fornecer uma matriz de bytes. As instruções têm restrições computacionais, portanto, na cadeia programas devem ser otimizados para usar um pequeno número de unidades computacionais ou para dividir operações caras em várias instruções.

  1. Programas nativos: São programas que fornecem as funcionalidades necessárias para validar nós. O mais notável é o Programa Sistema, que é responsável por gerenciar a criação de novas contas e transferir SOL entre duas contas.
  2. Programas SPL: definem uma série de atividades na cadeia, incluindo a criação, exchange e empréstimo de tokens, bem como a criação de pools de staking e a manutenção de na cadeia serviços de resolução de nomes de domínio. Entre estes, o SPL Token Program é usado para operações de token, enquanto o Associated Token Account Program é comumente usado para escrever outros programas personalizados.

Chamam-lhes contratos inteligentes, eu chamo-lhes na cadeia programas. Termos diferentes, mas ambos se referem ao código em execução no blockchain. Assim como Alice, Bob e John são todos nomes, e suas qualidades reais precisam ser avaliadas por outros aspetos.

Modelo de conta, desacoplamento de dados:

Semelhante ao Ethereum, Solana também é um blockchain baseado em um modelo conta, mas Solana fornece um modelo de conta diferente do Ethereum e armazena dados de maneiras diferentes.

Além Solana, as contas podem salvar informações da carteira e outros dados. Os campos definidos pela conta incluem Lamports (equilíbrio de contas), Proprietário (proprietário do conta), Executável (se é um conta executável) e Dados (dados armazenados no conta). Cada conta designa um programa como seu proprietário para distinguir para qual programa o conta é usado como um armazenamento de estado. Esses programas na cadeia são somente leitura ou sem monitoração de estado: o conta do programa (conta executável) armazena apenas bytecode BPF e não armazena nenhum estado. O programa armazenará o estado em outras contas independentes (contas não executáveis). Ou seja, o modelo de programação do Solana separa código e dados.

O Ethereum conta é sobretudo uma referência ao Estado EVM. Seu contrato inteligente não só tem lógica de código, mas também precisa armazenar dados do usuário. Esta é muitas vezes considerada uma falha de design que sobrou da história do EVM.

Não subestime esta distinção! Solana contratos inteligentes são fundamentalmente mais difíceis de atacar em comparação com blockchains com um modelo de programação acoplado como Ethereum.

Em Ethereum, um "proprietário" de contrato inteligente é uma variável global que corresponde um-para-um com o contrato inteligente. Portanto, chamar uma função pode alterar diretamente o contrato como "proprietário".

Em Solana, no entanto, o "proprietário" de um contrato inteligente são os dados associados a um conta e não a uma variável global. Uma conta pode ter vários proprietários, em vez de uma associação um-para-um. Para um invasor explorar uma vulnerabilidade de segurança em um contrato inteligente, ele não só precisa encontrar a função problemática, mas também precisa preparar as contas "corretas" para chamar essa função. Esta etapa não é fácil porque Solana contratos inteligentes normalmente envolvem várias contas de entrada e gerenciam seus relacionamentos por meio de restrições (como account1.owner == account2.key). O processo de "preparar as contas corretas" para "lançar um ataque" dá ao pessoal de monitoramento de segurança tempo suficiente para detetar proativamente transações suspeitas relacionadas à criação de contas "falsas" associadas ao contrato inteligente antes que o ataque ocorra.

Ethereum contratos inteligentes são como um cofre que usa uma senha única: uma vez que você recebe essa senha, você ganha total propriedade. Em contraste, os contratos inteligentes do Solana são como um cofre com muitas senhas. Para obter acesso, você não só precisa obter as senhas, mas também descobrir qual senha corresponde a qual cadeado para abri-la.

Linguagem de programação

Rust é a principal linguagem de programação para o desenvolvimento de contratos inteligentes em Solana. Devido ao seu desempenho e recursos de segurança, é adequado para o ambiente de alto risco de blockchain e contratos inteligentes. Solana também suporta C, C++ e (muito incomummente) outras linguagens. O SDK oficial para Rust e C é fornecido para suporte o desenvolvimento de programas na cadeia. Os desenvolvedores podem usar ferramentas para compilar o programa no bytecode do Berkley Packet Filter (BPF) (o arquivo tem uma extensão .so), implantá-lo na cadeia de Solana e executar a lógica do contrato inteligente através do tempo de execução do contrato inteligente paralelo Sealevel.

Como a linguagem Rust em si é difícil de começar e não é personalizada para o desenvolvimento de blockchain, muitos requisitos exigem reinventar a roda e o código redundante. (Muitos projetos em produção usam a estrutura Anchor criada pelo cocriador da Backpack, Armani, para simplificar o desenvolvimento) Muitas linguagens de programação recém-criadas dedicadas ao desenvolvimento de blockchain são baseadas em Rust, como Cairo (Starknet), Move (Sui, Aptos).

Muitos projetos em produção usam a estrutura Anchor

Ethereum contratos inteligentes são desenvolvidos principalmente em linguagem Solidity (a sintaxe é semelhante ao javascript, e o arquivo de código tem uma extensão .sol). Devido à sintaxe relativamente simples e ferramentas de desenvolvimento mais maduras (estrutura Hardhat, Remix IDE...), geralmente pensamos que a experiência de desenvolvimento do Ethereum é mais simples e mais refrescante, enquanto Solana desenvolvimento é mais difícil de começar. Então, mesmo que Solana seja muito popular agora, na verdade, o número de desenvolvedores no Ethereum ainda é muito mais do que Solana.

Em certas condições de estrada, os carros de corrida de topo não são tão rápidos como os carros modificados. Rust é como um carro de corrida de alto nível, que efetivamente garante o desempenho e a segurança de Solana. No entanto, não é projetado para desenvolver esta pista para na cadeia programas, mas em vez disso causa um aumento na dificuldade de condução (desenvolvimento). Usar uma cadeia pública baseada em Rust e desenvolver uma linguagem personalizada para a cadeia é equivalente a modificar o carro de corrida para torná-lo mais adequado para as condições da estrada. Solana está em desvantagem neste caso.

Resumo

O modelo de programação de contratos inteligentes da Solana é inovador. Ele oferece uma abordagem sem estado para o desenvolvimento de contratos inteligentes, usando Rust como a linguagem de programação principal e uma arquitetura que separa lógica de estado. Isso fornece aos desenvolvedores um ambiente robusto para criar e implantar contratos inteligentes, garantindo segurança e desempenho, embora represente uma dificuldade de desenvolvimento maior. Solana se concentra em alta taxa de transferência, baixo custo e escalabilidade, tornando-se a escolha ideal para desenvolvedores que atualmente procuram criar dApps de alto desempenho.

Declaração de exoneração de responsabilidade:

  1. Este artigo foi reproduzido a partir de [Foresight News]. Todos os direitos autorais pertencem ao autor original [Alex Liu]. Se houver objeções a essa reimpressão, entre em contato com a equipe Gate Learn e eles lidarão com isso imediatamente.
  2. Isenção de Responsabilidade: Os pontos de vista e opiniões expressos neste artigo são exclusivamente do autor e não constituem qualquer conselho de investimento.
  3. As traduções do artigo para outros idiomas são feitas pela equipe do Gate Learn. A menos que mencionado, copiar, distribuir ou plagiar os artigos traduzidos é proibido.

Explorando Solana Contrato inteligente modelo de programação

Principiante6/11/2024, 5:47:31 AM
Solana é uma plataforma blockchain de alto desempenho projetada para suporte dApps. É conhecida pela sua velocidade e escalabilidade, conseguida através de um mecanismo de consenso único e design arquitetónico. Este artigo usa Ethereum como um objeto de comparação para introduzir brevemente as características do modelo de programação de contrato inteligente Solana.

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

Solana é uma plataforma blockchain de alto desempenho projetada para suporte dApps. É conhecida pela sua velocidade e escalabilidade, conseguida através de um mecanismo de consenso único e design arquitetónico. Este artigo usa Ethereum como um objeto de comparação para introduzir brevemente as características do modelo de programação de contrato inteligente Solana.

Smart contracts and na cadeia programs:

Programas executados em Ethereum são chamados de contratos inteligentes, uma série de códigos (função) localizados em um endereço específico em Ethereum e dados(estado). (Ah, o código e os dados estão acoplados) Os contratos inteligentes também são contas Ethereum, que são chamadas de contas de contrato. Eles têm saldos e podem se tornar objetos de transação, mas não podem ser controlados por humanos e são implantados na rede para serem executados como programas.

Os códigos executáveis executados em Solana são chamados de programas na cadeia, e eles podem interpretar as instruções enviadas em cada transação. Esses programas podem ser implantados diretamente no núcleo da rede como programas nativos ou publicados por qualquer pessoa como programas SPL.

  1. Instruções: Instruções são termos exclusivos para programas na cadeia de Solana. Os programas on-chain são compostos por instruções. São as menores unidades que realizam operações específicas: uma ou mais instruções são incluídas em cada transação Solana. As instruções especificam as ações a serem executadas, incluindo chamar um programa na cadeia específico, passar um conta, uma lista de entradas e fornecer uma matriz de bytes. As instruções têm restrições computacionais, portanto, na cadeia programas devem ser otimizados para usar um pequeno número de unidades computacionais ou para dividir operações caras em várias instruções.

  1. Programas nativos: São programas que fornecem as funcionalidades necessárias para validar nós. O mais notável é o Programa Sistema, que é responsável por gerenciar a criação de novas contas e transferir SOL entre duas contas.
  2. Programas SPL: definem uma série de atividades na cadeia, incluindo a criação, exchange e empréstimo de tokens, bem como a criação de pools de staking e a manutenção de na cadeia serviços de resolução de nomes de domínio. Entre estes, o SPL Token Program é usado para operações de token, enquanto o Associated Token Account Program é comumente usado para escrever outros programas personalizados.

Chamam-lhes contratos inteligentes, eu chamo-lhes na cadeia programas. Termos diferentes, mas ambos se referem ao código em execução no blockchain. Assim como Alice, Bob e John são todos nomes, e suas qualidades reais precisam ser avaliadas por outros aspetos.

Modelo de conta, desacoplamento de dados:

Semelhante ao Ethereum, Solana também é um blockchain baseado em um modelo conta, mas Solana fornece um modelo de conta diferente do Ethereum e armazena dados de maneiras diferentes.

Além Solana, as contas podem salvar informações da carteira e outros dados. Os campos definidos pela conta incluem Lamports (equilíbrio de contas), Proprietário (proprietário do conta), Executável (se é um conta executável) e Dados (dados armazenados no conta). Cada conta designa um programa como seu proprietário para distinguir para qual programa o conta é usado como um armazenamento de estado. Esses programas na cadeia são somente leitura ou sem monitoração de estado: o conta do programa (conta executável) armazena apenas bytecode BPF e não armazena nenhum estado. O programa armazenará o estado em outras contas independentes (contas não executáveis). Ou seja, o modelo de programação do Solana separa código e dados.

O Ethereum conta é sobretudo uma referência ao Estado EVM. Seu contrato inteligente não só tem lógica de código, mas também precisa armazenar dados do usuário. Esta é muitas vezes considerada uma falha de design que sobrou da história do EVM.

Não subestime esta distinção! Solana contratos inteligentes são fundamentalmente mais difíceis de atacar em comparação com blockchains com um modelo de programação acoplado como Ethereum.

Em Ethereum, um "proprietário" de contrato inteligente é uma variável global que corresponde um-para-um com o contrato inteligente. Portanto, chamar uma função pode alterar diretamente o contrato como "proprietário".

Em Solana, no entanto, o "proprietário" de um contrato inteligente são os dados associados a um conta e não a uma variável global. Uma conta pode ter vários proprietários, em vez de uma associação um-para-um. Para um invasor explorar uma vulnerabilidade de segurança em um contrato inteligente, ele não só precisa encontrar a função problemática, mas também precisa preparar as contas "corretas" para chamar essa função. Esta etapa não é fácil porque Solana contratos inteligentes normalmente envolvem várias contas de entrada e gerenciam seus relacionamentos por meio de restrições (como account1.owner == account2.key). O processo de "preparar as contas corretas" para "lançar um ataque" dá ao pessoal de monitoramento de segurança tempo suficiente para detetar proativamente transações suspeitas relacionadas à criação de contas "falsas" associadas ao contrato inteligente antes que o ataque ocorra.

Ethereum contratos inteligentes são como um cofre que usa uma senha única: uma vez que você recebe essa senha, você ganha total propriedade. Em contraste, os contratos inteligentes do Solana são como um cofre com muitas senhas. Para obter acesso, você não só precisa obter as senhas, mas também descobrir qual senha corresponde a qual cadeado para abri-la.

Linguagem de programação

Rust é a principal linguagem de programação para o desenvolvimento de contratos inteligentes em Solana. Devido ao seu desempenho e recursos de segurança, é adequado para o ambiente de alto risco de blockchain e contratos inteligentes. Solana também suporta C, C++ e (muito incomummente) outras linguagens. O SDK oficial para Rust e C é fornecido para suporte o desenvolvimento de programas na cadeia. Os desenvolvedores podem usar ferramentas para compilar o programa no bytecode do Berkley Packet Filter (BPF) (o arquivo tem uma extensão .so), implantá-lo na cadeia de Solana e executar a lógica do contrato inteligente através do tempo de execução do contrato inteligente paralelo Sealevel.

Como a linguagem Rust em si é difícil de começar e não é personalizada para o desenvolvimento de blockchain, muitos requisitos exigem reinventar a roda e o código redundante. (Muitos projetos em produção usam a estrutura Anchor criada pelo cocriador da Backpack, Armani, para simplificar o desenvolvimento) Muitas linguagens de programação recém-criadas dedicadas ao desenvolvimento de blockchain são baseadas em Rust, como Cairo (Starknet), Move (Sui, Aptos).

Muitos projetos em produção usam a estrutura Anchor

Ethereum contratos inteligentes são desenvolvidos principalmente em linguagem Solidity (a sintaxe é semelhante ao javascript, e o arquivo de código tem uma extensão .sol). Devido à sintaxe relativamente simples e ferramentas de desenvolvimento mais maduras (estrutura Hardhat, Remix IDE...), geralmente pensamos que a experiência de desenvolvimento do Ethereum é mais simples e mais refrescante, enquanto Solana desenvolvimento é mais difícil de começar. Então, mesmo que Solana seja muito popular agora, na verdade, o número de desenvolvedores no Ethereum ainda é muito mais do que Solana.

Em certas condições de estrada, os carros de corrida de topo não são tão rápidos como os carros modificados. Rust é como um carro de corrida de alto nível, que efetivamente garante o desempenho e a segurança de Solana. No entanto, não é projetado para desenvolver esta pista para na cadeia programas, mas em vez disso causa um aumento na dificuldade de condução (desenvolvimento). Usar uma cadeia pública baseada em Rust e desenvolver uma linguagem personalizada para a cadeia é equivalente a modificar o carro de corrida para torná-lo mais adequado para as condições da estrada. Solana está em desvantagem neste caso.

Resumo

O modelo de programação de contratos inteligentes da Solana é inovador. Ele oferece uma abordagem sem estado para o desenvolvimento de contratos inteligentes, usando Rust como a linguagem de programação principal e uma arquitetura que separa lógica de estado. Isso fornece aos desenvolvedores um ambiente robusto para criar e implantar contratos inteligentes, garantindo segurança e desempenho, embora represente uma dificuldade de desenvolvimento maior. Solana se concentra em alta taxa de transferência, baixo custo e escalabilidade, tornando-se a escolha ideal para desenvolvedores que atualmente procuram criar dApps de alto desempenho.

Declaração de exoneração de responsabilidade:

  1. Este artigo foi reproduzido a partir de [Foresight News]. Todos os direitos autorais pertencem ao autor original [Alex Liu]. Se houver objeções a essa reimpressão, entre em contato com a equipe Gate Learn e eles lidarão com isso imediatamente.
  2. Isenção de Responsabilidade: Os pontos de vista e opiniões expressos neste artigo são exclusivamente do autor e não constituem qualquer conselho de investimento.
  3. As traduções do artigo para outros idiomas são feitas pela equipe do Gate Learn. A menos que mencionado, copiar, distribuir ou plagiar os artigos traduzidos é proibido.
Comece agora
Registe-se e ganhe um cupão de
100 USD
!