Crea una cuenta o inicia sesi贸n

隆Contin煤a aprendiendo sin ning煤n costo! 脷nete y comienza a potenciar tu carrera

Curso de Bitcoin para Developers

Curso de Bitcoin para Developers

Juan Sebasti谩n Marulanda

Juan Sebasti谩n Marulanda

La arquitectura de una red P2P

5/16
Recursos

La infraestructura que est谩 por detr谩s de cualquier Blockchain tiene caracter铆sticas 煤nicas para lograr la descentralizaci贸n de un servicio y que todos sus nodos sean iguales.

Topolog铆a, nodos y flujos de transacci贸n en la red Bitcoin

Las redes entre pares o redes Peer-to-Peer (P2P), refieren a una distribuci贸n de datos homog茅nea, que se constituye de nodos que comparten el mismo nivel de importancia y funcionalidad. Todos los nodos son pares entre s铆. Esta red otorga la posibilidad de descentralizaci贸n que es conocida en Bitcoin, aunque ya se ha usado antes por otros servicios antes de Blockchain.

Su topolog铆a se puede describir como 鈥減lana鈥. No hay servidores ni servicios centralizados. Los nodos proveen y reciben servicio rec铆procamente, siendo esto el incentivo y el factor principal para la participaci贸n dentro de la red. Solamente as铆 es como Bitcoin o cualquier Blockchain logra y mantiene un control descentralizado de los activos.

Qu茅 es Bitcoin Network

La red de Bitcoin es una colecci贸n de nodos corriendo en su protocolo P2P y utilizando proof-of-work para mantener el consenso. Adem谩s de esto, existen otros protocolos que est谩n 鈥渆ncima鈥 de la red Bitcoin. Tales como Stratum que fue lanzado hace pocos a帽os para mejorar el rendimiento y la eficiencia del minado.

Estos protocolos adicionales son dados por servidores que se conectan a la red Bitcoin a trav茅s de su protocolo y la extienden por sus nodos.

A esto se le conoce como la red extendida de Bitcoin (Extended Bitcoin Network), que engloba el total de la red que incluye todos los protocolos conectados a los componentes del sistema Bitcoin.

Tipos de nodos Bitcoin

Aunque los nodos de Bitcoin son iguales, estos pueden adoptar roles diferentes dependiendo de la funcionalidad que deban soportar. Un nodo de este sistema es una colecci贸n de funciones:

Network routing node:

Esta funci贸n permite la conexi贸n y participaci贸n dentro de la red. Con ella tambi茅n validan y propagan transacciones y bloques; descubren y mantienen conexiones en pares.

Full node o SPV node:

Se refiere a la funci贸n que permite que dentro de un nodo se almacene una copia total o parcial de la cadena de bloques de Bitcoin, respectivamente. Aquellos que poseen una copia completa, pueden actuar con autonom铆a para verificar cualquier transacci贸n, adem谩s de otras capacidades.

Pruning node:

Descarga y procesa la menor cantidad de informaci贸n para validar bloques y transacciones, como un nodo completo, solo que prescindiendo de los bloques antiguos para ahorrar espacio.

Archive node:

Actualizan la informaci贸n de nodos nuevos que se agregan o reingresan a la red.

Mining node:

Estos nodos compiten para crear nuevos bloques haciendo uso de hardware especializado para resolver el algoritmo PoW.

Wallet:

Esto se refiere a la capacidad de hacer operaciones y transacciones con Bitcoin dentro del software adecuado, dependiendo del dispositivo.

Network discovery

El proceso en el que un nuevo nodo se conecta a la red, se divide en tres fases. Hay que tomar en cuenta antes, que la localizaci贸n geogr谩fica de un nodo no es relevante para el protocolo:

  • Handshake version message: entre nodos, aquel que ya estaba en la red entrega informaci贸n de la versi贸n, fecha, direcci贸n IP y se verifica que ambos nodos est茅n en el mismo protocolo, para entonces volverse pares.
  • DNS Seeds: se solicitan direcciones IP desde este nuevo nodo para nueva conexiones. Estas conexiones son ef铆meras, por lo que es importante conservar el mayor n煤mero lo m谩s posible.
  • Sync: la obtenci贸n de la base de datos a trav茅s de los pares para actualizar y llegar a la altura actual en la cadena de bloques.

Otras caracter铆sticas de la Blockchain de Bitcoin

El funcionamiento completo de Bitcoin es complejo, aqu铆 van algunos conceptos m谩s que tienes que conocer:

  • Descarga de bloque inicial (IBD): estado temporal en el que, al agregar un nuevo nodo o uno se tiene que actualizar, este debe empezar a descargar los bloques y las transacciones que se est谩n a帽adiendo al Libro Mayor.
  • Bitcoin Core: se refiere a la implementaci贸n del protocolo Bitcoin a trav茅s del proyecto de c贸digo libre de Satoshi Nakamoto. No necesariamente se debe usar Bitcoin Core para correr el protocolo Bitcoin, aunque este es el m谩s conocido y el est谩ndar actual.
  • Nodo como servicio: un nodo que permite que otros componentes puedan comunicarse con 茅l y brindarles informaci贸n para crear nuevos servicios.
  • Mempool: estructura en memoria que contiene todas las transacciones pendientes a minar y agregar a un nuevo bloque. Los nodos validadores toman transacciones de aqu铆 para proponer nuevos bloques.

