¿Cómo funciona el protocolo Bitcoin?

El autor:Un sueño pequeño., Creado: 2017-01-19 18:30:04, Actualizado:

¿Cómo funciona el protocolo Bitcoin?

  • El Bitcoin

    Ahora, dejemos Infocoin y pasemos al verdadero protocolo Bitcoin. Bitcoin y Infocoin, que acabamos de construir paso a paso, no tienen mucha diferencia, excepto un cambio notable.

    Para usar Bitcoin, primero tienes que instalar un monedero en tu computadora. Para que lo entiendas mejor, la siguiente imagen es una captura de pantalla de un monedero llamado Multibit. En la esquina superior izquierda puedes ver que el saldo de Bitcoin es de 0.06555555 bitcoins, con un precio de transacción de casi $ 70 según la imagen.

    img

    Supongamos que usted es un comerciante y que ya tiene una tienda en línea y decide permitir que los clientes paguen con Bitcoin. Todo lo que necesita hacer es generar una nueva dirección de Bitcoin con su programa de billetera.

    img

    Luego envías tu dirección de Bitcoin a la persona que va a pagarte. Puedes usar el buzón de correo electrónico o ponerla directamente en tu página web. Esto es seguro, ya que tu dirección es solo una clave pública hash, y puedes estar seguro de que nadie puede obtener tu clave privada a través de ella. Explicaré más adelante por qué las direcciones de Bitcoin utilizan el valor de hash de la clave pública en lugar de la clave pública en sí misma.

    Ahora, el que está dispuesto a pagar necesita crear una nueva transacción. Veamos un dato de transacción real que se transfiere a 0.319 bitcoins. A continuación, esto es casi el dato original, y aquí hay tres cambios: 1) los datos no se continúan; 2) se agregan números de línea para una mejor comprensión; 3) se omite una larga serie de números de datos de hash y solo se conservan los primeros 6 dígitos.

    1.  {"hash":"7c4025...",
    2.  "ver":1,
    3.  "vin_sz":1,
    4.  "vout_sz":1,
    5.  "lock_time":0,
    6.  "size":224,
    7.  "in":[
    8.    {"prev_out":
    9.      {"hash":"2007ae...",
    10.      "n":0},
    11.    "scriptSig":"304502... 042b2d..."}],
    12. "out":[
    13.   {"value":"0.31900000",
    14.    "scriptPubKey":"OP_DUP OP_HASH160 a7db6f OP_EQUALVERIFY OP_CHECKSIG"}]}
    
    • ¿Qué es lo que está sucediendo?

      La primera línea, el hash de la transacción ((16 intrínseca), es el único símbolo utilizado para representar esta transacción.

      La segunda línea nos dice que la transacción utiliza la primera versión del protocolo de Bitcoin.

      Las líneas 3 y 4 nos dicen que la transacción tiene una entrada y una salida.

      La 5a línea, es un tiempo de bloqueo (lock_time) que se puede usar para controlar cuándo se completa la transacción.

      La línea 6 nos dice cuántos bytes es el tamaño de la transacción, y tenga en cuenta que esto no es dinero de la transacción.

      Las líneas 7 a 11 definen la parte de entrada de la transacción, exactamente, las líneas 8 a 10 nos dicen que el valor de entrada del dinero que se va a mover es el dinero que se obtiene del valor de salida de la transacción anterior. Ese 2007ae... es el hash de 16 puntos de entrada de la transacción anterior, se usa para referirse a una transacción superior.

      Es notable que la parte de entrada aquí no dice cuántos bitcoins de la transacción anterior se transferirán a la siguiente. De hecho, todos los bitcoins de la salida n = 0 de la transacción anterior se han transferido. Por ejemplo, si la primera salida n = 0 de la transacción anterior tiene 2 bitcoins, entonces ambos bitcoins se gastarán en esta nueva transacción.

      Las líneas 12 a 14 definen la salida de la transacción. Específicamente, la línea 13 nos dice la cantidad de dinero que se emite, que es 0.319 bitcoins. La línea 14 es más compleja, y es notable que la cadena a7db6f... es la dirección de cobro de bitcoins.

      Ahora, se puede ver cómo Bitcoin resuelve el problema de dónde vienen los números de serie de bitcoins que mencionamos anteriormente. Primero, Bitcoin no es una pieza de moneda separada, sino una larga serie de transacciones que existen en la cadena de bloques.

      Podemos ir y volver a lo largo de la cadena de transacciones. Al final, hay dos posibilidades. Primero, es posible que llegues a la primera transacción de Bitcoin, que existe en un bloque, que llamamos bloque Genesis.

      El segundo resultado que se puede ver en la cadena de transacciones es que llegas a una transacción llamada pieza de base de monedas. Además del bloque Genesis, cada bloque comienza con una transacción de base de monedas especial. Esta transacción es para recompensar a los mineros que verifican las transacciones en el bloque.

      La descripción anterior no es muy clara sobre qué es exactamente lo que está firmado digitalmente en 11 líneas. La forma más obvia es que el pagador firme digitalmente toda la transacción. Por ahora no se hace así, algunas transacciones se ignoran. Esto hace que una parte de las transacciones sea plastificable, es decir, que puedan modificarse más adelante.

  • Hay varias entradas y salidas

    En el párrafo anterior hablamos de una transacción con solo una entrada y una salida. De hecho, la mayoría de las transacciones de Bitcoin tienen múltiples entradas o múltiples salidas.

    1. {"hash":"993830...",
    2. "ver":1,
    3. "vin_sz":3,
    4.  "vout_sz":2,
    5.  "lock_time":0,
    6.  "size":552,
    7.  "in":[
    8.    {"prev_out":{
    9.      "hash":"3beabc...",
    10.        "n":0},
    11.     "scriptSig":"304402... 04c7d2..."},
    12.    {"prev_out":{
    13.        "hash":"fdae9b...",
    14.        "n":0},
    15.      "scriptSig":"304502... 026e15..."},
    16.    {"prev_out":{
    17.        "hash":"20c86b...",
    18.        "n":1},
    19.      "scriptSig":"304402... 038a52..."}],
    20.  "out":[
    21.    {"value":"0.01068000",
    22.      "scriptPubKey":"OP_DUP OP_HASH160 e8c306... OP_EQUALVERIFY OP_CHECKSIG"},
    23.    {"value":"4.00000000",
    24.      "scriptPubKey":"OP_DUP OP_HASH160 d644e3... OP_EQUALVERIFY OP_CHECKSIG"}]}
    
    • Como antes, hemos explicado una línea tras otra, la mayoría de las cuales son las mismas que acabamos de ver.

      La primera línea, el hash value de la transacción, se usa como el único marcador de esta transacción.

      La segunda línea, versión del protocolo Bitcoin, primera edición.

      Las líneas 3 y 4 dicen que hay 3 entradas y 2 salidas en esta transacción.

      En la línea 5, el tiempo de bloqueo ((como antes) ).

      En la línea 6, el tamaño de los bytes de la transacción.

      Las líneas 7 a 19 definen todas las entradas, cada una correspondiente a la salida de la transacción anterior. La primera entrada es de 8 a 11 líneas. Su forma de contenido es la misma que la anterior. La segunda entrada es de 12 a 15 líneas y la tercera es de 16 a 19 líneas.

      Las líneas 20 a 24, definen todas las salidas, la primera salidas son las líneas 21 y 22, y como antes, las líneas 21 dicen que hay 0.01068 bitcoins dentro. Las líneas 22 son el lenguaje de script de un bitcoins. La cadena e8c30622... es la dirección del receptor.

      Parece un poco extraño que, aunque cada salida tiene un registro de la cantidad de bitcoins, la entrada no lo tiene. Por supuesto, cada entrada tiene la cantidad de bitcoins que se pueden obtener de su transacción anterior. En una transacción Bitcoin normal, la suma de todos los valores de las entradas es mayor que la suma de todas las salidas (excepto el bloque Genesis y la transacción Coinbase).

      La función de las múltiples entradas y salidas es encontrar cero. Supongamos que quiero darte 0.15 bitcoins. Puedo gastar los 0.2 bitcoins que recibí antes. Por supuesto, no quiero darte todos los 0.2, por lo que la solución es que te envío 0.15 bitcoins y luego envío 0.05 bitcoins a otra dirección de bitcoin mía.

  • Las palabras finales

    Los conceptos básicos detrás de Bitcoin ya están descritos. Por supuesto, también he ignorado muchos detalles. Esto no es una instrucción formal después de todo. Pero quiero describir los conceptos detrás de Bitcoin que se usan comúnmente.

    Aunque las reglas detrás de Bitcoin son simples y fáciles de entender, eso no significa que sean fáciles de entender todos los posibles resultados que estas reglas producirán. Hay mucho más que decir sobre Bitcoin, que explicaré en un artículo posterior.

    ¿Qué tan anónimo es Bitcoin? Muchas personas dicen que Bitcoin puede usarse de forma anónima. Esta afirmación se formó en mercados negros similares a Silk Road. Sin embargo, esta afirmación es ficticia. La Blockchain es pública, lo que significa que cualquiera puede ver todas las transacciones de Bitcoin. Aunque las direcciones de Bitcoin no corresponden directamente a la identidad de las personas en el mundo real, los científicos informáticos han hecho mucho trabajo para descifrar las redes sociales anónimas.

    ¿Puedes hacerte rico con Bitcoin? Tal vez, Tim O'Reilly dijo una vez que ganar dinero es como una bomba de aceite en un automóvil que necesitas tener en cuenta, o te quedarás atascado en el borde del camino, pero la vida no gira en torno a una gasolinera. ¡Bueno, la mayor parte del interés en Bitcoin parece provenir de personas cuyo objetivo en la vida es simplemente encontrar una gran gasolinera. Tengo que admitir que esto es confuso.

    Detalles que he pasado por alto: Aunque este artículo describe el concepto principal detrás de Bitcoin, hay muchos detalles que no he mencionado. Uno de ellos es la gran técnica de ahorro de espacio en el protocolo, basada en una estructura de datos llamada árbol de Merkle. Es un detalle, pero es un detalle increíblemente interesante, que vale la pena ver si te gusta la estructura de datos.

    El guión de Bitcoin: En este artículo, explico Bitcoin como una moneda electrónica en línea. Pero esto es solo una pequeña parte de una historia más grande e interesante. Como hemos visto, cada transacción de Bitcoin tiene un guión de Bitcoin. El guión se simplifica en este artículo en algo similar a: "Alice me va a dar 10 bitcoins a Bob". Pero el guión también se puede usar para describir transacciones más complejas.

    Si te parece útil, te recomiendo dar un consejo al autor original de este artículo, Michael Nielsen, en 17ukkKt1bNLAqdJ1QQv8v9Askr6vy3MzTZ. También puedes seguirlo en Twitter; o seguir el primer capítulo de su próximo libro sobre redes neuronales y aprendizaje profundo.

    También son bienvenidos a seguir el microblog de los traductores: 1015 Si hay algún inconveniente, perdón.

En la actualidad, la mayoría de las personas no tienen acceso a la información.


Más.