Taverna /dev/All

Blockchain: por onde começar e onde aplicar?

Iniciei um estudo mais aprofundado a respeito da aplicação da tecnologia blockchain e gostaria de, com este post, iniciar um mini grupo de estudos para que possamos trocar experiências.

(é grande a chance de virar uma série de posts na Revista do /dev/All inclusive)

Pra iniciar, apesar de não ter gostado tanto, encontrei este curso gratuito no EDX em que o conceitual por trás da tecnologia é apresentado: https://www.edx.org/course/understanding-blockchain-and-its-implications (é bem básico mesmo, não há lá um grande aprofundamento, mas já dá um pontapé inicial).

Também para quem está começando, o paper original do Satoshi Nakamoto também é bastante interessante: https://bitcoin.org/bitcoin.pdf

Meu objetivo com blockchain não são as criptomoedas, mas sim como solução de segurança.

Então solto a bola no campo:

  • Estão estudando blockchain também?
  • Já estão aplicando? Como?
  • Quais fontes de estudo estão usando e quais indicam ou não?
1 Curtida

Iniciei meus estudos sobre blockchain fazendo o curso online “DFIN-511: Introduction to Digital Currencies” ministrado pela University of Nicosia - https://digitalcurrency.unic.ac.cy/free-introductory-mooc/

Este curso é parte da grade do Mestrado em Finanças Digitais daquela universidade. Este módulo é gratuito e a duração é de 12 semanas onde a cada semana um novo capítulo é liberado contendo PDF e links de apoio bem como um questionário semanal. Ao fim das doze semanas, é realizada uma avaliação completa e caso você atinja a pontuação mínima, recebe o certificado, registrado na blockchain.

Após este curso, comecei a ler mais sobre o tema e também tenho visto vários cursos sobre, que pretendo cursar à partir do próximo mês. Estes cursos abordam blockchain, smart contracts, ledgers privados (como o IBM Hyperledger), entre outros temas. Não apenas cursos, mas também existem artigos e materiais em vídeo bem úteis para se aprofundar no tema. Deixo abaixo a minha lista, meio roadmap:

Blockchain
Udemy - Become a Blockchain Expert | Beginner level (BE I Certified)
Udemy - Build a Blockchain and a Cryptocurrency from Scratch
Udemy - Build with Blockchain: Deploy your own private blockchain
Udemy - Developing and Deploying Applications on HTMLCOIN Blockchain

Ethereum Development
Medium - Ethereum development walkthrough
Google Drive - Start Building on 0x
Udemy - Ethereum Blockchain Developer 2018/19: The Complete Bootcamp
Udemy - Ethereum Blockchain Developer 2017/18: Build Blockchain Apps
Udemy - Ethereum Developer Masterclass: Build Real World Projects
Udemy - Ethereum Developer 2016/17: Build A Decentralised Apps
dApp University (YouTube) - Web3.js · Ethereum Blockchain Developer Crash Course

dApps & Smart Contracts
dApp University - The Ultimate Ethereum Dapp Tutorial (How to Build a Full Stack Decentralized Application Step-By-Step)
Udemy - Solidity Smart Contracts: Build Dapps In Ethereum Blockchain

Additional Features
dApp University (YouTube) - IPFS

Cryptography
Udemy - Cryptography for Beginners - with openSSL

Nanodegree
Udacity - Become a Blockchain Developer
Coursera - Blockchain Specialization

Private Blockchain
IBM Blockchain Foundation for Developers

Off-topics
edx - Open Science: Sharing Your Research with the World

Certification
Udemy - Pass The Certified Blockchain Developer Exam - Ethereum CBDE
Udemy - Certified Bitcoin Professional: 175+ Practice Exam Questions

ICO
dApp University - Real World ICO

Os canais de YouTube que indico são:
Simply Explained - Savjee: https://www.youtube.com/channel/UCnxrdFPXJMeHru_b4Q_vTPQ
Dapp University: https://www.youtube.com/channel/UCY0xL8V6NzzFcwzHCgB8orQ

Um Medium que indico é o do Vitalik Buterin, criador da Ethereum: https://medium.com/@VitalikButerin

As aplicações com blockchain são inúmeras e passam por Storage (com IPFS), Sistemas de Governança (os DBVN, também a Politeia, da Decred), integração ente blockchains (Hyperledger Quilt), dApps, DAOs, Smart Contracts e por aí vai. Algo que tem me ajudado bastante, além de ler sobre o assunto, é que onde resido (Bruxelas) há um Meetup semanal sobre blockchain, então me atualizo constantemente sobre quais palavras-chave pesquisar para aprimorar o conhecimento nessa tecnologia. Montei um diagrama no Google Drive com as ramificações do que pretendo estudar relacionado à blockchain e isso me serve de guia para não me perder em meio a este mar de informações.