Antecedentes y predecesores

No todo el funcionamiento de Bitcoin es revolucionario y nuevo. Su creador, Satoshi Nakamoto, se ha inspirado en varios conceptos y conocimientos que surgieron desde la d茅cada de los 80麓s en adelante.

Desde el mismo 谩rbol de Merkle hasta las pruebas de trabajo del procolo proof-of-work. Bitcoin no fue la primera moneda digital, uno de los primeros intentos, sin 茅xito, de descentralizar la econom铆a fue b-money. Nakamoto, uni贸 muchas partes y propuso otras para formar el sistema que hoy conocemos como Bitcoin.

Por supuesto, tambi茅n ha favorecido a la creaci贸n de implementaciones similares y en algunos sentidos, mejores, como Ethereum y los Smart Contracts. Y este a su vez se intenta superar con otras Blockchains que llegaron posteriormente como Solana. La tecnolog铆a avanza y se supera con cada nueva implementaci贸n y proyecto.

Puedes tomar el Curso de Introducci贸n a Solana.

Conclusiones

El funcionamiento de toda la red de Bitcoin es grande y complejo de resumir. Siempre es aconsejable leer el libro blanco de Bitcoin si es de tu inter茅s t茅cnico comprender m谩s en profundidad su funcionamiento t茅cnico.


Contribuci贸n creada por: Luis Enrique Herrera y Kevin Fiorentino (Platzi Contributor).

Aportes 15

Preguntas 5

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

La Arquitectura de una Red P2P.
.
Red homog茅nea que tiene unas m谩quinas que corren cierto protocolo.
.

  • Todos los participantes son pares entre s铆, todos son iguales.
  • Resiliente, descentralizada y abierta.
  • Bitcoin, Napster, BitTorrent.
    .
    Red de Bitcoin.
    .
  • Conjunto de nodos corriendo el protocolo bitcoin.
  • Protocolos adicionales usan el P2P de bitcoin y extienden la red a otros nodos corriendo esos protocolos adicionales.
  • Extended Bitcoin Network.
    .
    Tipos de nodos.
    .
  • Full node.
    • Nodo que valida la cadena completa y sus transacciones.
    • Mantienen un estado actualizado, un conjunto de UTXO.
  • Pruning nodes.
    • Nodo que descarga y procesa bloques para generar una base de datos para validaci贸n.
    • Desecha bloques antiguos para ahorrar espacio.
  • Archive nodes.
    • Contiene una copia de toda la historia de la cadena.
    • Valida y consulta transacciones y bloques en cualquier punto hist贸rico.
    • Entregan el historial a nuevos nodos para que se conviertan en full nodes.
  • Mining nodes.
    • Compiten por crear nuevos bloques.
    • Validan transacciones.
    • Fundamentales para la seguridad y el consenso de la red.
    • Mantienen un mempool de transacciones no confirmadas.
    • Mining pools.
  • Simplified payment verification (SPV).
    • Operan sin almacenar la cadena completa.
    • Descargan solo los encabezados de los bloques.
    • Conf铆an en otros nodos para validad bloques y transacciones.
    • Profundidad vs Altura.
    • Merkle Path.
  • Otros conceptos.
    • Descarga de bloque inicial (IBD): estado temporal donde cada vez que se a帽ade o actualiza un nodo, debe descargar todos los bloques y los datos para ponerse al tanto de las transacciones y los bloques nuevos que se a帽aden al Libro Mayor.
    • Bitcoin Core: implementaci贸n del protocolo Bitcoin a trav茅s de un proyecto open source iniciado por Satoshi Nakamoto.
    • Nodo como servicio: es un nodo que permite que otros componentes puedan comunicarse con 茅l para obtener informaci贸n relevante como servidores, billeteras, etc.
      .
      La informaci贸n en un nodo.
      .
      Full Node.
      | Estado | BD Bloques | Mempool |
      | 鈥 | 鈥 | 鈥 |
      .
  • Estado: lista de transacciones que no se han gastado.
  • Base de datos de bloques: informaci贸n actualizada que se tiene en el Libro Mayor.
  • Mempool: campo de todas las transacciones que son candidatas a a帽adir pr贸ximamente en un nuevo bloque.
    • Estructura que contiene los mejores candidatos (transacciones) para minar (agregar un nuevo bloque).
    • Pol铆ticas: por ejemplo, transacci贸n muy grande (m谩s de 100 kb) o muy peque帽a (menos de 82 bytes).
      .
      El estado actual es uno de los insumos para validar nuevas transacciones.
      .
      Con las transacciones que llegan en un nuevo bloque se actualiza el set de UTXO, borrando los que se gastaron y agregando los nuevos creados por las transacciones.
      .
      Network Discovery.
      .
  • Localizaci贸n geogr谩fica no es relevante.
  • Handshake version message.
  • DNS Seeds.
  • Sync.

