Curso de Bitcoin Core y Script

Curso de Bitcoin Core y Script

Juan Sebastián Marulanda

Juan Sebastián Marulanda

¿Qué es Bitcoin Core?

2/19
Recursos

Bitcoin, como todo software OpenSource, tiene su código fuente, características y procesos definidos para que su comunidad lo haga crecer y evolucionar. Posee varias implementaciones y una de las más utilizadas es denominada Bitcoin Core.

¿Qué es Bitcoin Core?

Bitcoin es un software OpenSource que al día de hoy posee cerca de 900 contribuyentes de todas partes del mundo que aportan su conocimiento en el proyecto y en las tecnologías que utiliza, como C/C++ y Python, para que el mismo continúe creciendo a partir de las propuestas.

Uno de los clientes de Bitcoin más populares es Bitcoin Core. No deja de ser un repositorio en GitHub que deriva del código fuente original que Satoshi Nakamoto entregó a mediados del 2011 para que la comunidad de desarrolladores continuaran con el proyecto.

El código fuente de Bitcoin

Que el código fuente de Bitcoin se encuentre en un lugar centralizado como lo es GitHub puede sonar extraño. La realidad es que Bitcoin, como cualquier software, necesita, no solo de un control de versiones tan poderoso como Git, también de transparencia, trazabilidad y comunicación entre los miembros que la plataforma ofrece.

Ningún software en el mundo podría existir si no hubiese un grupo de líderes en el proyecto. Bitcoin tiene los suyos, ingenieros expertos en su funcionamiento que llevan años trabajando en el mismo y que guían a los demás para desarrollar sobre el código fuente de Bitcoin a partir de un BIP.

Qué es BIP o propuestas de mejora de Bitcoin

Los BIP, o Bitcoin Improvement Proposal, son documentos formales y estructurados para presentar mejoras al core de Bitcoin, ya sea mejoras técnicas, de organización, informativos o de otro tipo.

Las propuestas son analizadas por la comunidad por detrás de Bitcoin para su refinamiento, aceptación o rechazo. Cualquier persona en el mundo puede elaborar un BIP y el mismo será evaluado por la comunidad.

Bitcoin no es la única tecnología que implementa este tipo de procesos para la evaluación de propuestas y mejoras de un software OpenSource. Tal vez conozcas los EIP (Ethereum Improvement Proposal) que, si bien puede diferir en el proceso, tiene el mismo objetivo. Si salimos del mundo Blockchain, podemos encontrar el TC39 para las propuestas de mejora de Javascript.

Cómo es el flujo BIP

Los BIP tiene un flujo predefinido por el cual debe atravesar para ser implementado. Cada etapa define el estado del BIP.

Flujo de un BIP
  • Draft: estado ““borrador”” donde aún se continúa refinando la propuesta y se encuentra incompleto.
  • Deferred: el BIP se encuentra en pausa por algún motivo.
  • Accepted: el BIP fue aceptado y puede comenzar el debate de la comunidad sobre el mismo.
  • Rejected: el BIP fue rechazado por su comunidad por incongruencias, posibles problemas que pueda presentar al core de Bitcoin u otro motivo.
  • Withdrawn: estado ““retirado””. Los autores de la propuesta decidieron no continuar con la misma.
  • Final: en este estado, el BIP fue revisado y aprobado por la comunidad y se logró llegar a un consenso sobre la propuesta.
  • Replaced: el BIP fue reemplazado por otro BIP con una mejor propuesta o superadora.
  • Active: el BIP se encuentra activo, fue desarrollado el código fuente y el mismo se encuentra en producción o se implementó con éxito la mejora propuesta.

Los BIP tienen un proceso riguroso de aceptación. De haber controversias y problemas en la comunidad sobre la implementación o no de un BIP, el mismo puede generar un fork o bifurcación del proyecto.

Bifurcaciones de un proyecto

Seguro conoces la funcionalidad de GitHub de crear forks de un proyecto. Las bifurcaciones de un Blockchain va un paso más allá.

Cuando una comunidad está dividida a partir de una propuesta o un cambio grande, se crean bifurcaciones del mismo. Lo que genera un nuevo proyecto, con su propia economía, al tratarse de una nueva Blockchain.

Bifurcaciones

Tipos de bifurcaciones

Podemos diferenciar dos tipos de bifurcaciones en una Blockchain:

Hard forks:

Forks totalmente radicales para el protocolo de una Blockchain donde se cambian por completo las reglas, el software, la forma de minado o toda la red. Este tipo de bifurcaciones suelen dividir a la comunidad de un proyecto entre los que están de acuerdo y los que no.

Soft forks:

Cambios menores en una Blockchain que permiten seguir operando y son compatibles con la red. Suelen ser para mejorar el rendimiento o introducir una mejora en el código fuente.

Ejemplos Hard Fork
Un ejemplo Hard Fork es Bitcoin Cash surgido en el 2017 como propuesta para mejorar la velocidad de esta Blockchain. Otro ejemplo podría ser Ethereum Classic que se trata de la versión original de la Blockchain de Ethereum antes de ciertas actualizaciones.

Utilizaciones del Bitcoin Core

El Bitcoin Core es todo un sistema con sus partes. Dentro del mismo encontramos diversos usos:

  • Permite ser parte de una red P2P de nodos que se comunican entre ellos para validar transacciones, crear bloques y asegurar el consenso de la red.
  • Implementación de wallets para realizar transferencias y guardar valor en la misma.
  • Ofrece una interfaz programática a través de RPC que puede utilizarse vía HTTP o un CLI.
  • Bitcoin Core es la influencia número uno para el desarrollo de otras Blockchains.