Por último, onde me mantenho informado sobre criptomoedas é através de uma lista que mantenho no Twitter: https://twitter.com/felipemx/lists/crypto

Dando uma passada de olho é possível filtrar o que é mais relacionado às moedas é o que é mais ligado à tecnologia por trás delas, que é o que te interessa.

Espero que a colaboração tenha sido válida.

3 Curtidas

caraca quantas fontes!
Muito obrigado Felipe! Ainda estou dando os primeiros passos neste mundo, você já está atuando em projetos envolvendo blockchain?

1 Curtida

Ainda não, é um foco futuro. Quero me preparar no decorrer do próximo ano e em 2020 já tem um certo know-how para poder começar a atuar com isso.
O que eu fiz até agora foi começar (mas ainda não terminei) a implementar o exemplo de desenvolvimento em Ethereum dessa série de posts do Dev ZL: https://hackernoon.com/ethereum-development-walkthrough-part-1-smart-contracts-b3979e6e573e?source=user_profile---------2---------------- (são 4 ou 5posts no total)

A Ethereum é certamente a plataforma mais famosa, mas outras despontam como mais performáticas, como a EOS e a Cardano (com um time muito forte academicamente mas que ainda não está 100% concluída pois tem sido fortemente avaliada pelo corpo acadêmico que a desenvolve) e também existem outras como a 0x.

Mais uma coisa que deixei passar na minha primeira resposta: o MDPI disponibiliza vários papers, buscando é possível encontrar alguns sobre blockchain - https://twitter.com/felipemx/status/1055458835698274304?s=19

Sobre DBVN (Distributed Borderless Voluntary Nations) faltou eu citar a Zulu Republic e sobre canais de YouTube faltou eu falar da Binance Academy - https://www.youtube.com/channel/UC0BNTTRYI7c0MUM5355zMqg

Acho que é isso. Se eu me recordar de algo, cito aqui.

1 Curtida

Vou ficar de olho nesse post por que tenho interesse. Ainda não sei nada, mas permanece o interesse!

Uma das contas atualizadas mais constantemente e com conteúdos não só de criptomoedas mas também de outras aplicações da blockchain é o BTC Manager: https://twitter.com/btc_manager

Recomendo que sigam.

opa, seguindo aqui, valeu!

para testar e aprender Felipe, qual implementação do blockchain você acha mais interessante para quem está começando? A Hyperledger vale à pena?

