Ergo e crowdfunding

This page is machine-translated.
Robert Wolf

6 de setembro de 2019

O que é Crowdfunding?

Crowdfunding é uma forma de levantar capital através dos esforços coletivos de indivíduos. As campanhas são iniciadas principalmente via a web e permitem que projetos e negócios sejam financiados levantando pequenas quantias de dinheiro de um grande número de pessoas.
Um dos exemplos mais conhecidos de startups de crowdfunding bem-sucedidas é o Oculus Rift, um headset de realidade virtual. A empresa Oculus VR iniciou sua campanha em 2012 e foi adquirida pelo Facebook dois anos depois por um total de $2 bilhões. Além das startups habituais, também existem muitos projetos de blockchain que seguiram o caminho do crowdfunding, por exemplo, Ethereum, Tron e EOS. Hoje, existem inúmeras plataformas que permitem que você publique sua campanha. Algumas das maiores são Indiegogo, Kickstarter e Gofundme, apenas para citar algumas.
Crowdfunding tem muitos benefícios: um amplo alcance, eficiência e aspectos de marketing sendo os mais convincentes... Mas por enquanto, vamos ao que realmente importa!

Apresentando Crowdfunding no Ergo

Há alguns dias, em 28 de agosto, o desenvolvedor principal Kushti afirmou no (fórum Ergo)[www.ergoforum.org] que conseguiu escrever e implementar com sucesso um código que permite aos usuários iniciar uma campanha de crowdfunding em cima da blockchain Ergo (conforme mencionado na página 6 do whitepaper. Este código funciona até mesmo com a API atual da carteira. Aqui está um guia rápido sobre como configurar a carteira.
Neste artigo, você aprenderá como fazer exatamente isso: crowdfunding em cima do Ergo! Ele também o levará pela proposta da primeira campanha de todas, que é financiar o desenvolvimento do script de crowdfunding pós-EIP1.
Se você quiser entrar em todos os detalhes, leia a seção seguinte, “O Script”. Caso contrário, você pode simplesmente pular para ler as seções “Como Doar”, “Como Coletar Doações” e “Proposta de Projeto de Crowdfunding” abaixo.

O Script

O script de crowdfunding mais simples, de acordo com o White Paper do ErgoScript (página 6), é “um script para a seguinte situação de crowdfunding: um apoiador de projeto (com a chave backerPubKey) deseja dar dinheiro a um projeto (com a chave projectPubKey), mas apenas se o projeto levantar dinheiro suficiente (pelo menos minToRaise) de outras fontes até um prazo (expresso em termos de HEIGHT).
Para dar dinheiro ao projeto, o apoiador criará uma caixa de saída protegida pelo seguinte script. O script contém duas condições: uma para o caso em que o prazo passou (permitindo que o apoiador recupere o dinheiro) e uma para o caso em que teve sucesso (permitindo que o projeto gaste o dinheiro se o valor for pelo menos minToRaise antes do prazo).

Para garantir que dinheiro suficiente foi levantado, o script buscará na coleção de saídas uma caixa com um valor suficiente indo para o projectPubKey. Para verificar para onde o valor da caixa de saída está indo, o script lerá o script que protege a caixa de saída e o comparará com o script correspondente a proveDlog(projectPubKey); este script pode ser obtido por projectPubKey.propBytes.

Como atualmente a API não suporta a incorporação de variáveis de ambiente personalizadas (apenas as pré-definidas como HEIGHT), a única maneira de compilar o script é substituir tais variáveis no script do white-paper por valores concretos. Por exemplo, considere que uma campanha de crowdfunding é bem-sucedida se levantar 500 Ergs antes do bloco número 50.000. Para backerPubKey e projectPubKey, podemos usar a função PK() que aceita apenas chaves serializadas P2PK no momento. Então, o script modificado do WhitePaper se torna o seguinte:

{
   val backerPubKey = PK("9h7DHKSDgE4uvP8313GVGdsEg3AvdAWSSTG7XZsLwBfeth4aePG")
   val projectPubKey = PK("9gBSqNT9LH9WjvWbyqEvFirMbYp4nfGHnoWdceKGu45AKiya3Fq") 
    
   val deadline = 50000
   val minToRaise = 500L * 1000000000 
   
   val fundraisingFailure = HEIGHT >= deadline && backerPubKey
   val enoughRaised = {(outBox: Box) =>outBox.value >= minToRaise 
                              && outBox.propositionBytes == projectPubKey.propBytes
                      }
        
   val fundraisingSuccess = HEIGHT < deadline && projectPubKey && OUTPUTS.exists(enoughRaised)
   fundraisingFailure || fundraisingSuccess                     
 }                              

Como Doar

Primeiro de tudo, JSON não suporta strings de várias linhas, então você precisa substituir quebras de linha por \n.
Além disso, as aspas devem ser escapadas, então use " em vez de ". O JSON resultante será enviado para /script/p2sAddress.
Para doar a um projeto, primeiro obtenha seu endereço de /wallet/addresses, pegue, por exemplo, o primeiro deles. Coloque o endereço no backerPubKey, então uma solicitação para /script/p2sAddress ficará assim após esta etapa:

{
  "source": "{ 
    val backerPubKey = PK(\"9...\")
    val projectPubKey = PK(\"9gBSqNT9LH9WjvWbyqEvFirMbYp4nfGHnoWdceKGu45AKiya3Fq\")
    val deadline = 50000
    val minToRaise = 500L * 1000000000
    val fundraisingFailure = HEIGHT >= deadline && backerPubKey
    val enoughRaised = {
      (outBox: Box) => 
        outBox.value >= minToRaise && outBox.propositionBytes == projectPubKey.propBytes
    } 
    val fundraisingSuccess = HEIGHT < deadline && projectPubKey && OUTPUTS.exists(enoughRaised) 
    fundraisingFailure || fundraisingSuccess 
  }"
}    

com seu endereço em vez de “9…”.

Envie a string para /script/p2sAddress para obter uma resposta como:

{
  "address": "GB3kh2izpWKvyZfMboQwsEscjPaZcz9WrzGqZB4ZrkzRreiFMV6HZYWXGMK3rqCjDCoPgWGNzfnYSUhivW4a1VRYPE7uZXwKnBcqWcRkiuTx6QW55EcPcWeELUsumwdtKoFtWY583nWnKZff"
}     

Copie a string do endereço (GB3… em nosso exemplo) e envie o dinheiro para ele via /wallet/payment/send. Uma solicitação para o método da API para enviar 10 Ergs (10 bilhões de nanoErgs) será como a seguinte:

[
 {
   "address": "GB3kh2izpWKvyZfMboQwsEscjPaZcz9WrzGqZB4ZrkzRreiFMV6HZYWXGMK3rqCjDCoPgWGNzfnYSUhivW4a1VRYPE7uZXwKnBcqWcRkiuTx6QW55EcPcWeELUsumwdtKoFtWY583nWnKZff",
   "value": 10000000000
 }
]

Isso é tudo!

Agora a carteira encontrará automaticamente a caixa na blockchain, pois contém a chave pública que pertence à carteira na condição de reembolso. A carteira então verifica periodicamente se a caixa é gastável, construindo uma transação mais simples com a caixa como entrada e apenas uma saída (para o mesmo endereço). Após a altura de reembolso (50.000 em nosso exemplo), a carteira poderá gastar a caixa e assim o valor da caixa será adicionado a /wallet/balances.
Por favor, note que isso não será o caso após a implementação do EIP-1 3, pois a carteira usará padrões de reconhecimento estreitos até então.

Como Coletar Doações

A carteira que está associada à chave pública do projeto encontrará caixas de entrada na blockchain. No entanto, ela não conseguirá garantir que as caixas sejam gastáveis, pois a carteira atualmente está usando uma transação mais simples para isso, e o script falha para tal transação de gasto.
Antes do método /wallet/boxes/uncertain ser implementado, a única maneira de um projeto encontrar caixas de entrada. Então /wallet/transaction/send com caixas serializadas fornecidas manualmente (em “inputsRaw”) (use /utxo/byIdBinary para obter a caixa serializada pelo seu identificador).

Kushti fez isso por conta própria e obteve a seguinte transação.

Por favor, note que EIP-1 quebrará esse fluxo de trabalho também.

Kushti propõe levantar 500 Ergs antes do bloco 50.000 para desenvolver scripts de linha de comando (em Python) para organizar e participar de campanhas de crowdfunding após a implementação do EIP-1. Scripts de linha de comando são mais adequados do que fazer solicitações manualmente e também podem ser usados para construir interfaces gráficas em cima deles.

O tesouro forneceu metade dos fundos, então outros precisam contribuir com os 250 Ergs restantes coletivamente. Em caso de falha da campanha, os reembolsos serão dados automaticamente. Como coletar promessas não é trivial no momento, Kushti liderará o papel do projeto, então, por favor, use a seguinte chave, que é controlada por ele:

9gBSqNT9LH9WjvWbyqEvFirMbYp4nfGHnoWdceKGu45AKiya3Fq

Para doar qualquer quantia de dinheiro, siga a seção “Como Doar” acima substituindo backerPubKey pela sua chave pública e o valor da promessa pelo valor apropriado (por favor, note que está em nanoErgs, 1 Erg = 1.000.000.000 nanoErgs).

Como sempre, se você tiver mais perguntas, sugestões ou quiser participar do movimento, por favor, junte-se aos nossos canais de mídia social ou fórum.

t.me/ergoplatform | t.me/ergo_mining | www.ergoforum.org

Share post

Ergo Infrastructure DAO: Descentralizando a Espinha Dorsal do Ecossistema Ergo

Ergo Infrastructure DAO: Descentralizando a Espinha Dorsal do Ecossistema Ergo

A missão da Ergo sempre foi enraizada na descentralização, não apenas na camada de consenso, mas em toda a pilha.

Ergo Platform

13 de agosto de 2025

Mew Finance: Um Conjunto de Ferramentas DeFi Divertido para o Ecossistema Ergo

Mew Finance: Um Conjunto de Ferramentas DeFi Divertido para o Ecossistema Ergo

Mew Finance é um conjunto de aplicativos descentralizados na Blockchain Ergo.

Ergo Platform

12 de agosto de 2025

Lithos: Descentralizando a Mineração com Pools On-Chain

Lithos: Descentralizando a Mineração com Pools On-Chain

Lithos é um novo protocolo projetado para reformular como os pools de mineração funcionam, movendo-os para on-chain, dando aos min.

Ergo Platform

24 de julho de 2025

Sigma 6.0: Um Ergo Mais Inteligente e Flexível

Sigma 6.0: Um Ergo Mais Inteligente e Flexível

Sigma 6.0 é uma grande atualização proposta para a blockchain Ergo.

Ergo Platform

23 de julho de 2025

Moldando o Futuro de Rosen: Uma Chamada da Comunidade sobre Cinco Propostas Chave do Tesouro

Moldando o Futuro de Rosen: Uma Chamada da Comunidade sobre Cinco Propostas Chave do Tesouro

O co-fundador da Rosen, Armeanio, apresentou cinco novas propostas ao Tesouro de Rosen.

Ergo Platform

9 de julho de 2025

UTXO Estendido da Ergo e a Ascensão da Inteligência Econômica Artificial

UTXO Estendido da Ergo e a Ascensão da Inteligência Econômica Artificial

Uma Visão Prática para Agentes Econômicos Autônomos Agentes econômicos autônomos na blockchain da Ergo realizam trabalho útil em .

Ergo Platform

12 de maio de 2025

ErgoHACK X: Inteligência Artificial na Blockchain Ergo

ErgoHACK X: Inteligência Artificial na Blockchain Ergo

Celebrando uma Década de Inovação Descentralizada Participe do 10º aniversário do ErgoHACK e esteja na vanguarda da revolução da I.

Ergo Platform

10 de abril de 2025

Ergo Pulse com Charles Hoskinson

Ergo Pulse com Charles Hoskinson

“Quando olhamos para as coisas que Alex tem feito, a equipe tem feito e a comunidade tem feito, eles são logicamente consistentes .

Plataforma Ergo

13 de abril de 2022

Mais novo mercado de NFTs em Ergo está ganhando a atenção dos Ergonautas

Mais novo mercado de NFTs em Ergo está ganhando a atenção dos Ergonautas

Em Outubro de 2020, NFTs na blockchain Ergo foram lançados.

Plataforma Ergo

7 de abril de 2022

NIPoPoWs em Ergo: Inovações em Blockchain

NIPoPoWs em Ergo: Inovações em Blockchain

A blockchain Ergo está rapidamente se tornando conhecida dentro do espaço cripto como uma líder em desenvolvimento e inovação em b.

Plataforma Ergo

1 de abril de 2022

Prova de Trabalho, Energia e Ergo

Prova de Trabalho, Energia e Ergo

Introdução Prova de Trabalho (PoW, em Inglês) foi descrita no artigo original de Bitcoin como sendo composta de duas partes.

Plataforma Ergo

29 de março de 2022

Armazenando Ergo: SAFEW

Armazenando Ergo: SAFEW

Neste artigo, continuamos nossa série de guias para configurar e usar uma das muitas novas carteiras Ergo.

Plataforma Ergo

25 de março de 2022

Minerando Ergo no Windows

Minerando Ergo no Windows

Minerar Ergo como parte de uma pool de mineração é fácil, particularmente no Windows.

Plataforma Ergo

17 de março de 2022

What is a DAO (Decentralized Autonomous Organization)?

What is a DAO (Decentralized Autonomous Organization)?

Introduction A decentralized autonomous organization (DAO) is a new type of cooperative.

Ergo Platform

15 de março de 2022

Instruções: Cunhando um Token Não-Fungível (NFT) na Blockchain Ergo

Instruções: Cunhando um Token Não-Fungível (NFT) na Blockchain Ergo

O que é um NFT? Qualquer unidade de uma moeda corrente, como por exemplo o dólar estadunidense, é indistinguível de qualquer outr.

Plataforma Ergo

8 de março de 2022

Blockchain e a Motivação para Ergo

Blockchain e a Motivação para Ergo

Desde o nascimento de Bitcoin, tecnologia blockchain tem sofrido enormes avanços.

Plataforma Ergo

3 de março de 2022

Resultados do ErgoHack III

Resultados do ErgoHack III

Após um bem-sucedido ErgoHack III, o júri tomou sua decisão final! Há tantos projetos maravilhosos que participaram neste último.

Fundação Ergo

1 de março de 2022

A Adoção de Moedas Estáveis está no Horizonte?

A Adoção de Moedas Estáveis está no Horizonte?

Hoje, moedas estáveis lastreadas ao dólar americano (USD) somam quase U$185 bilhões de valor de mercado - um aumento de 500% des.

Plataforma Ergo

24 de fevereiro de 2022

DeFi em Ergo: Taxas usando Tokens Personalizados

DeFi em Ergo: Taxas usando Tokens Personalizados

Moedas de infraestrutura são importantes pois precisamos delas para pagas taxas de transações quando usamos sistemas financeiros.

Plataforma Ergo

22 de fevereiro de 2022

Explicativo Ergo: Aluguel de Armazenamento

Explicativo Ergo: Aluguel de Armazenamento

Resumo do Artigo: Aluguel de Armazenamento é uma taxa por armazenamento de longo prazo na blockchain Ergo.

Plataforma Ergo

18 de fevereiro de 2022

Uma Introdução a Privacidade e Segurança em Blockchain

Uma Introdução a Privacidade e Segurança em Blockchain

Depois que o primeiro artigo científico emergiu na internet em 2008, a tecnologia blockchain evoluiu tremendamente.

Plataforma Ergo

17 de fevereiro de 2022