[PEDIDO DE AJUDA] COMO COMEÇAR COM A BLOCKCHAIN

Olá devs, tudo certo?

Atualmente estou envolvido em um projeto pessoal que uso como forma de estudo, e tive a idéia de implementar uma criptomoeda nesse projeto.

Mas como nunca tive contato com a programação blockchain estou meio perdido...

Então gostaria da ajuda de vocês aqui do tab news para começar com isso, alguns tópicos que iriam me ajudar muito:

  • Qual a linguagem de programação mais performatica e mais versátil para esse fim;
  • Algum lugar que entregue um conteúdo necessário para esse fim;
  • Qual a estrutura necessária para esse fim.

Primeiro passo para entender blockchain é entender que ele não tem ligação nenhuma com criptomoedas. Blockchain é um conceito criptográfico de lista linkada e síncrona. Por comodidade, todos vinculam Blockchain à criptomoedas, mas não é uma regra. Por coincidência todas as criptomoedas usam alguma espécie de Blockchain, as que não usam não são criptomoedas.

Não existe linguagem de programação mais performática para um conceito, isso é mito, você pode escrever um blockchain desde C até JavaScript. Ninguém te impede de fazer isso. Um ficará melhor que o outro, um resolverá um problema e o outro não. Isso é você quem deve decidir.

Existem implementações em C, C++, Python, Go, etc. Os maiores usam essas linguagens.

Por que você gostaria de ter blockchain no seu projeto de Pix? Pense nisso. Blockchain, na teoria, é onde qualquer um consegue baixar um bloco ou a rede inteira e validar se o conteúdo está íntegro, ou que existam relés descentralizados que estejam fazendo essa auditoria. Se você não precisa que alguém auditore o que está sendo feito, não será necessário Blockchain.

Na experiência que tive, sempre que alguma empresa quis enfiar Blockchain em algum projeto foi puramente por interesse comercial, em vender o projeto com Blockchain, mas na prática ele não acarretava coisa alguma, não fazia sentido usar. Blockchain quase não faz sentido em lugar nenhum e quase nunca resolve algum problema na vida real.

Investe seu tempo em estudar criptografia já que se interessa no assunto. Pode até estudar Blockchain, é um assunto legal, mas não se iluda que seja algo que levará para o mundo real, não com alguma utilidade se não puramente propaganda. E talvez nem para propaganda sirva mais, o modismo do Blockchain caiu muito, foi varrido com a farsa das NFTs e do Metaverso.

Eu tenho postado algumas coisas sobre criptografia no meu blog, talvez algum conteúdo ou outro possa ser útil para você.

> mas não se iluda que seja algo que levará para o mundo real, não com alguma utilidade se não puramente propaganda O mundo real já investiu 9.73 trilhões de reais, fora que até então estava de forma "amadora" agora com a chegada dos ETFs grandes investidores estão começando a entrar, empresas de nome e de respeito pelo mercado mundial estão colocando muito dinheiro em criptos, tem empresas de investimentos injetando diariamente 1 milhão de dólares. Países estão adotando criptomoedas como moeda oficial, existe projetos de leis para reconhecer contratos validados por blockchain, inclusive ameaça até mesmo a existência dos cartórios. Diante disso tudo e mais um pouco, acho que é um equivoco falar que blockchain é "puramente propaganda", é uma tecnologia nova, embrionária basicamente, então só precisa de tempo para aceitação da comunidade. E um disclaimer sobre isso, somos nós, os programadores, devOps, desenvolvedores, analistas, sysadmin, profissionais da área de robótica etc que decidimos o que vai para frente ou não, pois tudo começa conosco, já que nós que criamos tudo referente a tecnologia, então começar a utilizar tecnologias como a blockchain em seus projetos só fortalece ainda mais o ecossistema da tecnologia nova. Obviamente tem que ter cautela ao adotar novas tecnologias, mas a blockchain, na minha opinião, já vem se consolidando muito bem, afinal de contas, apenas com os investidores novos, amadores, aventureiros e poucos investidores grandes ela já captalizou 2.87% do PIB mundial, imagina agora com os governos regulamentando as exchanges, surgindo os ETFs etc, isso tudo passa mais confiança para os grandes investidores olharem com mais seriedade para a tecnologia e consequentemente entrando mais dinheiro.
Você está associando blockchain à criptomoedas. Não estou falando de criptomoedas no meu post. Uma coisa não tem nada a ver com a outra, exceto pelo fato de criptomoedas usarem Blockchain. Blockchain foi muito usado por modismo. De fato é útil e sólido, é antigo já também, mas tem poucas aplicações reais. Novamente, não estou falando sobre criptomoedas. É difícil encontrar um problema que apenas Blockchain resolva. Existem, mas não são todos os casos.
O que eu quis dizer é que existe uma grande adoção de mercado para a Blockchain, hoje principalmente através das criptomoedas, mas dei exemplos que utilizam apenas a blockchain, como reconhecimento de contratos. Embora eu tenha colocado muito contexto de criptomoeda, minha resposta é sobre utilidade da blockchain, que vem ganhando força, ambas são distintas como concordei com você na minha outra resposta, mas hoje a blockchain só existe por causa das criptos, foi o Bictoin que trouxe olhares para a blockchain. E como mencionei, uma tecnologia só vai para frente se adotarmos, então a blockchain em si não é só "puramente propaganda" ela já foi consolidada por causa das criptos e da aceitação das criptos. A utilização dela é útil para qualquer sistema que precise de integridade dos dados e imutabilidade dos dados, claro se os dados ficassem de alguma forma sigilosos seria mais fácil ainda adotar ela, mas não é porque não conseguimos encaixar nos projetos atuais que não tenha uma boa abrangência de utilização, mas sim que falta novas formas de pensar para a utilização do que é novo, temos que evoluir nossa cultura de pensamento sobre desenvolvimento de software para se adequar as novas tecnologias.
Com certeza blockchain não é apenas propaganda. Blockchain tem utilidade, eu reforço isso, mas é específica, difícil de aplicar de verdade, e muitas empresas não sabem dessa utilidade e nem seus programadores, o que leva a implementarem Blockchain por modismo. É essa a crítica que faço. A crítica sobre associar modismo com Blockchain é no uso errôneo da tecnologia em lugares que não faz sentido usar ela, mas usam para atrair atenção comercial apenas. Mas não, blockchain não é modismo. O que a maioria das empresas fazem com ele é.
Compreendi, então interpretei mal a frase > é um assunto legal, mas não se iluda que seja algo que levará para o mundo real, não com alguma utilidade se não puramente propaganda. Mas sobre aplicações, hoje eu não tenho mais tanta dificuldade em achar coisas que poderiam utilizar a blockchain, comecei a me questionar "Quais dados são públicos?", então tudo que vem de resposta pode ser beneficiada com a blockchain, ao meu ver... Por exemplo: - Registro de contratos; - Notícias; - Redes sociais; - Blogs; - Fóruns; - etc. Por exemplo um blog, pode ser algo bobo, mas imagina a seriedade para o conteúdo dele que traria o uso de blockchain, já que não tem função editar ou deletar. Então é nisso que me refiro que precisamos evoluir nossa forma de pensar para trabalhar com novas tecnologias, fazendo isso a utilidade e aplicações reais aparecem.