No meu ponto de vista a Hyperledger seria um segundo passo. Eu sugiro começar pela blockchain da Ethereum, por ser a mais popular plataforma, servindo de base não somente para moedas (ICOs ERC20 - https://guiadobitcoin.com.br/o-que-sao-tokens-erc-20/ ) mas também para aplicações diversas como jogos (CryptoKitties é o mais famoso, que inclusive “sentou” a rede da Ethereum), sistemas de storage (IPFS - https://medium.com/@ConsenSys/an-introduction-to-ipfs-9bba4860abd0 ), sistemas de ID (Zug ID, da Suíça - https://medium.com/uport/zug-id-exploring-the-first-publicly-verified-blockchain-identity-38bd0ee3702 ) mas também por ser “extensível” através de smart contracts, por permitir o desenvolvimento através de 2 linguagens: Solidity Web3.js, e também por ser compatível com ferramentas que emulam a execução de dApps - aplicativos descentralizados como o MetaMask ( https://metamask.io/ )

Depois eu iria para a clássica, a da Bitcoin. Oferece bem menos funcionalidades que a Ethereum mas atua com algoritmos diferentes para criptografia e é um bom exemplo de rede “pura”, para o caso onde se deseje desenvolver uma solução mais isolada/fechada.

Daí sim eu partiria para o Hyperledger, que é uma solução corporativa e, sinceramente, não sei quais diferenças a IBM pode ter realizado ali, então recomendo primeiro conhecer as alternativas mais primordiais (ETH e BTC) para então partir para outras soluções.

Tendo estudado estas 3, daí para frente acredito que não haja uma diferença estrondosa que impeça de entender outras alternativas, como EOS, Cardano e Monero (mais focada em privacidade dos dados), uma vez que o ele vai surgir de diferente será: o(s) algoritmo(s) usado para criptografar, o ajuste de dificuldade para se minerar um bloco e o tipo de abordagem para se validar um dado (Proof of work, Proof of Stake, Delegated Proof of Stake, Proof of Authority, e provavelmente já existem outras alternativas). O mais “diferentão” que apareceu relacionado à blockchain foi o DAG - Direct Acyclic Graph, que está por trás de moedas como a IOTA (que usa uma solução chamada Tangle e é focada em IoT) e Nano (anteriormente conhecida como RaiBlocks - https://nano.org/en/whitepaper ). Mas DAG não funciona como uma blockchain, pois o dado não é disponibilizado ao mesmo tempo para toda a rede - e eu sou bem cético quanto à confiabilidade desta solução.

Bem, é isso. Para começar a Ethereum possui bastante material, então é realmente a melhor pedida no meu ponto de vista.

1 Curtida

Pra adicionar fontes de estudo, existe a iniciativa da Linux Foundation com o HyperLedger, eu estou no comecinho do primeiro ainda ainda, e ele não exige nenhum conhecimento prévio. São dois cursos livres, um de introdução à blockchain, e outro mais específico, ainda que introdutório, sobre o HyperLedger:

https://www.hyperledger.org/resources/training

1 Curtida

A Lisk Academy tem uma documentação legal para quem quer iniciar no mundo de blockchain » https://lisk.io/academy

É separado em capítulos e aborda temas introdutórios e básicos. Gostei do que vi lá e quero ler mais deste material depois.

1 Curtida

tenho mantido um olho no assunto mas não parei para estudar de fato muita coisa ainda

achei curiosa as ofertas de emprego no stack overflow, salários acima da média para desenvolvedores tradicionais para desenvolvedores de blockchain

venho deixar o link de 2 startups brasileiras que usam blockchain que vale a pena ficar de olho

https://www.plataformaverde.com.br/ na área de sustentabilidade ambiental

https://mutual.life/br na área de seguros

Aumentando a lista, tem A*Star Labs, com projetos bem interessantes, inclusive de validação de documentos.

Legal, não conhecia as empresas citadas nas últimas respostas. Dentro do que eu conhecia, a empresa brasileira mais famosa na utilização de soluções com blockchain era a OriginalMy » https://originalmy.com/

1 Curtida

No caso da Plataforma Verde uma dúvida veio aqui na minha cabeça.

Pelo que estou vendo, não se armazena um volume de dados grande no bloco (posso estar errado). No case deles, o que temos então é o blockchain como uma solução de replicação e certificação dos dados?

Não parei para analisar o que eles fazem de fato com blockchain.
Só conheço melhor a Mutual.Life porque sou amigo dos fundadores aqui no ES e já conversei com eles sobre.
Acredito que no caso da plataforma verde possa ter algum smart contract que é alimentado com IoT fazendo o rastreio do material e algum controle de qualidade da manutenção dele.

Bem, não conheço a solução deles, se criariam a própria blockchain ou se utilizam alguma já existente.

No geral, blockchains não possuem blocos de tamanhos grandes, em geral 1Mb a 2Mb, houve até, no caso do Bitcoin, uma discussão sobre isso: https://en.bitcoin.it/wiki/Block_size_limit_controversy

Em geral, quando se deseja armazenar algo grande para os padrões de um bloco na blockchain, pelo que estudei até agora, usa-se IPFS » https://dapp.tech/what-is-ipfs/ (recomendo muito o vídeo que está contido no post desse link, explicando o IPFS) OU pode ser que tenham uma solução off-chain, com o hash sendo armazenado on-chain, tem um post legal sobre isso aqui: https://energyweb.atlassian.net/wiki/spaces/EWF/pages/17760291/On-Chain+vs+Off-Chain fala do Plasma e do Swarm, soluções para Ethereum que já li um pouco sobre mas preciso ler de novo para memorizar o que são realmente, então não consigo descrever ambas aqui neste momento.

você mencionou que eles criaram a própria blockchain.
Existem frameworks pra isto? Você conhece algum?

Bem, acredito eu que tendo a base teórica de como funciona uma blockchain, seja possível desenvolver uma em “qualquer” linguagem. Já vi exemplos em Python - https://hackernoon.com/learn-blockchains-by-building-one-117428612f46 , NodeJS - https://www.udemy.com/build-blockchain/

Ou você pode criar com base em alguma plataforma como Ethereum, Stellar, NEO, Stratis, EOS (C++ (bitcoind), JavaScript (bcoin), Go (Cosmos/btcd), Rust (Cosmos), Solidity (Ethereum), Plutus (Cardano) )… (https://hackernoon.com/when-is-it-time-to-build-your-own-blockchain-f3be0a30b826) e há o Cosmos SDK, citado neste post aqui: https://blog.cosmos.network/technology-choices-when-building-your-own-blockchain-a15385cf59bd

Até mesmo em cima do IBM Hyperledger, que eu não conheço tanto mas creio que tenha um certo nível de flexibilidade que te permita configurar o tamanho do bloco.

Gostaria de compartilhar com vocês meu último achado, um site com artigos bem detalhados e de explicação simples e leve sobre temas relacionados à blockchain: o BlockGeeks - https://blockgeeks.com/

Destaco aqui dois artigos em especial:

Além disso, o site possui uma vasta lista de cursos relacionados à criptomoedas e blockchain: https://courses.blockgeeks.com/course-library/

2 Curtidas

itexto