Y c贸mo 鈥渂uscamos鈥 esos valores criptogr谩ficos? O en d贸nde? Entiendo que el reto era encontrarlo sin reconstruir la ra铆z que fue exactamente lo que hicimos aqu铆.

Nodos y Red

Por lo que entiendo este mempool es como la lista de espera de las transacciones que quieren ser enviadas y que tambi茅n rechaza cierto tipo de transacciones las cuales no cumplen o exceden los criterios necesarios para su correcto funcionamiento.

mm pero segun la respuesta del profe, tuvo que calcular todos los hashs hasta llegar al root. y depsues solo comparo el root que calculo con el original y si son iguales pues F existe鈥 nose fue rara esta explicacion.

Tal vez la pregunta seria: como saber si F es una transaccion valida y no fue alterada por un atacante

Bitcoin Network

Cada nodo corre el protocolo Bitcoin, tiene una copia de la Blockchain y se conecta a los otros nodos.

En esta web, pueden ver una representaci贸n de los nodos en un mapa
https://bitnodes.io/

Algo que me gustan mucho en el mundo de las criptomonedas es las analogias y ejemplos.
Como con ejemplos podemos ilustrar algo de una manera sencilla.
El ejemplo de la interacci贸n con el grupo social es sensacional, las distintas etapas por la que pasa un nodo para conocer, conectarse, actualizarse y intercambiar informacion.
Creo que otra manera me viera sido un poco dificil entenderlo.
Muy conforme por lo que va del curso !

La verdad no entend铆 nada de c贸mo calcular el Merkel root. Solo s茅 que son combinaciones de hashes. Pero la explicaci贸n fue muy floja.

Una mempool, es una memoria temporal intermedia en donde se almacenan de forma moment谩nea las transacciones de los usuarios.

Academyhttps://academy.bit2me.com

Me parece que la fuerza latina tiene un sentido de propiedad acedamica mucho mas interesante que los gringos. https://www.youtube.com/watch?v=Usxypgr8Y-w, me gusto este video que encontre sobre el root

RESUMEN CLASE 5:
ARQUITECTURA DE UNA
RED P2P

I.- LA ARQUITECTURA DE UNA RED P2P

  • Todos los participantes son pares entre s铆, todos son iguales.

  • Resiliente, descentralizada y abierta.

  • Bitcoin, Napster, BitTorrent.

II.- ANTECEDENTES Y PREDECESORES

III.- BITCOIN NETWORK

  • Conjunto de nodos corriendo el protocolo bitcoin.

  • Protocolos adicionales usan el P2P de bitcoin y extienden la red a otros nodos corriendo esos protocolos adicionales.

  • Extended Bitcoin Network.

IV.- TIPOS DE NODOS

  • Full node

  • Pruning nodes

  • Archive nodes

  • Mining node

  • Simplified payment verification (SPV)

V.- FULL NODE

  • Nodo que valida la cadena completa y sus transacciones.

  • Mantienen un estado actualizado, un conjunto de UTXO.

VI.- PRUNING NODE

  • Nodo que descarga y procesa bloques para generar una base de datos para validaci贸n.

  • Desecha bloques antiguos para ahorrar espacio.

VII.- ARCHIVE NODE

  • Contiene una copa de toda la historia de la cadena.

  • Valida y consulta transacciones y bloques en cualquier punto del hist贸rico.

  • Entregan el historial a nuevos nodos para que se conviertan en full nodes.

VII.- MINING NODE

  • Compiten por crear nuevos bloques.

  • Validan transacciones.

  • Fundamentales para la seguridad y el consenso de la red.

  • Mantienen un mempool de transacciones no confirmadas.

  • Mining pools.

VIII.- CLIENTES LIGEROS (SPV)

  • Operan sin almacenar la cadena completa.

  • Descargan solo los encabezados.

  • Conf铆an en otros nodos para validar bloques y transacciones.

  • Profundidad vs Altura.

  • Merkle Path.

IX.- OTROS CONCEPTOS

  • Descarga de bloque inicial (IBD)

  • Bitcoin Core

  • Nodo como servicio

X.- LA INFORMACION EN UN NODO

XI.- MEMPOOL

  • Estructura que contiene los mejores candidatos (transacciones) para minar (agregar un nuevo bloque)

  • Pol铆ticas Ejemplo:

    • Transaccion muy peque帽a < 82 bytes

    • Transaccion muy grande > 100 kbytes

XII.- FLUJO TRANSACCIONAL

XIII.- NETWORK DISCOVERY

  • Localizaci贸n geogr谩fica no es relevante.

  • Handshake version message.

  • DNS Seeds.

  • Sync.

El mempool rechaza las transacciones que pueden saturar el trafico en la red basado en pol铆ticas.

Siempre se me hizo sencillo entenderlo por el funcionamiento de Torrent.

Aunque no se menciona explicitamente, se puede ver por que es tan complejo escalar Bitcoin