GSP665
Descripción general
Este lab te permite explorar los seis conjuntos de datos de cadenas de bloques de criptomonedas que se lanzaron de forma pública en BigQuery. Esto se anunció en la entrada de blog Introducing six new cryptocurrencies in BigQuery Public Datasets—and how to analyze them.
Nota: Este es un lab de desafío. Esto significa que no se te proporcionarán todas las partes de las tareas marcadas. Debes tener conocimientos prácticos de SQL.
A continuación, se muestra un fragmento de la entrada de blog. Léelo para comprender los antecedentes del lab:
Desde que surgieron en el 2009, las criptomonedas han experimentado cierta volatilidad y son objeto continuo de fascinación. El año pasado, como parte del programa de conjuntos de datos públicos de BigQuery, Google Cloud lanzó conjuntos de datos que contienen el historial de transacciones de cadena de bloques para Bitcoin y Ethereum, para ayudarte a comprender mejor las criptomonedas. Hoy, lanzaremos otras seis cadenas de bloques de criptomonedas.
También incluiremos un conjunto de consultas y vistas que asocian todos los conjuntos de datos de cadenas de bloques a una estructura de datos de registro de doble entrada que permite realizar metaanálisis de múltiples cadenas, así como la integración con sistemas convencionales de procesamiento de registros contables.
Conjuntos de datos adicionales de cadenas de bloques
Los seis conjuntos de datos de cadenas de bloques de criptomonedas que lanzaremos hoy corresponden a Bitcoin Cash, Dash, Dogecoin, Ethereum Classic, Litecoin y Zcash.
Cinco de estos conjuntos de datos, junto con el de Bitcoin publicado anteriormente, ahora siguen un esquema común que permite realizar análisis comparativos. Decidimos lanzar este grupo de conjuntos de datos similares a Bitcoin (Bitcoin, Bitcoin Cash, Dash, Dogecoin, Litecoin y Zcash) juntos porque todos tienen implementaciones similares, es decir, su código fuente se deriva del de Bitcoin. De manera similar, también lanzaremos el conjunto de datos de Ethereum Classic junto con el conjunto de datos de Ethereum publicado anteriormente. Ethereum Classic también usa el mismo esquema común.
Una arquitectura unificada de transferencia de datos
Todos los conjuntos de datos se actualizan cada 24 horas a través de una base de código común, el framework de transferencia de datos de Blockchain ETL (creado con Cloud Composer, descrito anteriormente), para adaptarse a una variedad de criptomonedas similares a Bitcoin. Si bien esto implica una mayor latencia para cargar bloques de Bitcoin en BigQuery, también significa lo siguiente:
Podemos transferir conjuntos de datos adicionales de BigQuery con menos esfuerzo, lo que significa que se podrán incorporar conjuntos de datos adicionales con más rapidez en el futuro.
Podemos implementar una única vez una solución de carga de baja latencia, la que se podrá usar para habilitar transacciones de transmisión en tiempo real para todas las cadenas de bloques.
Esquema y vistas unificados
Desde que proporcionamos el conjunto de datos original de Bitcoin el año pasado, aprendimos cómo los usuarios quieren acceder a los datos y reestructuramos el conjunto de datos en consecuencia. Algunos de estos cambios abordan problemas de rendimiento y conveniencia, gracias a lo que se generan consultas más rápidas y de menor costo (los datos anidados a los que se accede con frecuencia se desnormalizan; cada tabla se particiona por tiempo).
También incluimos más datos, como los códigos de operación de las secuencias de comandos. La mayoría de las transacciones de Bitcoin describen transferencias de valor no solo como un par de débito/crédito, sino como una serie de funciones que describen tanto transferencias simples como transacciones más complejas.
Tener estas secuencias de comandos disponibles para conjuntos de datos similares a Bitcoin permite realizar análisis más avanzados, como este analizador de contratos inteligente que Tomasz Kolinko creó recientemente con base en el conjunto de datos de Ethereum de BigQuery. Por ejemplo, ahora podemos identificar patrones de actividad que involucran billeteras de firmas múltiples y generar informes sobre ellos. Esto es muy importante para analizar criptomonedas orientadas a la privacidad, como Zcash.
Para la interoperabilidad de los análisis, diseñamos un esquema unificado que permite que todos los conjuntos de datos similares a Bitcoin compartan consultas. Para aumentar aún más la interoperabilidad con Ethereum y las transacciones de tokens ERC-20, también creamos algunas vistas que abstraen el registro de la cadena de bloques para presentarlo como un registro de contabilidad de doble entrada.
Actividades
- Explorar y realizar una consulta en SQL simple en los conjuntos de datos públicos de criptomonedas de BigQuery
- Verificar que el conjunto de datos públicos de criptomonedas de BigQuery sea correcto
- Realizar una consulta compleja que calcule el coeficiente de Gini para Litecoin y Dash, de forma semanal
- Usar tus habilidades de SQL para completar dos consultas interesantes en el conjunto de datos de Bitcoin
Requisitos previos
Para aprovechar al máximo este lab, debes tener los siguientes conocimientos:
- Conocimiento de criptomonedas
- Capacidad de escribir sentencias de SQL básicas
Configuración y requisitos
Antes de hacer clic en el botón Comenzar lab
Lee estas instrucciones. Los labs cuentan con un temporizador que no se puede pausar. El temporizador, que comienza a funcionar cuando haces clic en Comenzar lab, indica por cuánto tiempo tendrás a tu disposición los recursos de Google Cloud.
Este lab práctico te permitirá realizar las actividades correspondientes en un entorno de nube real, no en uno de simulación o demostración. Para ello, se te proporcionan credenciales temporales nuevas que utilizarás para acceder a Google Cloud durante todo el lab.
Para completar este lab, necesitarás lo siguiente:
- Acceso a un navegador de Internet estándar. Se recomienda el navegador Chrome.
Nota: Usa una ventana del navegador privada o de incógnito (opción recomendada) para ejecutar el lab. Así evitarás conflictos entre tu cuenta personal y la cuenta de estudiante, lo que podría generar cargos adicionales en tu cuenta personal.
- Tiempo para completar el lab (recuerda que, una vez que comienzas un lab, no puedes pausarlo).
Nota: Usa solo la cuenta de estudiante para este lab. Si usas otra cuenta de Google Cloud, es posible que se apliquen cargos a esa cuenta.
Cómo iniciar tu lab y acceder a la consola de Google Cloud
-
Haz clic en el botón Comenzar lab. Si debes pagar por el lab, se abrirá un diálogo para que selecciones la forma de pago.
A la izquierda, se encuentra el panel Detalles del lab, que tiene estos elementos:
- El botón para abrir la consola de Google Cloud
- El tiempo restante
- Las credenciales temporales que debes usar para el lab
- Otra información para completar el lab, si es necesaria
-
Haz clic en Abrir la consola de Google Cloud (o haz clic con el botón derecho y selecciona Abrir el vínculo en una ventana de incógnito si ejecutas el navegador Chrome).
El lab inicia recursos y abre otra pestaña en la que se muestra la página de acceso.
Sugerencia: Ordena las pestañas en ventanas separadas, una junto a la otra.
Nota: Si ves el diálogo Elegir una cuenta, haz clic en Usar otra cuenta.
-
De ser necesario, copia el nombre de usuario a continuación y pégalo en el diálogo Acceder.
{{{user_0.username | "Username"}}}
También puedes encontrar el nombre de usuario en el panel Detalles del lab.
-
Haz clic en Siguiente.
-
Copia la contraseña que aparece a continuación y pégala en el diálogo Te damos la bienvenida.
{{{user_0.password | "Password"}}}
También puedes encontrar la contraseña en el panel Detalles del lab.
-
Haz clic en Siguiente.
Importante: Debes usar las credenciales que te proporciona el lab. No uses las credenciales de tu cuenta de Google Cloud.
Nota: Usar tu propia cuenta de Google Cloud para este lab podría generar cargos adicionales.
-
Haz clic para avanzar por las páginas siguientes:
- Acepta los Términos y Condiciones.
- No agregues opciones de recuperación o autenticación de dos factores (esta es una cuenta temporal).
- No te registres para obtener pruebas gratuitas.
Después de un momento, se abrirá la consola de Google Cloud en esta pestaña.
Nota: Para acceder a los productos y servicios de Google Cloud, haz clic en el menú de navegación o escribe el nombre del servicio o producto en el campo Buscar.
Tarea 1: Visualiza las criptomonedas en el conjunto de datos públicos
-
Abre Menú de navegación > BigQuery.
-
Se abrirá el cuadro de diálogo Te damos la bienvenida a BigQuery en la consola de Cloud. Haz clic en Listo.
-
Para agregar un conjunto de datos públicos, cambia del explorador clásico a la pestaña Explorador y haz clic en + Agregar datos.
-
Haz clic en Conjuntos de datos públicos.
-
En Buscar en Marketplace, escribe bitcoin y presiona Intro.
-
Haz clic en Bitcoin Cash Cryptocurrency Dataset.
-
Haz clic en Ver conjunto de datos.
Se abrirá una pestaña nueva con BigQuery, y deberías estar en el conjunto de datos bigquery-public-data:crypto_bitcoin_cash.
Todos los conjuntos de datos públicos son visibles.
Nota: Si el proyecto nuevo bigquery-public-data no aparece en el panel Explorador, haz clic en + AGREGAR DATOS > Destacar un proyecto por nombre > Nombre del proyecto (bigquery-public-data) y Destacar.
- Escribe
crypto en el campo de búsqueda del panel Explorador.
Solo se mostrarán los conjuntos de datos públicos que comiencen con "crypto".
- Expande los conjuntos de datos para que puedas ver que todos comparten la misma estructura. Esto facilita la realización de consultas en las diferentes criptomonedas, ya que las tablas, las vistas y los campos son idénticos en cada conjunto de datos de criptomonedas.
Tarea 2: Realiza una consulta simple
En esta tarea, verás la famosa transacción de compra de unas pizzas por 10,000 bitcoins. Puedes obtener más información leyendo el artículo del Día de la Pizza de Bitcoin del 2018.
- Cambia a la pestaña Consulta en SQL. Copia y pega esta consulta en la ventana de consultas y, luego, presiona Ejecutar:
SELECT * FROM `bigquery-public-data.crypto_bitcoin.transactions` as transactions WHERE transactions.hash = 'a1075db55d416d3ca199f55b6084e2115b9345e16c5cf302fc80e9d5fbf5d48d'
Podrás ver los datos sin procesar que se devolvieron.
Información que debes tener en cuenta:
- Los valores de entrada, salida y tarifas están en satoshis. El satoshi es actualmente la unidad más pequeña de la moneda bitcoin registrada en la cadena de bloques. Es la cienmillonésima parte de un bitcoin (0.00000001 BTC).
- El importe enviado se realiza a través de múltiples entradas que provienen de la misma dirección.
- El importe de salida se envía como una sola transacción a la dirección.
Haz clic en Revisar mi progreso para verificar el objetivo.
Devolver la transacción de compra de pizzas de 10,000 BTC
Tarea 3: Valida los datos
En esta tarea, comprobarás si puedes acceder a los conjuntos de datos de criptomonedas realizando consultas de validación simples en dos criptomonedas.
Consulta del registro de doble entrada de Bitcoin Cash
Para motivar una exploración inicial de estos nuevos conjuntos de datos, comencemos con un ejemplo simple, en el que se compara la forma de consultar tanto los pagos como los recibos en múltiples criptomonedas. Esta comparación es la forma más sencilla de verificar que una criptomoneda funciona como se espera y, al menos en términos operativos, es un almacén de valor matemáticamente correcto.
- Copia y pega esta consulta en la ventana de consultas y, luego, presiona Ejecutar:
-- SQL source from 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 (
-- debits
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
-- credits
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
Verifica que los valores de Bitcoin devueltos sean correctos
-
En una nueva pestaña del navegador, abre el sitio web https://www.blockchain.com/explorer/search?search=.
Se mostrará el mensaje "What can we help you find?".
-
Regresa a la ventana de BigQuery y copia (Ctrl + C) el primer valor de dirección que se devolvió en los resultados de BigQuery.
-
Pega (Ctrl + V) el valor de la dirección en el cuadro de búsqueda y haz clic para buscar.
-
Verifica el saldo final devuelto (en BTC). Debería ser el mismo que el saldo que aparece en los resultados de BigQuery para esa dirección.
Nota: Si no es así, se deberá a una diferencia de redondeo en la suma (una pequeña fracción) o al retraso de 24 horas en el conjunto de datos.
Consulta del registro de doble entrada de Dogecoin
- Modifica la consulta que se usó en la tarea 3 reemplazando bitcoin por dogecoin y, luego, ejecuta la consulta.
Ayuda: Hay dos lugares en la consulta en los que debes cambiar el nombre del conjunto de datos de bitcoin a dogecoin.
Haz clic en Revisar mi progreso para verificar el objetivo.
Calcular el saldo de Dogecoin
Verifica que los valores de Dogecoin devueltos sean correctos
-
En una nueva pestaña del navegador, abre el sitio web https://dogechain.info/.
-
Regresa a la ventana de BigQuery y copia la primera dirección que se devolvió en los resultados de BigQuery.
-
Pega (Ctrl + V) el valor de la dirección en el cuadro de búsqueda y haz clic para buscar.
-
Toma nota del saldo devuelto, que debería ser igual al que aparece en los resultados de BigQuery para esa dirección.
Nota: Si no es así, se deberá a una diferencia de redondeo en la suma (una pequeña fracción) o al retraso de 24 horas en el conjunto de datos.
Ten en cuenta que la única diferencia entre ellos es el nombre de la ubicación de los datos. Puedes revisar los conjuntos de datos de Bitcoin Cash, Dash, Litecoin y Zcash de manera similar.
Tarea 4: Traza el coeficiente de Gini para criptomonedas
Además de las aplicaciones de control de calidad y auditoría, presentar la criptomoneda en un formato tradicional permite la integración con otros sistemas de administración de datos financieros. Como ejemplo, consideremos una medida económica común, el coeficiente de Gini. En el campo de la macroeconomía, el coeficiente de Gini es miembro de una familia de medidas econométricas de desigualdad en la riqueza. Los valores varían entre 0.0 y 1.0, con una riqueza completamente distribuida (todos los miembros tienen la misma cantidad) que se asigna a un valor de 0.0 y una riqueza completamente acumulada (un miembro lo tiene todo) que se asigna a 1.0.
Por lo general, el coeficiente de Gini se estima para la economía de un país específico en función del muestreo o la imputación de datos. En la criptoeconomía, tenemos una transparencia completa de los datos con la mayor resolución posible.
Además de la transparencia de los datos, uno de los beneficios que se atribuyen a las criptomonedas es que permiten que la implementación del dinero se parezca más a la implementación de la información digital. Por lo tanto, una red de dinero totalmente digitalizada se parecerá a Internet, con una fricción transaccional reducida y menos barreras que impidan el flujo de capital. A menudo, en esta narrativa se da por sentado que el capital se distribuirá de manera más equitativa. Sin embargo, no siempre observamos ese resultado en particular, y los criptoactivos que se presentan aquí muestran un amplio espectro de patrones de distribución con el paso del tiempo. Puedes obtener más información sobre el uso del coeficiente de Gini para razonar sobre el rendimiento de la red criptoeconómica en Quantifying Decentralization.
Para establecer una referencia que nos permita interpretar nuestros hallazgos, consideremos cómo se distribuyen los recursos en las economías tradicionales que no son de criptomonedas. Según un análisis del Banco Mundial en el 2013, los coeficientes de Gini recientes para las economías mundiales tienen un valor medio de 39.6 (con una desviación estándar de 9.6).
Crea la consulta
En esta próxima consulta, calcularás el coeficiente de Gini de Dash de forma semanal. Esta consulta tardará unos 3 minutos en ejecutarse. Una vez que tengas los datos, podrás visualizar fácilmente el gráfico y compararlo con el que se generó para el artículo fuente.
- Copia y pega esta consulta en la ventana de consultas y, luego, presiona Ejecutar:
-- SQL source from https://gist.github.com/allenday/1500cc268f24ae89b7adfc25c74967b0
WITH double_entry_book AS (
-- debits
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
-- credits
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
Guarda los resultados en una tabla de BigQuery
-
En la cinta Resultados de la consulta, haz clic en Guardar los resultados y selecciona Tabla de BigQuery.
-
En Guardar en tabla de BigQuery, deja el proyecto como está, selecciona el conjunto de datos lab y asígnale un nombre a la tabla, por ejemplo, dash_gini. Luego, presiona Guardar. Cuando finalice el proceso, haz clic en Ir a la tabla.
Usa Looker Studio para visualizar la consulta
-
En la vista de tabla, haz clic en Abrir en y selecciona Looker Studio. Luego, haz clic en Autorizar en el mensaje Requesting Authorization.
-
Cuando se abra Looker Studio, borra los gráficos generados automáticamente (selecciónalos y presiona la tecla Borrar). Haz clic en Add a chart en la barra de menú superior. En Time Series, selecciona Time Series chart.

-
Cambia la métrica a gini.
-
Compara el gráfico con el del artículo fuente original (reproducido a continuación). En el gráfico que aparece a continuación, busca la línea marrón. Observa cómo cambió a partir de diciembre de 2019.

Genera el coeficiente de Gini para Litecoin
- Realiza los mismos pasos que seguiste para la criptomoneda Dash y, así, obtener el coeficiente de Gini en Litecoin.
Tarea 5: Explora dos eventos famosos de criptomonedas
Hay una entrada de blog en el sitio de Blockchain en la que se describen varios eventos memorables relacionados con Bitcoin. Realizarás dos consultas en el conjunto de datos públicos de Bitcoin para recuperar los datos de un par de esos eventos.
22 de noviembre de 2013: Esta transacción de Bitcoin genera misterio y especulación
En el otoño del 2013, se registró una gran transacción de 194,993 bitcoins en la red, lo que hizo que muchos se preguntaran quién estaba detrás de ella. El valor en el momento de la transacción equivalía a más de 149 millones de dólares estadounidenses. CoinDesk escribió lo siguiente: "Como era de esperarse, una transacción de esa magnitud llevó a la comunidad de Bitcoin a hacer análisis y trabajos detectivescos. La transacción involucró una gran cantidad de direcciones de envío, algunas de ellas de bloques minados en febrero de 2010 o incluso antes, lo que causó la entusiasta especulación de que podrían ser de Satoshi Nakamoto, el fundador ausente de Bitcoin (cuyo nombre probablemente sea un seudónimo)".
- Escribe una consulta en SQL para encontrar el
transaction_hash de la transferencia de 194,993 bitcoins (BTC) y escribe esos datos en una tabla llamada 51 en el conjunto de datos lab. A continuación, se muestra el código SQL para ayudarte a comenzar:
CREATE OR REPLACE TABLE lab.51 (transaction_hash STRING) as
SELECT -- write the rest of the query (remember to use where) ....
Para ello, debes comprender la estructura de la tabla transactions o puedes usar la vista outputs. Tu consulta debe devolver el hash de la transacción. Los otros campos no son importantes.
Ayuda: La cantidad única facilita la consulta de ese valor. Deberás convertir el valor a satoshis. Puedes usar la función UNNEST para completar la sentencia SELECT y devolver la tabla.
Haz clic en Revisar mi progreso para verificar el objetivo.
Almacenar el hash de transacción de la gran y misteriosa transferencia de 194,993 BTC en la tabla 51 del conjunto de datos lab
Después de todo este tiempo, ¿cuál es el saldo de la dirección que compró las dos pizzas por 10,000 BTC?
- Escribe una consulta en SQL para escribir en la tabla 52 del conjunto de datos lab el saldo de la cuenta que pagó 10,000 BTC por las dos pizzas en el 2010.
El resultado debe tener el saldo de la dirección.
Ayuda: Modifica la consulta de la tarea 3 para seleccionar solo las filas con la dirección del comprador (con una cláusula WHERE). Para obtener la dirección del comprador, puedes realizar la consulta de la tarea 2 y copiar la dirección de las entradas (no es necesario que incluyas esa consulta como parte de la solución para esta actividad).
Aquí tienes código SQL para empezar:
CREATE OR REPLACE TABLE lab.52 (balance NUMERIC) as
WITH double_entry_book AS (
-- debits
SELECT
array_to_string(inputs.addresses, ",") as address
, -inputs.value as value
FROM `bigquery-public-data.crypto_bitcoin.inputs` as inputs
UNION ALL
-- credits
SELECT
array_to_string(outputs.addresses, ",") as address
, outputs.value as value
FROM `bigquery-public-data.crypto_bitcoin.outputs` as outputs
)
SELECT -- write the rest of the select statement (remember to use where) ...
Haz clic en Revisar mi progreso para verificar el objetivo.
Almacenar el saldo de la dirección de compra de las pizzas en la tabla 52 del conjunto de datos lab
¡Felicitaciones!
Capacitación y certificación de Google Cloud
Recibe la formación que necesitas para aprovechar al máximo las tecnologías de Google Cloud. Nuestras clases incluyen habilidades técnicas y recomendaciones para ayudarte a avanzar rápidamente y a seguir aprendiendo. Para que puedas realizar nuestros cursos cuando más te convenga, ofrecemos distintos tipos de capacitación de nivel básico a avanzado: a pedido, presenciales y virtuales. Las certificaciones te ayudan a validar y demostrar tus habilidades y tu conocimiento técnico respecto a las tecnologías de Google Cloud.
Última actualización del manual: 13 de febrero de 2026
Prueba más reciente del lab: 13 de febrero de 2026
Copyright 2026 Google LLC. All rights reserved. Google y el logotipo de Google son marcas de Google LLC. Los demás nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que estén asociados.