¿Qué es Bitcoin Core y qué papel desempeña dentro de la red Bitcoin?

¿Qué es Bitcoin Core?
Bitcoin Core es un software de código abierto con el que usted se conecta por su cuenta a la red Bitcoin y controla por completo los bloques y las transacciones. Si ejecuta Bitcoin Core en su ordenador, funciona como un full node que verifica de forma independiente si las transacciones y los bloques cumplen las reglas de la red Bitcoin.
Dicho de forma sencilla, Bitcoin Core es un componente importante para las personas que desean verificar Bitcoin por sí mismas. El software recibe transacciones y bloques de otros nodos, los comprueba y puede volver a transmitir información válida. Así, muchos nodos independientes ayudan juntos a distribuir los datos de Bitcoin de forma descentralizada.
Bitcoin Core es el cliente original de Bitcoin, es decir, el software con el que usted se conecta a la red Bitcoin y puede procesar y verificar transacciones y bloques. El código fuente está disponible libremente bajo la licencia MIT, lo que permite a los desarrolladores revisar, usar y contribuir al software.
El software consta, en términos generales, de dos partes que pueden considerarse por separado:
- El nodo: descarga y valida datos en la blockchain de Bitcoin.
- La cartera de criptomonedas integrada: permite gestionar direcciones y enviar bitcoin.
Puede usar Bitcoin Core como programa con una ventana gráfica, bitcoin-qt, o sin ventana como proceso en segundo plano, bitcoind. Esta segunda opción resulta especialmente útil para quienes desean gestionar su nodo mediante la línea de comandos u otro software.
Es importante saberlo: Bitcoin Core no es Bitcoin en sí ni tampoco una organización central que controle Bitcoin. Es una implementación del protocolo Bitcoin. Los nodos alcanzan consenso porque aplican de forma independiente las mismas reglas de consenso, es decir, las reglas fijas con las que determinan qué bloques son válidos.
Puntos clave
- Bitcoin Core es software de código abierto para la red Bitcoin.
- Una instalación de Bitcoin Core en funcionamiento suele ser un full node.
- Un full node verifica por sí mismo bloques y transacciones.
- Bitcoin Core puede recibir datos válidos y transmitirlos a otros nodos.
- El software incluye opcionalmente una interfaz gráfica y una cartera de criptomonedas integrada.
¿Cómo funciona Bitcoin Core?
Bitcoin Core funciona conectándose con otros nodos de Bitcoin e intercambiando con ellos transacciones y bloques. Antes de poder evaluar los datos recientes, el software debe descargar y validar primero todo el historial desde el bloque génesis, el primer bloque de Bitcoin, y validarlo.
Ese primer gran proceso de puesta al día se llama initial block download. Bitcoin Core construye paso a paso su propia visión de la cadena válida de Bitcoin, hasta el bloque más reciente que el nodo acepta como válido.
Después, el nodo sigue escuchando nuevas transacciones y bloques. Cuando entra algo, Bitcoin Core lo comprueba primero. Solo si los datos cumplen las reglas, el nodo puede normalmente transmitirlos a otros peers. Dicho de forma sencilla, los peers son otros ordenadores con los que su nodo está conectado.
Bitcoin Core solo acepta bloques como válidos cuando superan sus propias comprobaciones. A continuación, el nodo determina, según las reglas de consenso, qué cadena válida sigue. Si muchos nodos siguen los mismos bloques válidos según las mismas reglas, todos permanecen alineados. Así surge el consenso sin una parte central que decida qué es correcto.
No obstante, existe una diferencia entre validez y política local. Un nodo puede, por ejemplo, no querer retransmitir una transacción porque no encaja en su propia política de mempool. El mempool es la sala de espera temporal para transacciones aún no confirmadas. Por ello, una transacción de este tipo no tiene por qué ser automáticamente inválida según las reglas de consenso.
¿Cómo valida Bitcoin Core las transacciones?
Bitcoin Core valida una transacción comprobando si el bitcoin que usted desea gastar realmente existe, si no se ha gastado antes y si usted puede utilizarlo. Bitcoin no funciona con un saldo simple que se actualiza en algún lugar. Un pago utiliza importes recibidos previamente, que se denominan outputs.
Un output que aún no se ha gastado se llama UTXO, abreviatura de unspent transaction output. Puede ver un UTXO como una parte individual de bitcoin que todavía está disponible para gastar.
En un nuevo pago, Bitcoin Core comprueba, entre otros, estos puntos:
- Los UTXO utilizados existen realmente.
- Esos UTXO no se han gastado antes.
- Los datos de desbloqueo cumplen las condiciones del output anterior.
- El valor de todos los outputs no es superior al valor de todos los inputs.
En muchas transacciones habituales, una firma criptográfica demuestra que el remitente posee la private key correcta. A continuación, Bitcoin Script comprueba si esa firma y la correspondiente clave pública son correctas. Bitcoin Script es el lenguaje de scripting limitado que ejecuta las condiciones de las transacciones de Bitcoin.
Ejemplo: Suponga que anteriormente recibió 0,5 BTC y que aún no ha utilizado ese output. Entonces esos 0,5 BTC pueden servir como input para una nueva transacción. Si intenta gastar ese mismo output otra vez más tarde, Bitcoin Core lo rechazará como un “double-spending”.
En una transacción normal tampoco puede surgir valor de la nada. Si los inputs suman 0,5 BTC y usted envía 0,49 BTC a otra dirección, la diferencia de 0,01 BTC puede ser la comisión de la transacción. La transacción coinbase especial de un bloque funciona de otra manera; está destinada a la subvención del bloque y a las comisiones.
¿Cómo comprueba Bitcoin Core los bloques?
Bitcoin Core comprueba un bloque revisando tanto los datos del encabezado del bloque como todas las transacciones incluidas en él. Solo los bloques que cumplen las reglas de consenso se conservan por el nodo como parte de la cadena válida de Bitcoin.
Un bloque consta, en términos generales, de transacciones y de un encabezado de bloque. En ese encabezado figuran, entre otras cosas, una referencia al encabezado del bloque anterior y una raíz de Merkle. Esa raíz de Merkle es un resumen criptográfico de todas las transacciones del bloque.
La referencia al bloque anterior dificulta la modificación de la historia. Si cambia una transacción antigua, cambia el resumen de ese bloque. Como consecuencia, también tendría que modificar de nuevo todos los bloques posteriores.
Bitcoin Core también comprueba cada transacción dentro del bloque. Así, el nodo vuelve a verificar si un output ya se ha gastado anteriormente. Además, cada bloque contiene una transacción coinbase. Con ella se asignan al minero la subvención del bloque y las comisiones de transacción. El bitcoin procedente de una transacción coinbase solo puede gastarse después de que la transacción haya recibido 100 confirmaciones.
A veces existen durante un breve tiempo dos versiones válidas de la cadena de Bitcoin una junto a la otra. En ese caso, el modelo de full node sigue la versión con la mayor cantidad acumulada de proof-of-work. Esto no es algo que decidan para todos los desarrolladores de Bitcoin Core o los mineros: cada full node realiza sus propias comprobaciones y elige según las mismas reglas.
¿Quién desarrolló Bitcoin Core?
El primer software de Bitcoin fue desarrollado y publicado bajo el seudónimo Satoshi Nakamoto. Satoshi es, por tanto, un seudónimo; nadie sabe quién es este misterioso desarrollador.
Bitcoin Core se desarrolla ahora como un proyecto de código abierto. Las personas pueden contribuir con propuestas de cambios, pruebas y revisiones. El nuevo código no se añade sin más: otros colaboradores evalúan el cambio y se requieren pruebas.
No existe un grupo fijo y privilegiado que simplemente controle Bitcoin Core. Sí existen repository maintainers. Ellos tienen tareas prácticas, como integrar los cambios propuestos, coordinar las versiones y moderar los debates. Eso no los convierte en propietarios centrales de Bitcoin.
Para el uso normal, usted elige una versión estable. La versión principal en la que colaboran los desarrolladores también se prueba, pero no es automáticamente una versión estable para el uso diario.
¿Cuál es la diferencia entre Bitcoin Core y Bitcoin?
Bitcoin Core es software, mientras que Bitcoin puede referirse a la red, al protocolo o a BTC como criptomoneda. Esa diferencia es importante, porque a menudo se usan ambos nombres indistintamente.
Bitcoin es, por ejemplo, la red peer-to-peer en la que los participantes intercambian transacciones. BTC es la unidad de bitcoin con la que usted transfiere valor. Bitcoin Core es, a su vez, un programa que instala para participar en esa red conforme a sus reglas.
Puede compararlo con un navegador y Internet. Un navegador le da acceso a Internet, pero no es Internet en sí. Del mismo modo, Bitcoin Core le permite participar en Bitcoin, sin que el software equivalga a Bitcoin en su conjunto.
Tampoco un cambio en Bitcoin Core modifica automáticamente las reglas de Bitcoin para todos. Para que cambien las reglas de consenso, los demás participantes también deben optar por utilizar reglas o software compatibles.
¿Qué es la cartera de Bitcoin Core?
La cartera de Bitcoin Core es la cartera de criptomonedas integrada de Bitcoin Core. Con ella puede recibir, gestionar y enviar bitcoin. La cartera funciona junto con Bitcoin Core, pero tiene una función distinta a la del nodo en sí. El nodo verifica transacciones y bloques, mientras que la cartera se utiliza principalmente para gestionar su bitcoin y las claves asociadas.
La cartera de Bitcoin Core es una cartera de autocustodia. Esto significa que usted es responsable de sus private keys, de sus copias de seguridad y de la seguridad de su dispositivo. Además, puede proteger la cartera con una passphrase (frase de paso).
Por ello, es importante realizar copias de seguridad seguras de su cartera con regularidad y no compartir nunca sus private keys, su copia de seguridad ni su frase de paso con otras personas. Quien obtenga acceso a estos datos también podría obtener acceso a su bitcoin.
¿Cómo puede utilizar Bitcoin Core?
Puede utilizar Bitcoin Core como programa de escritorio, como nodo que funciona silenciosamente en segundo plano o mediante herramientas de línea de comandos y RPC. RPC es una forma en la que otros programas pueden enviar órdenes a su nodo.
Para muchas personas, la versión gráfica es la más sencilla. Con ella puede seguir la sincronización, gestionar una cartera y enviar transacciones. Los usuarios más técnicos suelen ejecutar bitcoind sin interfaz gráfica, por ejemplo en su propio ordenador que actúa principalmente como nodo.
Su nodo puede funcionar solo para usted, pero también puede permitir conexiones entrantes. Para su propia cartera y validación, las conexiones salientes son suficientes. Las conexiones entrantes, sin embargo, ayudan a otros nodos y clientes ligeros, lo que mantiene mejor disponible la red peer-to-peer.
¿Quiere practicar primero sin usar bitcoin real? Entonces puede utilizar una red de pruebas independiente como signet. En Bitcoin mainnet, los errores en una transacción pueden provocar una pérdida irreversible.
Si utiliza RPC, tenga especial cuidado con el acceso externo. Unas credenciales RPC válidas pueden dar a alguien mucho control sobre su nodo de Bitcoin Core y, según su configuración, sobre una cartera cargada. Por ello, no exponga el acceso RPC a terceros sin necesidad.
¿Cómo se instala Bitcoin Core?
Puede descargar Bitcoin Core a través del sitio web oficial de Bitcoin Core. Allí, elija la versión que corresponda a su sistema operativo, como Windows, macOS o Linux.
Después de la descarga, instale el software y abra Bitcoin Core. La primera vez que lo inicie, podrá elegir dónde se almacenarán los datos de la blockchain. Tenga en cuenta que Bitcoin Core puede requerir mucho espacio de almacenamiento, porque el software descarga y verifica una copia de la blockchain de Bitcoin.
A continuación, Bitcoin Core comienza a sincronizarse con la red Bitcoin. La primera vez esto puede llevar algún tiempo. Una vez completada la sincronización, su nodo puede verificar de forma independiente transacciones y bloques.
Si desea instalar Bitcoin Core usted mismo y busca los pasos técnicos exactos, consulte las guías oficiales de instalación de Bitcoin Core para su sistema operativo.
¿Cómo se sincroniza Bitcoin Core con la blockchain?
Bitcoin Core se sincroniza descargando bloques desde el principio y validándolos uno por uno hasta llegar al bloque válido más reciente. Este proceso se llama initial block download y ocurre en el primer inicio, o cuando su nodo va muy retrasado.
Durante este proceso, su ordenador utiliza capacidad de red, espacio de almacenamiento y potencia de cálculo. La duración varía desde unas horas hasta varios días o más, según su hardware y su conexión a Internet.
Su cartera puede parecer todavía incompleta durante la sincronización. Las nuevas transacciones o un saldo solo se muestran por completo cuando su nodo se ha actualizado hasta el bloque en el que se encuentra esa actividad.
Si desea usar menos almacenamiento, puede activar pruning. Con pruning, Bitcoin Core elimina datos antiguos de bloques en bruto y datos undo después de que el nodo ya los haya validado por sí mismo. El nodo sigue siendo un full node, porque continúa verificando los bloques de forma independiente.
¿Cuáles son las ventajas y limitaciones de Bitcoin Core?
La mayor ventaja de Bitcoin Core es que usted puede verificar Bitcoin por sí mismo. No necesita confiar por completo en un proveedor externo de cartera, un servidor o una empresa de criptomonedas para la validez de los bloques y las transacciones.
Un full node propio también ayuda a la red. Su nodo recibe datos válidos, los comprueba y puede transmitirlos. Si muy pocas personas hacen esto, los clientes ligeros dependen más rápidamente de servicios centralizados.
Bitcoin Core también puede ser mejor para su privacidad que una cartera que deba consultar un nodo externo para cada saldo y cada transacción. Eso no hace que Bitcoin sea automáticamente anónimo: las transacciones siguen estando en una blockchain pública.
La desventaja es que Bitcoin Core exige más a su ordenador y a usted como usuario que una cartera de criptomonedas sencilla. Por ejemplo, necesita mucho espacio de almacenamiento, la primera sincronización puede tardar bastante y usted es responsable de las actualizaciones, las copias de seguridad y la seguridad de su dispositivo.
Puede limitar el uso de almacenamiento e Internet, pero eso puede ir en detrimento de ciertas funciones. Además, la autocustodia significa que usted es responsable de su bitcoin. Un nodo propio, por ejemplo, no le protege contra malware, la pérdida de private keys o una configuración incorrecta.
Conclusión
Bitcoin Core es una forma de participar directamente en Bitcoin en lugar de confiar solo en la infraestructura de otros. El software descarga y verifica bloques y transacciones según las reglas de Bitcoin, y puede transmitir datos válidos a otros nodos.
Eso hace que Bitcoin Core resulte interesante si desea más independencia, control y, posiblemente, más privacidad. A cambio, necesita tiempo, espacio de almacenamiento y atención técnica. Si también utiliza la cartera integrada, la seguridad de su bitcoin recae por completo en usted. Para quienes desean asumir esa responsabilidad, un full node propio es una forma práctica de verificar Bitcoin por sí mismos.