Bom como nosso amigo disse anteriormente, criptomoeda e blockchain são distintas.

Pelo seu projeto imagino que você queira receber em criptomoeda, aqui está a referência da API do Bitcoin: https://developer.bitcoin.org/reference/rpc/

Eu nunca implementei nada com criptomoeda, mas dei uma vasculhada sobre integração etc, foi coisa rápida...

Mas imagino que a implementação seria assim:

  1. Gere uma carteira para cada recebimento;
  2. Verifique se o pagamento foi feito;
  3. Verifique se a rede confirmou a transferência;
  4. Depois da rede ter sinalizado a verificação já pode considerar como pago.

Pronto, acho que é assim que seria o fluxo para pagamentos através de criptomoedas.

Qual a linguagem de programação mais performatica e mais versátil para esse fim?

Em blockchain não existe linguagem mais performática e sim mais utilizada e você pode utilizar qualquer uma. Agora listando as mais usadas são: Go, Solidity e Rust.

Algum lugar que entregue um conteúdo necessário para esse fim?

Web3dev até o momento é a comunidade aberta com mais conteúdo em português sobre o assunto blockchain e web3, vale a pena dar uma olhada.

Qual a estrutura necessária para esse fim?

Realmente criptomoeda utiliza blockchain, mas não necessariamente tem sentido meter blockchain em tudo. Caso seu projeto envolve descentralização e auditoria pública vale a pena senão é só mais um projeto de estudo mesmo.

Não escuta opinião de quem não trampa na área e fala pela emoção. Blockchain tem mercado sim, mas não me refiro a nft (isso é modinha mesmo), me refiro a pesquisa de ponta, criptografia. Se blockchain fosse moda o Banco Central não estaria utilizando ela no Drex (Novo Real Digital).

Criptografia não utiliza blockchain. O contrário sim. Além disso, Blockchain não precisa ser descentralizado. O conceito exige isso, mas não é uma limitação técnica. Podem existir exceções que não conheço e que não precisem de auditoria pública. Claro que Blockchain tem mercado, onde precisa e faz sentido. Colocar Blockchain em coisas desnecessárias é perda de tempo, e muitas empresas abusam disso. Já trabalhei com Blockchain com C# em um projeto privado em 2019, falei um pouco sobre ele na FATEC de São José do Rio Preto ainda quando estava em alta, porque estava estudando muito, e até esbocei um [mensageiro](https://github.com/starless-sky-protocol) que usa Blockchain para encadear mensagens, escrito com PHP. Não foi a melhor decisão de linguagem, mas valeu a experiência. Outro detalhe: Drex não é criptomoeda. Você não disse isso, mas é legal mencionar para não confundir as coisas.
Quando citei criptografia seria a forma como a blockchain está utilizando ela para melhorar sua usabilidade. Por exemplo o zk-proof que é uma espécie de criptografia que utiliza provas matemáticas estão auxiliando a criar chains mais "fáceis" de utilizar e mais seguras para o mainstream.

Antes de qualquer coisa leia o paper que começou tudo:

https://bitcoin.org/bitcoin.pdf

Depois é estude a implementação de referencia:

https://bitcoincore.org/bin/bitcoin-core-26.0/bitcoin-26.0.tar.gz

Não deixe de ler tambem um livro chamado "The Truth Machine"