Conclusión

El Bitcoin Core es la base de todo lo que hoy conocemos con el nombre de Blockchain. Aquella criptomoneda que Satoshi Nakamoto lanzó con el nombre de bitcoin en el 2009 y que al día de hoy ha evolucionado y se ha fortalecido hasta convertirse en este gran sistema económico.

Sin duda es solo el inicio y Bitcoin aún tiene mucho por crecer y por darle al mundo Blockchain como principal referente en este ecosistema de tecnologías Web3.


Contribución creada por: Kevin Fiorentino (Platzi Contributor).

Aportes 12

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

- Que es Bitcoin Core?

  • Repositorio que esta alojado en GitHub que contiene la implementación del protocolo de Bitcoin.
  • Open Source (Licencia MTI)
  • Software más usado por la comunidad.
  • Referencia para otras implementaciones (líder).
  • Bitcoin Core es el libro de las reglas de Bitcoin.

- BIP

  • Propuestas para cambios en Bitcoin.
  • Se publica en serie.
  • Cada BIP tiene un líder para evangelizar y coordinar.
  • BIPs existen para informar y orientar procesos en la comunidad.

- Centralización Core Devs?

  • Lideran el desfile.
  • Cualquier persona puede usar el software y agregar nuevas propuestas.
  • Sí un cambio no es bien recibido por la comunidad.
    • Los usuarios pueden hacer un fork sobre las reglas.
    • Empoderamiento.

- Usos de Bitcoin Core

  • Nodo validador en la red P2P.
  • Implementación de referencia de una billetera.
  • Interfaz programatica (RCP via HTTP o Cli).

“Tecnologías desde el año 1930 aproximadamente,
dan paso a que Bitcoin pueda existir.”

Wow.

  • ¿Qué es Bitcoin Core?
    Un repositorio alojado en GitHub que contienen la implementación del protocolo BTC.
    https://bitcoin.org/en/bitcoin-core/

  • ¿Qué es BIP?
    Bitcoin Improvement Proposal: propuesta para mejorar Bitcoin. Existen actualmente 350 BIP. Estas propuestas se componen de dos partes:

  1. una parte racional que contiene un preámbulo y motivación de por qué se propone el cambio.

  2. una parte de implementación que contiene el codigo y la lógica bajo esa implementación.

También existen BIP informativas que solo presentan información y BIP de procesos relacionados a la toma de decisiones en la comunidad.

6ta semana con la escuela! vamos que tenemos que acabarla en 4 semanas más!

Aquí está el ejemplo más famoso de un hard fork: En 2016, actores malintencionados explotaron un protocolo en Ethereum. Ethereum decidió realizar un "hard-fork" para restaurar los fondos robados. Ethereum es la bifurcación que conocemos y apreciamos, mientras que la original se llama Ethereum Classic, que realmente nadie usa.

Los BIP son conceptualmente parecidos a los EIP de Ethereum. Pero también me recuerda al TC39 de Javascript. Cada uno debe tener sus propios flujos de propuestas y mejoras de cada tecnología, pero el objetivo es el mismo, el desarrollo OpenSource.

Uno de los ejemplos más conocidos de un un Hard Fork de Bitcoin , es el cual dio origen al Bitcoin Cash

Bitcoin Core es el software mas utilizado por la comunidad, tiene sus propias reglas y es de código abierto
BIP: son propuestas para mejorar btc

Espero sus comentarios para saber si entendí bien los que es bitcoin core

Tecnologías que datan desde 1930 y dan paso a lo que hoy es bitcoin.

Aproximadamente hay 350 BIP (propuestas formales de cambios para la mejora)
racional e implemetancion.
BIP para informar
BIP como van los procesos

Muy mal audio. Segundo curso que veo con mal ajuste en la configuración de la compuerta de ruido. Se corta al inicio de cada palabra y es estresante.

RESUMEN CLASE 2:
QUE ES BITCOIN CORE ?

Es un repositorio de codigo que esta escrito en C++ con sus pruebas escritas en Python.

I.- ¿ QUE ES BITCOIN CORE ?

  • Implementación de referencia.

  • Open source (Licencia MIT).

  • Software más usado por la comunidad.

  • Referencia para otras implementaciones (líder).

  • Bitcoin core es el libro de reglas de Bitcoin.

II.- BIP (Bitcoin Improvement Proposals)

  • Propuestas para cambios en Bitcoin.

  • Se publica en serie.

  • Cada BIP tiene un líder para evangelizar y coordinar.

  • BIPs existentes para informar y orientar procesos en la comunidad.

III.- FLUJO BIP (Bitcoin Improvement Proposals)

IV.- CONTRIBUIDORES Y DESARROLLADORES CORE

  • Wladimir J. van der Laan

  • Marko Falke

  • Michael Ford

  • Jonas Schnelli

  • John Newberry

V.- ¿ CENTRALIZACION CORE DEVS ?

  • Lideran el desfile.

  • Cualquier persona puede usar el software y agregar nuevas propuestas.

  • Si un cambio no es bien recibido por la comunidad:

    • Los usuarios pueden hacer un fork sobre las reglas.

    • Empoderamiento.

VI.- USOS BITCOIN CORE

  • Nodo validador en la red P2P.

  • Implementación de referencia de una billetera.

  • Interfaz Programática (RCP via HTTP o Cli).