El nacimiento de bitcoin y blockchain implica dos problemas de larga data en la moneda digital: el problema del doble gasto y el problema de los generales bizantinos
En comparación con la moneda física en la vida cotidiana, la mayor dificultad para desarrollar el dinero electrónico es cómo superar el "problema de la confianza". La razón por la que las primeras conchas y metales preciosos pueden usarse como equivalentes generales es que tienen cierta escasez, y los últimos billetes físicos dependen de la credibilidad del estado para resolver el problema de la confianza.
Estas monedas físicas tenían valor y pudieron completar la transferencia de valor al instante. En la era digital, cualquier contenido es esencialmente una combinación de códigos 0 y 1, y el dinero digital se puede copiar en dos copias y entregar a dos destinatarios diferentes al mismo tiempo, que es el llamado "problema del doble gasto". Internet en sí no tiene la capacidad de representar valor, por lo que la gente antes tenía que usar un sistema de cuenta centralizado con un servidor centralizado, como un banco, para usar tarjetas de crédito y otros tipos de dinero electrónico.
Pero si hay un tercero verdaderamente confiable es una pregunta. Existe el riesgo de un punto único de fallas, como ataques a servidores centralizados, e incluso los gobiernos pueden cobrar un "señoreaje" al emitir dinero en exceso. La solución propuesta por Bitcoin es abandonar los intermediarios de terceros y construir un libro mayor distribuido donde todos estén en el centro del libro mayor.
Considere una aldea en la que solo hay un “jefe” a cargo de llevar el libro mayor, y todos los gastos de los miembros de la aldea se registran con el jefe de la aldea, que es el centro del sistema de contabilidad. El sistema puede funcionar bien si el jefe de la aldea es digno de confianza; sin embargo, si el jefe, que es el centro del sistema, es un ladrón, puede ser difícil que otros lo detecten.
Considere una aldea "descentralizada" en la que cada miembro tiene un libro de contabilidad idéntico. Cuando un miembro quiere hacer un cambio en el libro mayor, debe notificar a los otros miembros a través de "transmisión" para que puedan confirmar las entradas y copiarlas en sus propios libros. El proceso de transacción no está completo hasta que todos los miembros hayan confirmado y actualizado sus libros de contabilidad. Básicamente, así es como funciona la red Bitcoin.
Bitcoin inventó un nuevo tipo de sistema digital para registrar la transacción de activos conocido como libro mayor distribuido. A diferencia del registro centralizado, donde los datos se almacenan en servidores centralizados, la cadena de bloques es una base de datos descentralizada, en la que cada nodo de la red actúa como titular y mantenedor de la base de datos.
Bitcoin fue la primera aplicación a gran escala de blockchain, y blockchain es la base subyacente de Bitcoin.
El sistema Bitcoin se puede dividir en tres capas: la capa de datos, la capa de protocolo y la capa de aplicación. Comencemos con el "libro mayor" (capa de datos) que posee cada miembro del sistema Bitcoin.
Una cadena de bloques es esencialmente un libro mayor distribuido mantenido por todos los nodos de la red, y cada nodo almacena todos los datos de la cadena de bloques. La "cadena" de bloques almacenada por un nodo es una cadena ordenada de bloques conectados entre sí, y el bloque en sí es una estructura inalterable de datos mantenida por el algoritmo Cryptographic Hash.
La función hash (SHA-256 y RipeMD160) es un algoritmo criptográfico crítico en Bitcoin que puede convertir un valor de entrada de longitud arbitraria en una salida de valor de longitud fija con características aleatorias y sin colisiones. Y es difícil adivinar el valor de entrada para una función hash de su salida. Un pequeño cambio en la entrada puede resultar en una salida drásticamente diferente. La salida de una función hash se puede derivar fácilmente de la entrada, pero inferir la entrada de la salida requiere una enumeración de fuerza bruta, lo que requiere una cantidad significativa de tiempo y poder de cómputo. El uso repetido de funciones hash simplifica y define la estructura de datos de Bitcoin.
Un bloque de Bitcoin consta de dos partes: el cuerpo del bloque y el encabezado del bloque. El cuerpo del bloque contiene toda la información de la transacción en ese bloque, que se procesa varias veces para formar una estructura conocida como árbol de Merkle, que constituye el cuerpo del bloque. El primer mensaje de transacción en cada uno de estos bloques también se conoce como transacción de base de monedas y es la transacción que genera nuevos bitcoins y los recompensa al minero, mientras que todas las demás transacciones son transferencias entre usuarios.
Estas transacciones se someten a múltiples operaciones de hashing para finalmente llegar a un valor llamado Merkle Hash, que es la suma de todos los datos de la transacción. Merkle Hash, junto con Nunce, marcas de tiempo, hash de bloque principal y otros datos, constituyen el encabezado del bloque, y al calcular el valor hash del encabezado del bloque se puede obtener el Block Hash de este bloque. Dado que el encabezado del bloque de cada bloque contiene el valor hash del bloque principal, todos los bloques están conectados en una cadena. Los bloques están entrelazados y cualquier cambio en los datos del bloque dará como resultado un cambio en el hash del bloque, lo que romperá la cadena.
Después de presentar el "libro mayor" (capa de datos) que tiene cada nodo, pasemos a la capa de consenso de Bitcoin, que es responsable de la seguridad de la red.
Antes de profundizar en el consenso distribuido, es fundamental comprender el problema de los "generales bizantinos".
El problema de los generales bizantinos se remonta a la época medieval, cuando el ejército bizantino dependía de mensajeros para transmitir información debido al vasto territorio de Bizancio. Si un traidor tergiversó deliberadamente la información operativa de los superiores, conduciría a planes operativos inconsistentes, lo que daría como resultado el "Problema de los generales bizantinos".
La red Bitcoin consta de una serie de nodos descentralizados, cada uno de los cuales es un "cuerpo" independiente, autónomo e igualitario. Cada nodo de la red tiene su propia copia única de los datos de la cadena de bloques y todos quieren ser los primeros en empaquetar las transacciones y ganar las recompensas de bitcoin. Entonces, ¿qué nodo tendrá éxito en obtener los derechos del libro mayor y convencer a toda la red para llegar a un consenso para modificar los datos de la cadena de bloques?
La respuesta de Bitcoin es el mecanismo de consenso de Prueba de trabajo (PoW), comúnmente conocido como "minería", que es un proceso de computación digital realizado por nodos, donde el primer nodo en encontrar la "respuesta" obtiene los derechos de registro. Específicamente, el nodo debe seguir intentando cambiar el Nunce del encabezado del bloque, calcular el hash del bloque y finalmente obtener un hash del bloque donde los primeros bits son cero.
En este punto, el valor de Nunce es la respuesta a la pregunta. Después de encontrar la respuesta, el nodo la transmitirá a otros nodos de la red y, después de verificar la respuesta, los otros nodos tomarán rápidamente el bloque como el nuevo nodo principal y continuarán con la siguiente ronda de operaciones mineras.
Eso presenta el problema de que los datos tardan en transmitirse entre los nodos, y es muy posible que dos o más nodos descubran la respuesta al acertijo al mismo tiempo antes de que la comunidad en su conjunto llegue a un acuerdo. Sin embargo, debido a que dos nodos empaquetan diferentes transacciones de base de monedas, esto da como resultado dos bloques válidos distintos. Debido a las diferentes secuencias de señalización, los nodos mineros operarán en ambas cadenas de bifurcaciones. En este punto, la red de Bitcoin seguirá la "regla de la cadena más larga", tratando la cadena de bifurcación con la mayor cantidad de bloques como la única cadena de bloques reconocida. Esta competencia de bifurcación generalmente se completa en menos de 6 bloques, y todas las transacciones en la otra cadena abandonada se anulan.
Los nodos de Bitcoin pueden sincronizar las actualizaciones del libro mayor distribuido mediante la minería y la regla de la cadena más larga para llegar a un consenso. Este libro mayor distribuido basado en el consenso también hace posibles las monedas digitales peer-to-peer como Bitcoin.
Las monedas electrónicas tradicionales utilizan un sistema de cuentas centralizado en el que se crean cuentas para cada usuario en un servidor central y los datos de saldo se almacenan para todas las cuentas. Después de cada transacción, el saldo de la cuenta aumenta o disminuye en orden cronológico. Bitcoin, por otro lado, utiliza un modelo UXTO, que representa el resultado de las transacciones no gastadas.
La criptografía asimétrica se utiliza para asegurar las transacciones de bitcoin. Cada usuario de Bitcoin debe tener un par de claves públicas y privadas, similares a una cuenta y una contraseña. El usuario debe firmar los datos de la transacción con la clave privada y publicar los datos de la transacción, la firma y la clave pública juntos. Sin embargo, en cada transacción, el usuario no transfiere el saldo de la cuenta directamente sino que utiliza el "monto no gastado" de las múltiples transacciones anteriores, es decir UTXO.
En el sistema Bitcoin no existe el concepto de cuenta o saldo de cuenta, solo la UTXO de todas las transacciones en el registro histórico. Las billeteras de Bitcoin pueden escanear los datos de todas las transacciones anteriores y calcular el UTXO total de una dirección específica (es decir, clave pública) para determinar el saldo de la cuenta. Además, cuando se inicia una transacción, las billeteras de bitcoin pueden hacer coincidir automáticamente el UTXO con el saldo correcto para completar la transferencia.
El nacimiento de bitcoin y blockchain implica dos problemas de larga data en la moneda digital: el problema del doble gasto y el problema de los generales bizantinos
En comparación con la moneda física en la vida cotidiana, la mayor dificultad para desarrollar el dinero electrónico es cómo superar el "problema de la confianza". La razón por la que las primeras conchas y metales preciosos pueden usarse como equivalentes generales es que tienen cierta escasez, y los últimos billetes físicos dependen de la credibilidad del estado para resolver el problema de la confianza.
Estas monedas físicas tenían valor y pudieron completar la transferencia de valor al instante. En la era digital, cualquier contenido es esencialmente una combinación de códigos 0 y 1, y el dinero digital se puede copiar en dos copias y entregar a dos destinatarios diferentes al mismo tiempo, que es el llamado "problema del doble gasto". Internet en sí no tiene la capacidad de representar valor, por lo que la gente antes tenía que usar un sistema de cuenta centralizado con un servidor centralizado, como un banco, para usar tarjetas de crédito y otros tipos de dinero electrónico.
Pero si hay un tercero verdaderamente confiable es una pregunta. Existe el riesgo de un punto único de fallas, como ataques a servidores centralizados, e incluso los gobiernos pueden cobrar un "señoreaje" al emitir dinero en exceso. La solución propuesta por Bitcoin es abandonar los intermediarios de terceros y construir un libro mayor distribuido donde todos estén en el centro del libro mayor.
Considere una aldea en la que solo hay un “jefe” a cargo de llevar el libro mayor, y todos los gastos de los miembros de la aldea se registran con el jefe de la aldea, que es el centro del sistema de contabilidad. El sistema puede funcionar bien si el jefe de la aldea es digno de confianza; sin embargo, si el jefe, que es el centro del sistema, es un ladrón, puede ser difícil que otros lo detecten.
Considere una aldea "descentralizada" en la que cada miembro tiene un libro de contabilidad idéntico. Cuando un miembro quiere hacer un cambio en el libro mayor, debe notificar a los otros miembros a través de "transmisión" para que puedan confirmar las entradas y copiarlas en sus propios libros. El proceso de transacción no está completo hasta que todos los miembros hayan confirmado y actualizado sus libros de contabilidad. Básicamente, así es como funciona la red Bitcoin.
Bitcoin inventó un nuevo tipo de sistema digital para registrar la transacción de activos conocido como libro mayor distribuido. A diferencia del registro centralizado, donde los datos se almacenan en servidores centralizados, la cadena de bloques es una base de datos descentralizada, en la que cada nodo de la red actúa como titular y mantenedor de la base de datos.
Bitcoin fue la primera aplicación a gran escala de blockchain, y blockchain es la base subyacente de Bitcoin.
El sistema Bitcoin se puede dividir en tres capas: la capa de datos, la capa de protocolo y la capa de aplicación. Comencemos con el "libro mayor" (capa de datos) que posee cada miembro del sistema Bitcoin.
Una cadena de bloques es esencialmente un libro mayor distribuido mantenido por todos los nodos de la red, y cada nodo almacena todos los datos de la cadena de bloques. La "cadena" de bloques almacenada por un nodo es una cadena ordenada de bloques conectados entre sí, y el bloque en sí es una estructura inalterable de datos mantenida por el algoritmo Cryptographic Hash.
La función hash (SHA-256 y RipeMD160) es un algoritmo criptográfico crítico en Bitcoin que puede convertir un valor de entrada de longitud arbitraria en una salida de valor de longitud fija con características aleatorias y sin colisiones. Y es difícil adivinar el valor de entrada para una función hash de su salida. Un pequeño cambio en la entrada puede resultar en una salida drásticamente diferente. La salida de una función hash se puede derivar fácilmente de la entrada, pero inferir la entrada de la salida requiere una enumeración de fuerza bruta, lo que requiere una cantidad significativa de tiempo y poder de cómputo. El uso repetido de funciones hash simplifica y define la estructura de datos de Bitcoin.
Un bloque de Bitcoin consta de dos partes: el cuerpo del bloque y el encabezado del bloque. El cuerpo del bloque contiene toda la información de la transacción en ese bloque, que se procesa varias veces para formar una estructura conocida como árbol de Merkle, que constituye el cuerpo del bloque. El primer mensaje de transacción en cada uno de estos bloques también se conoce como transacción de base de monedas y es la transacción que genera nuevos bitcoins y los recompensa al minero, mientras que todas las demás transacciones son transferencias entre usuarios.
Estas transacciones se someten a múltiples operaciones de hashing para finalmente llegar a un valor llamado Merkle Hash, que es la suma de todos los datos de la transacción. Merkle Hash, junto con Nunce, marcas de tiempo, hash de bloque principal y otros datos, constituyen el encabezado del bloque, y al calcular el valor hash del encabezado del bloque se puede obtener el Block Hash de este bloque. Dado que el encabezado del bloque de cada bloque contiene el valor hash del bloque principal, todos los bloques están conectados en una cadena. Los bloques están entrelazados y cualquier cambio en los datos del bloque dará como resultado un cambio en el hash del bloque, lo que romperá la cadena.
Después de presentar el "libro mayor" (capa de datos) que tiene cada nodo, pasemos a la capa de consenso de Bitcoin, que es responsable de la seguridad de la red.
Antes de profundizar en el consenso distribuido, es fundamental comprender el problema de los "generales bizantinos".
El problema de los generales bizantinos se remonta a la época medieval, cuando el ejército bizantino dependía de mensajeros para transmitir información debido al vasto territorio de Bizancio. Si un traidor tergiversó deliberadamente la información operativa de los superiores, conduciría a planes operativos inconsistentes, lo que daría como resultado el "Problema de los generales bizantinos".
La red Bitcoin consta de una serie de nodos descentralizados, cada uno de los cuales es un "cuerpo" independiente, autónomo e igualitario. Cada nodo de la red tiene su propia copia única de los datos de la cadena de bloques y todos quieren ser los primeros en empaquetar las transacciones y ganar las recompensas de bitcoin. Entonces, ¿qué nodo tendrá éxito en obtener los derechos del libro mayor y convencer a toda la red para llegar a un consenso para modificar los datos de la cadena de bloques?
La respuesta de Bitcoin es el mecanismo de consenso de Prueba de trabajo (PoW), comúnmente conocido como "minería", que es un proceso de computación digital realizado por nodos, donde el primer nodo en encontrar la "respuesta" obtiene los derechos de registro. Específicamente, el nodo debe seguir intentando cambiar el Nunce del encabezado del bloque, calcular el hash del bloque y finalmente obtener un hash del bloque donde los primeros bits son cero.
En este punto, el valor de Nunce es la respuesta a la pregunta. Después de encontrar la respuesta, el nodo la transmitirá a otros nodos de la red y, después de verificar la respuesta, los otros nodos tomarán rápidamente el bloque como el nuevo nodo principal y continuarán con la siguiente ronda de operaciones mineras.
Eso presenta el problema de que los datos tardan en transmitirse entre los nodos, y es muy posible que dos o más nodos descubran la respuesta al acertijo al mismo tiempo antes de que la comunidad en su conjunto llegue a un acuerdo. Sin embargo, debido a que dos nodos empaquetan diferentes transacciones de base de monedas, esto da como resultado dos bloques válidos distintos. Debido a las diferentes secuencias de señalización, los nodos mineros operarán en ambas cadenas de bifurcaciones. En este punto, la red de Bitcoin seguirá la "regla de la cadena más larga", tratando la cadena de bifurcación con la mayor cantidad de bloques como la única cadena de bloques reconocida. Esta competencia de bifurcación generalmente se completa en menos de 6 bloques, y todas las transacciones en la otra cadena abandonada se anulan.
Los nodos de Bitcoin pueden sincronizar las actualizaciones del libro mayor distribuido mediante la minería y la regla de la cadena más larga para llegar a un consenso. Este libro mayor distribuido basado en el consenso también hace posibles las monedas digitales peer-to-peer como Bitcoin.
Las monedas electrónicas tradicionales utilizan un sistema de cuentas centralizado en el que se crean cuentas para cada usuario en un servidor central y los datos de saldo se almacenan para todas las cuentas. Después de cada transacción, el saldo de la cuenta aumenta o disminuye en orden cronológico. Bitcoin, por otro lado, utiliza un modelo UXTO, que representa el resultado de las transacciones no gastadas.
La criptografía asimétrica se utiliza para asegurar las transacciones de bitcoin. Cada usuario de Bitcoin debe tener un par de claves públicas y privadas, similares a una cuenta y una contraseña. El usuario debe firmar los datos de la transacción con la clave privada y publicar los datos de la transacción, la firma y la clave pública juntos. Sin embargo, en cada transacción, el usuario no transfiere el saldo de la cuenta directamente sino que utiliza el "monto no gastado" de las múltiples transacciones anteriores, es decir UTXO.
En el sistema Bitcoin no existe el concepto de cuenta o saldo de cuenta, solo la UTXO de todas las transacciones en el registro histórico. Las billeteras de Bitcoin pueden escanear los datos de todas las transacciones anteriores y calcular el UTXO total de una dirección específica (es decir, clave pública) para determinar el saldo de la cuenta. Además, cuando se inicia una transacción, las billeteras de bitcoin pueden hacer coincidir automáticamente el UTXO con el saldo correcto para completar la transferencia.