GSP665
Visão geral
Neste laboratório, você vai analisar os seis conjuntos de dados de blockchain
de criptomoedas lançados publicamente no BigQuery. Eles foram apresentados no
post
Introducing six new cryptocurrencies in BigQuery Public Datasets—and how to
analyze them
(em inglês).
Observação: este é um laboratório com desafio. Isso
significa que você não vai receber todas as partes das tarefas marcadas. Você
precisa ter conhecimento prático de SQL.
A seguir, leia um trecho do post para entender o contexto do laboratório:
Desde seu surgimento em 2009, as criptomoedas passaram por momentos de
volatilidade, mas continuam sendo uma fonte de fascínio. No ano passado, como
parte do programa de conjuntos de dados públicos do BigQuery, o Google Cloud
lançou conjuntos de dados com o histórico de transações de blockchain do
Bitcoin e do Ethereum para ajudar você a entender melhor as criptomoedas.
Hoje, estamos lançando mais seis blockchains de criptomoedas.
Também incluímos um conjunto de consultas e visualizações que mapeiam todos os
conjuntos de dados de blockchain para uma estrutura de dados de livro de
contabilidade de dupla entrada que permite metanálises de várias cadeias, bem
como integração com sistemas convencionais de processamento de registros
financeiros.
Conjuntos de dados de blockchain adicionais
Os seis conjuntos de dados de blockchain de criptomoedas que estamos lançando
hoje são: o Bitcoin Cash, o Dash, o Dogecoin, o Ethereum Classic, o Litecoin e
o Zcash.
Cinco desses conjuntos de dados, junto com o do Bitcoin publicado
anteriormente, agora seguem um esquema comum que permite análises
comparativas. Estamos lançando esse grupo de conjuntos de dados semelhantes ao
Bitcoin (o Bitcoin, o Bitcoin Cash, o Dash, o Dogecoin, o Litecoin e o Zcash)
juntos porque todos têm implementações semelhantes, ou seja, o código-fonte
deles é derivado do Bitcoin. Da mesma forma, também estamos lançando o
conjunto de dados do Ethereum Classic junto com o conjunto de dados do
Ethereum publicado anteriormente, sendo que o Ethereum Classic também está
usando o mesmo esquema comum.
Uma arquitetura unificada de ingestão de dados
Todos os conjuntos de dados são atualizados a cada 24 horas por meio de uma
base de código comum, o framework de ingestão Blockchain ETL (criado com o
Cloud Managed Service for Airflow, descrito aqui), para acomodar várias
criptomoedas semelhantes ao Bitcoin. Além de significar maior latência para
carregar blocos de Bitcoin no BigQuery, isso também significa que:
Podemos ingerir conjuntos de dados adicionais do BigQuery com menos esforço,
ou seja, conjuntos de dados adicionais podem ser integrados mais rapidamente
no futuro. Somos capazes de implementar uma única solução de carregamento de
baixa latência que pode ser usada para ativar transações de streaming em tempo
real para todos os blockchains.
Esquema e visualizações unificados
Desde que fornecemos o conjunto de dados original do Bitcoin no ano passado,
aprendemos como os usuários querem acessar os dados e reestruturamos o
conjunto de dados de acordo com a informação. Algumas dessas mudanças abordam
preocupações com desempenho e conveniência, resultando em consultas mais
rápidas e de menor custo (dados aninhados acessados com frequência são
desnormalizados; cada tabela é particionada por tempo).
Também incluímos mais dados, como códigos de operação de script. A maioria das
transações de Bitcoin descreve transferências de valor não apenas como um par
débito/crédito, mas sim como uma série de funções que descrevem transferências
simples e transações mais complexas.
Com esses scripts disponíveis para conjuntos de dados semelhantes ao Bitcoin,
é possível fazer análises mais avançadas, como o analisador de contratos
inteligentes que Tomasz Kolinko criou recentemente com base no conjunto de
dados do Ethereum no BigQuery. Por exemplo, agora podemos identificar e
relatar padrões de atividade envolvendo carteiras de várias assinaturas. A
importância disso é destacada na análise de criptomoedas orientadas à
privacidade, como o Zcash.
Para a interoperabilidade de análises, criamos um esquema unificado que
permite que todos os conjuntos de dados semelhantes ao Bitcoin compartilhem
consultas. Para facilitar ainda mais a interoperabilidade com o Ethereum e as
transações de tokens ERC-20, também criamos algumas visualizações que abstraem
o livro razão da blockchain para apresentá-lo como um livro razão distribuído
de dupla entrada.
Atividades deste laboratório
-
Análise e execução de uma consulta SQL simples nos conjuntos de dados
públicos de criptomoedas do BigQuery.
-
Verificação da exatidão do conjunto de dados público de criptomoedas do
BigQuery.
-
Realização semanal de uma consulta complexa que calcula o coeficiente de
Gini para o Litecoin e o Dash.
-
Uso de suas habilidades em SQL para concluir duas consultas interessantes no
conjunto de dados do bitcoin.
Pré-requisitos
Para aproveitar ao máximo este laboratório, você precisa ter:
- Familiaridade com criptomoedas.
- Capacidade de gravar instruções SQL básicas.
Configuração e requisitos
Antes de clicar no botão Começar o Laboratório
Leia estas instruções. Os laboratórios são cronometrados e não podem ser pausados. O timer é ativado quando você clica em Iniciar laboratório e mostra por quanto tempo os recursos do Google Cloud vão ficar disponíveis.
Este laboratório prático permite que você realize as atividades em um ambiente real de nuvem, e não em uma simulação ou demonstração. Você vai receber novas credenciais temporárias para fazer login e acessar o Google Cloud durante o laboratório.
Confira os requisitos para concluir o laboratório:
- Acesso a um navegador de Internet padrão (recomendamos o Chrome).
Observação: para executar este laboratório, use o modo de navegação anônima (recomendado) ou uma janela anônima do navegador. Isso evita conflitos entre sua conta pessoal e de estudante, o que poderia causar cobranças extras na sua conta pessoal.
- Tempo para concluir o laboratório: não se esqueça que, depois de começar, não será possível pausar o laboratório.
Observação: use apenas a conta de estudante neste laboratório. Se usar outra conta do Google Cloud, você poderá receber cobranças nela.
Como iniciar seu laboratório e fazer login no console do Google Cloud
-
Clique no botão Começar o laboratório. Se for preciso pagar por ele, uma caixa de diálogo vai aparecer para você selecionar a forma de pagamento.
No painel Detalhes do Laboratório, à esquerda, você vai encontrar o seguinte:
- O botão Abrir Console do Google Cloud
- O tempo restante
- As credenciais temporárias que você vai usar neste laboratório
- Outras informações, se forem necessárias
-
Se você estiver usando o navegador Chrome, clique em Abrir console do Google Cloud ou clique com o botão direito do mouse e selecione Abrir link em uma janela anônima.
O laboratório ativa os recursos e depois abre a página Fazer Login em outra guia.
Dica: coloque as guias em janelas separadas lado a lado.
Observação: se aparecer a caixa de diálogo Escolher uma conta, clique em Usar outra conta.
-
Se necessário, copie o Nome de usuário abaixo e cole na caixa de diálogo Fazer login.
{{{user_0.username | "Username"}}}
Você também encontra o nome de usuário no painel Detalhes do Laboratório.
-
Clique em Próxima.
-
Copie a Senha abaixo e cole na caixa de diálogo de Olá.
{{{user_0.password | "Password"}}}
Você também encontra a senha no painel Detalhes do Laboratório.
-
Clique em Próxima.
Importante: você precisa usar as credenciais fornecidas no laboratório, e não as da sua conta do Google Cloud.
Observação: se você usar sua própria conta do Google Cloud neste laboratório, é possível que receba cobranças adicionais.
-
Acesse as próximas páginas:
- Aceite os Termos e Condições.
- Não adicione opções de recuperação nem autenticação de dois fatores (porque essa é uma conta temporária).
- Não se inscreva em testes gratuitos.
Depois de alguns instantes, o console do Google Cloud será aberto nesta guia.
Observação: para acessar os produtos e serviços do Google Cloud, clique no Menu de navegação ou digite o nome do serviço ou produto no campo Pesquisar.
Tarefa 1. Visualização das criptomoedas no conjunto de dados público
-
Abra o Menu de navegação > BigQuery.
-
A caixa de diálogo
Olá! Este é o BigQuery no console do Cloud vai aparecer.
Clique em Concluído.
-
Para adicionar um conjunto de dados público, mude da análise clássica para
a guia Análise e clique em
+ Adicionar dados.
-
Clique em Conjuntos de dados públicos.
-
Em Pesquisar no Marketplace, digite
bitcoin e pressione Enter.
-
Clique em Conjunto de dados da criptomoeda Bitcoin Cash.
-
Clique em Ver conjunto de dados.
Uma nova guia vai abrir com o BigQuery. Com isso, você vai estar no conjunto
de dados bigquery-public-data:crypto_bitcoin_cash.
Todos os conjuntos de dados públicos são visíveis.
Observação: se o novo projeto
bigquery-public-data não aparecer no painel Análise, clique em
+ ADICIONAR DADOS > Marcar com estrela um projeto por nome >
Nome do projeto (bigquery-public-data) e
Marcar com estrela.
-
No painel Análise, digite
cripto no campo de
pesquisa.
Apenas os conjuntos de dados públicos que começam com "cripto" serão exibidos.
-
Expanda os conjuntos de dados para ver que todos eles compartilham a mesma
estrutura. Isso facilita a execução de consultas nas diferentes
criptomoedas, já que as tabelas, as visualizações e os campos são idênticos
em cada conjunto de dados de criptomoedas.
Tarefa 2. Execução de uma consulta simples
Nesta tarefa, você vai conferir a famosa transação de compra de uma pizza por
10 mil bitcoins. Saiba mais no
artigo Bitcoin Pizza Day 2018
(em inglês).
-
Mude para a guia Consulta SQL. Copie e cole esta consulta
na janela de consulta e pressione Executar:
SELECT * FROM `bigquery-public-data.crypto_bitcoin.transactions` as
transactions WHERE transactions.hash =
'a1075db55d416d3ca199f55b6084e2115b9345e16c5cf302fc80e9d5fbf5d48d'
Você pode ver os dados brutos retornados.
Observações:
-
Os valores de entrada, saída e taxa estão em satoshis. Atualmente, o
satoshi é a menor
unidade da moeda bitcoin registrada no blockchain. Ele corresponde à
centésima milionésima parte de um único bitcoin (0,00000001 BTC).
- O valor enviado é de várias entradas, todas do mesmo endereço.
- O valor de saída é enviado como uma única transação para um endereço.
Clique em Verificar meu progresso para conferir o objetivo.
Retorne a transação de compra de uma pizza por 10 mil BTC
Tarefa 3. Validação dos dados
Nesta tarefa, você vai verificar se consegue acessar os conjuntos de dados de
criptomoedas executando consultas de validação simples em duas criptomoedas.
Consulta de livro contábil de dupla entrada do Bitcoin Cash
Para motivar uma análise detalhada inicial desses novos conjuntos de dados,
vamos começar com um exemplo simples: comparando a maneira de consultar
pagamentos e recibos em várias criptomoedas. Essa comparação é a maneira mais
simples de verificar se uma criptomoeda está operando conforme o esperado e,
ao menos do ponto de vista operacional, é uma reserva de valor matematicamente
correta.
-
Copie e cole esta consulta na janela de consulta e pressione
Executar:
-- fonte SQL de
https://cloud.google.com/blog/products/data-analytics/introducing-six-new-cryptocurrencies-in-bigquery-public-datasets-and-how-to-analyze-them
WITH double_entry_book AS ( -- débitos SELECT
array_to_string(inputs.addresses, ",") as address , inputs.type ,
-inputs.value as value FROM `bigquery-public-data.crypto_bitcoin.inputs` as
inputs UNION ALL -- créditos SELECT array_to_string(outputs.addresses, ",") as
address , outputs.type , outputs.value as value FROM
`bigquery-public-data.crypto_bitcoin.outputs` as outputs ) SELECT address ,
type , sum(value) as balance FROM double_entry_book GROUP BY 1,2 ORDER BY
balance DESC LIMIT 100
Verifique se os valores de Bitcoin retornados são precisos
-
Em uma nova guia do navegador, abra o site
https://www.blockchain.com/explorer/search?search= A frase "O
que gostaria de encontrar?" vai aparecer.
-
Volte para a janela do BigQuery e copie (Ctrl+C) o valor do endereço
principal retornado nos resultados do BigQuery.
-
Cole (Ctrl+V) o valor do endereço na caixa de pesquisa e clique em
Pesquisar.
-
Verifique o saldo final retornado (em BTC). Ele deve ser igual ao saldo
listado nos resultados do BigQuery para esse endereço.
Observação: se o valor não for o mesmo, pode ser devido a
uma diferença de arredondamento na adição (pequena fração) ou ao atraso de 24
horas no conjunto de dados.
Consulta de livro contábil de dupla entrada do Dogecoin
-
Modifique a consulta (usada na Tarefa 3) substituindo
bitcoin por dogecoin e clique em
Executar a consulta.
Dica: há dois lugares na consulta para mudar o nome do
conjunto de dados de bitcoin para dogecoin.
Clique em Verificar meu progresso para conferir o objetivo.
Calcule o saldo de dogecoin
Verifique se os valores de Dogecoin retornados estão corretos
-
Em uma nova guia do navegador, abra o site
https://dogechain.info/.
-
Volte para a janela do BigQuery e copie o endereço principal retornado nos
resultados do BigQuery.
-
Cole (Ctrl+V) o valor do endereço na caixa de pesquisa e clique em
Pesquisar.
-
Observe o saldo devolvido. Ele deve ser igual ao saldo listado nos
resultados do BigQuery para esse endereço.
Observação: se o valor não for o mesmo, pode ser devido a
uma diferença de arredondamento na adição (pequena fração) ou ao atraso de 24
horas no conjunto de dados.
A única diferença entre eles é o nome do local dos dados. De forma
semelhante, você pode alternar entre o Bitcoin Cash, o Dash, o Litecoin e
o Zcash.
Tarefa 4. Coeficiente de Gini para criptomoedas
Além de aplicativos de controle de qualidade e auditoria, apresentar
criptomoedas em um formato tradicional permite a integração com outros
sistemas de gerenciamento de dados financeiros. Por exemplo, vamos
considerar uma medida econômica comum, o
coeficiente de Gini. No campo da macroeconomia, o coeficiente de Gini é membro de uma
família de
medidas econométricas de desigualdade de riqueza. Os valores variam entre 0,0 e 1,0, com riqueza completamente
distribuída (todos os membros têm a mesma quantia) mapeando para um valor
de 0,0, e riqueza completamente acumulada (um membro tem tudo) mapeando
para 1,0.
Normalmente, o coeficiente de Gini é estimado para a economia de um país
específico com base em amostragem ou imputação de dados. No caso das
criptoeconomias, temos total transparência dos dados na maior resolução
possível.
Além da transparência de dados, um dos benefícios alegados das
criptomoedas é que elas permitem que a implementação do dinheiro se
assemelhe mais à implementação de informações digitais. Portanto, uma rede
de dinheiro totalmente digitalizada vai se assemelhar à Internet, com
menos atrito transacional e menos barreiras que impedem o fluxo de
capital. Muitas vezes, essa narrativa implica que o capital será
distribuído de forma mais igualitária. Mas nem sempre observamos esse
resultado específico, e os criptoativos apresentados aqui exibem um amplo
espectro de padrões de distribuição ao longo do tempo. Saiba mais sobre
como usar o coeficiente de Gini para refletir sobre o desempenho de redes
criptoeconômicas em
Quantifying Decentralization
(em inglês).
Para definir um valor de referência para interpretar nossas descobertas,
considere como os recursos são distribuídos em economias tradicionais, ou
seja, que não utilizam criptomoedas. De acordo com uma
análise do Banco Mundial em 2013, os coeficientes de Gini recentes para economias mundiais têm um valor
médio de 39,6 (com um desvio padrão de 9,6).
Crie a consulta
Nesta próxima consulta, você vai calcular semanalmente o coeficiente de
Gini do dash. A consulta leva cerca de 3 minutos para ser executada.
Depois de ter os dados, você pode visualizar facilmente o gráfico e
compará-lo com o gerado para o artigo de origem.
-
Copie e cole esta consulta na janela de consulta e pressione
Executar:
-- fonte SQL de
https://gist.github.com/allenday/1500cc268f24ae89b7adfc25c74967b0 WITH
double_entry_book AS ( -- débitos SELECT array_to_string(inputs.addresses,
",") as address , inputs.type , -inputs.value as value , block_timestamp FROM
`bigquery-public-data.crypto_dash.inputs` as inputs UNION ALL -- créditos
SELECT array_to_string(outputs.addresses, ",") as address , outputs.type ,
outputs.value as value , block_timestamp FROM
`bigquery-public-data.crypto_dash.outputs` as outputs )
,double_entry_book_by_date as ( select date(block_timestamp) as date, address,
sum(value / POWER(10,0)) as value from double_entry_book group by address,
date ) ,daily_balances_with_gaps as ( select address, date, sum(value) over
(partition by address order by date) as balance, lead(date, 1, current_date())
over (partition by address order by date) as next_date from
double_entry_book_by_date ) ,calendar as ( select date from
unnest(generate_date_array('2009-01-12', current_date())) as date )
,daily_balances as ( select address, calendar.date, balance from
daily_balances_with_gaps join calendar on daily_balances_with_gaps.date <=
calendar.date and calendar.date < daily_balances_with_gaps.next_date )
,supply as ( select date, sum(balance) as daily_supply from daily_balances
group by date ) ,ranked_daily_balances as ( select daily_balances.date,
balance, row_number() over (partition by daily_balances.date order by balance
desc) as rank from daily_balances join supply on daily_balances.date =
supply.date where safe_divide(balance, daily_supply) >= 0.0001 ORDER BY
safe_divide(balance, daily_supply) DESC ) select date, -- (1 − 2B)
https://en.wikipedia.org/wiki/Gini_coefficient 1 - 2 * sum((balance * (rank -
1) + balance / 2)) / count(*) / sum(balance) as gini from
ranked_daily_balances group by date order by date asc
Salve os resultados em uma tabela do BigQuery
-
Na faixa de opções "Resultados da consulta", clique em
Salvar resultados e selecione
Tabela do BigQuery
-
Em Salvar na tabela do BigQuery, deixe o projeto como
está, selecione o conjunto de dados laboratório e nomeie
a tabela, como dash_gini, e pressione
Salvar. Quando terminar, clique em
Acessar tabela.
Use o Data Studio para visualizar a consulta
-
Na Visualização em tabela, clique em Abrir em e
selecione Data Studio. Em seguida, clique em
Autorizar no comando
Solicitação de autorização.
-
Quando o Data Studio aparecer, exclua os gráficos gerados
automaticamente (selecione-os e pressione a tecla Excluir). Clique em
Adicionar um gráfico na barra de menus superior. Em
Série temporal, selecione
Gráfico de série temporal.
-
Mude a métrica para gini.
-
Compare o gráfico com o gráfico do artigo original (reproduzido
abaixo). No gráfico abaixo, procure a linha marrom. Começando em
dezembro de 2019, veja como ela mudou desde então.
Gere o coeficiente de Gini para o litecoin
-
Repita as mesmas etapas utilizadas para a criptomoeda Dash, desta vez
para obter o coeficiente de Gini para o Litecoin.
Tarefa 5. Análise de dois eventos famosos de criptomoedas
Há um
post no site Blockchain
que descreve vários eventos memoráveis no bitcoin. Você vai realizar duas
consultas no conjunto de dados público do bitcoin para recuperar os dados
em alguns desses eventos.
22 de novembro de 2013: transação de bitcoin gera mistério e especulação
No outono de 2013, uma transação de 194.993 bitcoins atingiu a rede, o que
fez com que muitos se perguntassem quem estava por trás dessa transação
muito grande. O valor em dólares americanos foi superior a 149 milhões. O
CoinDesk escreveu: "não é surpresa que uma transação desse tamanho tenha
levado a comunidade do bitcoin a fazer análises e investigações. A
transação envolveu um grande número de endereços de envio, alguns deles de
blocos minerados em fevereiro de 2010 ou até antes disso, o que gerou
especulações de que eles poderiam ser de Satoshi Nakamoto, o fundador
ausente (que provavelmente usa um pseudônimo) do bitcoin."
-
Escreva uma consulta SQL para encontrar o
transaction_hash da transferência de 194.993 bitcoins (BTC)
e grave esses dados em uma tabela chamada 51 no conjunto de dados do
laboratório. Confira o SQL abaixo para começar:
CREATE OR REPLACE TABLE lab.51 (transaction_hash STRING) as SELECT -- grave o
resto da consulta (lembre-se de usar onde) ....
Para isso, você precisa entender a estrutura da tabela
transações ou usar a visualização
saídas. Sua consulta precisa devolver o hash da
transação. Os outros campos não são importantes.
Dica: o valor exclusivo facilita a consulta desse valor.
Você vai precisar converter o valor em satoshis. Você pode usar a função
UNNEST para completar a instrução SELECT e retornar a tabela.
Clique em Verificar meu progresso para conferir o
objetivo.
Armazene o hash da transação da grande transferência misteriosa de
194.993 BTC na tabela 51 do conjunto de dados do laboratório
Depois de todo esse tempo, qual é o saldo do endereço que comprou as duas
pizzas por 10 mil BTC?
-
Escreva uma consulta SQL para gravar o saldo da conta que pagou 10 mil
BTC pelas duas pizzas em 2010 na tabela 52 do conjunto de dados do
laboratório.
A saída precisa ter o saldo do endereço.
Dica: modifique a consulta da Tarefa 3 para
selecionar apenas as linhas com o endereço do comprador (usando uma cláusula
WHERE). Para conseguir o endereço do comprador, faça a consulta da
Tarefa 2 e copie o endereço das entradas (não é necessário incluir essa
consulta como parte da solução desta atividade).
Veja abaixo um SQL para você começar:
CREATE OR REPLACE TABLE lab.52 (balance NUMERIC) as WITH double_entry_book AS
( -- débitos SELECT array_to_string(inputs.addresses, ",") as address ,
-inputs.value as value FROM `bigquery-public-data.crypto_bitcoin.inputs` as
inputs UNION ALL -- créditos SELECT array_to_string(outputs.addresses, ",") as
address , outputs.value as value FROM
`bigquery-public-data.crypto_bitcoin.outputs` as outputs ) SELECT -- escreva o
restante da instrução SELECT (lembre-se de usar WHERE)
Clique em Verificar meu progresso para conferir o
objetivo.
Armazene o saldo do endereço de compra da pizza na tabela 52 no conjunto
de dados do laboratório
Parabéns!
Treinamento e certificação do Google Cloud
Esses treinamentos ajudam você a aproveitar as tecnologias do Google Cloud ao máximo. Nossas aulas incluem habilidades técnicas e práticas recomendadas para ajudar você a alcançar rapidamente o nível esperado e continuar sua jornada de aprendizado. Oferecemos treinamentos que vão do nível básico ao avançado, com opções de aulas virtuais, sob demanda e por meio de transmissões ao vivo para que você possa encaixá-las na correria do seu dia a dia. As certificações validam sua experiência e comprovam suas habilidades com as tecnologias do Google Cloud.
Manual atualizado em 13 de fevereiro de 2026
Laboratório testado em 13 de fevereiro de 2026
Copyright 2026 Google LLC. Todos os direitos reservados. Google e o logotipo do Google são marcas registradas da Google LLC. Todos os outros nomes de produtos e empresas podem ser marcas registradas das respectivas empresas a que estão associados.