Explorando ErgoScript: A Linguagem de Script Nativa do Ergo
26 de março de 2024

Linguagens de Programação em Blockchain
O mundo da programação de computadores destaca uma gama expansiva e diversificada de linguagens de codificação. Não existe uma solução única, e cada linguagem oferece diferentes graus de prós e contras. Se você está familiarizado com codificação, sem dúvida já ouviu falar de JavaScript, Python, Java, C#, C++, Solidity, Rust e muitos mais.
Quando se trata de design de blockchain, várias dessas linguagens foram utilizadas na construção de redes de criptomoedas proeminentes.

A Plataforma Ergo: Um Novo Paradigma em Script e Blockchain de Prova de Trabalho
Quando Alex Chepurnoy (também conhecido como kushti) e Dmitry Meshkov se propuseram a projetar uma nova blockchain de contrato inteligente de 3ª geração, eles queriam criar uma rede que combinasse a Prova de Trabalho do Bitcoin e o design UTXO com contratos inteligentes expressivos. Essencialmente, o objetivo era unir o modelo testado pelo tempo do Bitcoin com a capacidade do Ethereum de produzir contratos inteligentes e aplicativos descentralizados. No coração desse empreendimento estava o desejo de construir uma blockchain para todos. Uma que prioriza produtos que melhoram a vida do cidadão comum. A partir desse esforço, eles criaram e lançaram a Plataforma Ergo.
Para construir o Ergo, eles precisavam criar uma linguagem de programação que atendesse às suas necessidades únicas. Juntos, kushti e Meshkov desenvolveram uma nova linguagem de script, ErgoScript, para que pudessem escrever contratos inteligentes flexíveis e seguros na Plataforma Ergo.
O que é ErgoScript?
ErgoScript é a linguagem de programação usada para escrever contratos inteligentes na blockchain Ergo. É particularmente notável por sua capacidade de criar instrumentos financeiros avançados e aplicativos descentralizados (dApps) com foco em segurança e escalabilidade. Seu design é derivado do Scala, que é uma linguagem de programação multiparadigma projetada para expressar padrões comuns de programação de maneira concisa, elegante e segura em termos de tipo. No Whitepaper do Ergo, o ErgoScript é descrito como:
“…uma linguagem de script poderosa e amigável a protocolos para criptomoedas. Programas em ErgoScript são usados para especificar as condições sob as quais a moeda pode ser gasta. A linguagem suporta um tipo de provas de conhecimento zero não interativas chamadas protocolos Σ(Sigma) e é flexível o suficiente para permitir assinaturas em anel, múltiplas assinaturas, múltiplas moedas, trocas atômicas, scripts auto-replicantes e computação de longo prazo.”
As principais características do ErgoScript incluem:
- Baseado em Protocolos Sigma: O ErgoScript é construído sobre Protocolos Sigma (ou Σ-protocolos), um tipo de protocolo criptográfico. Essa base permite a criação de contratos inteligentes flexíveis e altamente seguros.
- Abordagem Declarativa: Ao contrário das linguagens imperativas, onde você descreve como fazer algo, no ErgoScript, você descreve quais condições devem ser atendidas. É uma linguagem declarativa onde o estado da blockchain determina se um script é válido ou não.
- Código Off-Chain: O Ergo permite que operações complexas sejam realizadas off-chain, reduzindo a carga na blockchain. O ErgoScript é usado para garantir que essas operações atendam às regras acordadas quando são comprometidas na blockchain.
- Flexibilidade e Segurança: A linguagem é projetada para fornecer um alto grau de flexibilidade na criação de contratos, enquanto também garante um forte nível de segurança. Isso é particularmente importante no contexto de contratos financeiros e aplicativos de finanças descentralizadas (DeFi) na Plataforma Ergo.
- Custo-Efetivo: O design do Ergo, combinado com o ErgoScript, visa minimizar o custo computacional dos contratos inteligentes. Isso é crucial para manter um sistema de blockchain escalável e eficiente.
- Integração com os Recursos do Ergo: O ErgoScript aproveita os recursos únicos do Ergo, como o modelo de armazenamento de caixas, onde dados e tokens são armazenados em "caixas" na blockchain, e condições complexas podem ser definidas sobre como essas caixas podem ser transformadas e usadas.
Código ErgoScript: Um Exemplo
O seguinte script contém uma condição para gastar uma saída de transação:
{
val condition = HEIGHT > 1000 && OUTPUTS(0).propositionBytes == fromBase64("yourBase64EncodedPublicKey")
sigmaProp(condition)
}
-
HEIGHT > 1000: Isso verifica se a altura do bloco atual da blockchain é maior que 1000.
HEIGHTrefere-se à altura da blockchain no momento da transação. Essa condição garante que a saída só pode ser gasta após a blockchain ter alcançado uma certa altura, criando efetivamente um bloqueio de tempo. -
OUTPUTS(0).propositionBytes == fromBase64("yourBase64EncodedPublicKey"): Esta parte do script verifica se a primeira saída (
OUTPUTS(0)) da transação possui uma chave pública específica. A chave pública é codificada em formato Base64 no script. Essa condição garante que a saída só pode ser gasta por uma transação que a envia para um endereço (ou chave pública) que você especifica. -
sigmaProp(condition): Esta é a maneira do ErgoScript de afirmar que a condição definida deve avaliar como verdadeira para que o script seja satisfeito. sigmaProp é uma função que converte uma expressão booleana em uma proposição Sigma.
Quando este script é anexado a uma saída de transação não gasta (UTXO) na blockchain Ergo, ele impõe as condições de que a blockchain deve ter progredido além da altura do bloco 1000, e a saída deve ser enviada para a chave pública especificada para que possa ser gasta. Esse tipo de script pode ser usado para contratos com bloqueio de tempo ou para garantir que os fundos sejam enviados apenas a um destinatário específico.
Se você é um desenvolvedor e está curioso sobre como a Plataforma Ergo pode ser viável para um produto que deseja construir, é recomendável que você explore a seção Começando da Documentação do Ergo.
Conclusão
Embora o ErgoScript ofereça várias vantagens, é importante notar que a "melhor" linguagem para a construção de blockchain pode variar dependendo das necessidades e objetivos específicos de um projeto. No entanto, o ErgoScript é particularmente adequado para projetos que exigem alta segurança, funcionalidade avançada de contratos e eficiência no processamento de transações. Com o tempo, provou ser uma ferramenta testada pelo tempo e essencial para desenvolvedores que trabalham dentro do ecossistema Ergo, fornecendo uma estrutura robusta para construir uma ampla gama de soluções descentralizadas.
Share post
13 de agosto de 2025
12 de agosto de 2025
9 de julho de 2025
12 de maio de 2025

7 de abril de 2022

8 de março de 2022


















