Muchos de los potenciales usuarios de Bitcoin y de otras criptomonedas todavía no se sumaron a esta tendencia debido al simple desconocimiento de sus operatorias básicas.
El hecho es que cada vez que creamos y hacemos uso de una transacción de Bitcoin, hacemos uso de una tecnología revolucionaria y muy segura. Y muchos, seguramente, en nuestra curiosidad nos preguntamos: ¿cómo funciona una transacción en Bitcoin? ¿qué es lo que hace que toda la tecnología de Bitcoin procese nuestra transacción y llegue a quien tiene que llegar de forma segura?
La verdad es que detrás de esto se esconde una avanzada programación que lo hace posible. Una programación que es posible por el trabajo de miles de personas en todo el mundo. Un trabajo que nos ofrece la oportunidad de disfrutar de un sistema de pago, seguro, confiable, privado y totalmente descentralizado.
Y es que el funcionamiento de una transacción es algo más bien sencillo. Es por ello, que, para conocer más sobre estas, ahondaremos más sobre el proceso de funcionamiento de transacción en Bitcoin. Todo con el fin de que conozcamos y despejemos dudas sobre este interesante proceso.
A continuación, todo lo que hay que saber según lo explica CoinTelegraph.
Cuando Satoshi Nakamoto creó el Bitcoin lo hizo con una visión única de crear un sistema de pago seguro, descentralizado y privado. Un sistema que fuera capaz de desplazar a los actuales sistemas de pago del mundo. Un pensamiento sin duda gigantesco y que en ese entonces pocos creían viable.
Sin embargo, el tiempo ha demostrado claramente que Bitcoin es dinero. Un dinero P2P (Peer-to-Peer) que se puede usar y gastar como se desee, allá donde sea aceptado. No hay imposición, no hay control por parte de terceros, en Bitcoin lo único que gobierna es la descentralización y el consenso de una comunidad. Una situación que en definitiva ha llamado la atención de millones de personas en el mundo hasta la actualidad, en el que Bitcoin ha cumplido con muchas de sus expectativas iniciales: una nueva forma de dinero y un medio de pago real lejos del control de los bancos.
En definitiva, Bitcoin es dinero, y cada vez que lo usamos estamos realizando una transacción. Una transacción como esas que acostumbras a hacer desde la web de tu banco. ¿Lo diferente? Acá no hay bancos, no hay entes que controlen la moneda, tu dinero realmente es tuyo.
A pesar de tener ya gran aceptación global, el
Bitcoin sigue generando dudas.
Pero lo más importante, todo lo que hagas es procesado por una gigantesca red que lo graba todo en la blockchain de forma eterna e inmutable. De esta forma, cada vez que haces una transacción realiza una acción que esta red procesa y luego plasma en la blockchain. Desde allí, tú y cualquier persona pueden ver que la operación se ha realizado, pero no puedes modificarla ni echarla atrás.
Sin duda, estas son características muy interesantes, pero detrás de cada transacción hay mucho más. Por ello, con el fin de que pueda entenderlas empezaremos a explicar cada una de estas partes y su finalidad en todo este sistema que forma al Bitcoin.
¿Qué es una transacción en Bitcoin?
En primer lugar, hay que saber que una transacción en Bitcoin es la realización de cualquier acción en la que las monedas de la blockchain están en movimiento. Cada vez que envías o recibes bitcoins o satoshis (fracciones de bitcoin), estás siendo testigo de una transacción.
Es tal cual como haces una transacción en una plataforma de pago digital como Paypal. Cada vez que realizas una transacción en Bitcoin, no mueves dinero basado en una moneda fiat, sino que mueves una moneda digital. De hecho, cada bitcoin que hay en la red no existe en la realidad. No existe un banco central de bitcoins, ni una moneda real de bitcoins, todo es digital. Además, el valor de esta moneda es dictado por las leyes del mercado, de la oferta y la demanda, por la confianza de quienes participan.
Pero para ser una forma de dinero confiable necesitas de un sistema de contabilidad, y eso es lo que hace la blockchain. La blockchain o cadena de bloque es una inmensa base de datos donde cada transacción queda grabada de forma permanente e inmutable. Sin importar que tan pequeña sea la transacción, todo queda grabado. Desde allí, es posible realizar toda la contabilidad necesaria para que Bitcoin sea una forma de dinero segura para todos. No hay mejor libro contable en el mundo.
La operatoria del
Bitcoin reposa sobre un complejo entramado digital.
De hecho, los registros dentro de la blockchain pueden verse de forma pública. Eso sí, no hay nombres, no hay datos que directamente puedan asociarse con tu persona o por qué estas usando una determinada cantidad de dinero. Es la privacidad de las transacciones en Bitcoin, algo de lo que hablaremos más adelante.
El hecho de que en Bitcoin los registros contables sean públicamente accesible, nos habla de un nivel de transparencia que otros sistemas son incapaces de ofrecernos. Por ejemplo ¿Acaso existe un registro público de las transacciones del banco que usas? tu respuesta seguramente: por supuesto que no. Eso dice mucho del potencial de Bitcoin y más sabiendo que incluso con esta característica tu privacidad está protegida.
Ahora bien, sabemos que es una transacción y varias de sus propiedades, pero que tal si explicamos más a fondo las partes que forman una transacción.
Partes de una transacción de Bitcoin
Cada transacción en Bitcoin, está formada a grandes rasgos por la siguiente serie de partes o elementos básicos:
- Inputs o Entradas. Esta viene a ser el "origen" de los fondos de la transacción que estamos realizando. En Bitcoin, una entrada es una referencia a la salida de una transacción pasada. Es decir, una entrada viene a ser una referencia al cambio que nos ha quedado o al dinero que hemos recibido de otra transacción. Gracias a ello podemos confirmar con total certeza el origen de los fondos que estamos usando. Un punto interesante es que este campo puede estar formado por una o varias entradas.
Esto se debe a que en Bitcoin cada dirección asociada entradas y salidas de forma autónoma, y el saldo de las mismas sumas. Así que, si emitimos una transacción por la totalidad de dicha suma, usaremos el saldo en cada una de esas direcciones como entrada para nuestra nueva transacción.
- Outputs o salidas. Este campo indica la dirección a la cual se realiza la transferencia junto a la cantidad de bitcoins que se envían a la misma. Adicionalmente, este campo contiene las direcciones de cambio a la cual es enviada nuestro cambio de las transacciones. Gracias a esta característica, el campo output puede contener más de una salida.
- Fee o Comisión de minería. Este cabo nos indica la comisión o fee de minería que hemos pagado para que nuestra transacción sea tomada y procesada por la red. Este campo se usa para dejar una pequeña cantidad de bitcoin como pago por sus servicios. La cantidad a pagar generalmente varía y depende mucho del estado de la red. Si hay mucha congestión, el precio tiende a subir, debido a que las personas pagan un poco más para hacer que sus transacciones sean rápidamente atendidas. Por el contrario, el precio baja cuando la red tiene poca congestión.
- TX ID o Identificador de Transacción. En Bitcoin toda transacción está identificada con un identificador único e irrepetible. Esto es así para evitar que dos transacciones pasen por ser idénticas. Para lograrlo, cada vez que un usuario crea una transacción está es marcada con un hash SHA-256 único que diferencia su transacción del resto.
Ahora bien, estos elementos no se forman de la nada. Detrás de ellos se esconde el verdadero mecanismo de cómo funciona una transacción de bitcoin. Y eso es lo que desentrañaremos a continuación.
¿Cómo funciona una transacción de Bitcoin?
El envío de cada bitcoin empieza de una forma muy sencilla: con la apertura de nuestra wallet. Desde ese preciso momento, comienza todo el proceso para hacer una realidad cada transacción en Bitcoin. Pero exploremos un poco más detenidamente cómo es esto posible.
Explicación simplificada
En primer lugar, cuando creamos una wallet de Bitcoin en realidad estamos creando una serie de claves asimétricas. Estas claves se dividen en dos: una clave privada y una clave pública. La primera de ellas, es semejante a la caja fuerte y la combinación de la misma para nuestros bitcoins. Cada bitcoin en nuestra posesión, permanecerá siendo nuestro porque dicha clave privada nos permite administrarlos de forma total.
Por otro lado, la clave pública es semejante a un sobre de seguridad blindado. Uno en el que podemos poner información, cerrarlo y enviar dicha información con la seguridad de que nunca será abierto. De hecho, la única persona capaz de abrirlo es quien generó dicho sobre en primer lugar. Este creador es nuestra clave privada, pues de ella podemos derivar infinitas claves públicas a medida que las necesitemos.
Adicional a esto, Bitcoin hace uso intensivo de funciones hashes y de firma digital dentro de las transacciones. Las funciones hashes se usan para crear el identificador de la transacción. Pero además se usa para agregar capas de seguridad en distintos elementos que forman la transacción a muy bajo nivel.
Ejemplo de una transacción
Este mecanismo es el que, de base, nos permite enviar bitcoins entre distintas personas. Veamos un ejemplo de esto:
Ana va a enviarle 0,01 BTC a Daniel. Por esa razón, Ana y Daniel abren sus respectivas wallets. Cada uno de estos wallets, tiene una clave privada asociada (una caja fuerte) que solo ellos de forma individual pueden controlar. Para preparar el envío, Ana le pide a Daniel una dirección.
Así, Daniel genera una dirección de Bitcoin (un sobre blindado) que, en realidad, es un clave pública derivada de su clave privada. Daniel le entrega esta dirección a Ana y ella prepara el envío. Especifica la cantidad de 0,1 BTC, la comisión de minería, y le da enviar (pone el dinero y le envía el sobre a Daniel). En ese momento, el monedero de Ana genera la transacción la firma digitalmente y crea un identificador único de la misma usando la función hash SHA-256.
Seguidamente, el monedero genera nuestra transacción le da un identificador único y la manda a la red. En pocos minutos, la red Bitcoin procesa este sobre blindado y lo incluye en su historial contable. Así Daniel tiene sus 0,1 BTC bajo su control. Para ello hace uso de su clave privada (para abrir el sobre blindado) para tomar posesión total de sus nuevos BTC y con ello la transacción se ha realizado con éxito.
Este sencillo ejemplo, nos deja ver a grandes rasgos cómo se genera y es posible una transacción. Además explica de forma sencilla, como la criptografía asimétrica y las funciones hashs nos permite enviar dinero de forma segura. Pero debajo de esto hay mucho más y examinaremos estos elementos.
Explicación ampliada
Sin embargo, a bajo nivel el elemento que hace posible la realización de las transacciones en Bitcoin es el Bitcoin Script. Este es un lenguaje de programación del tipo scripting que permite añadir propiedades de programación a Bitcoin, detalla CoinTelegraph.
El ejemplo anterior de Ana y Daniel, se reduciría entonces a simples acciones programadas en Bitcoin Script. Esto es lo que más precisamente pasa dentro de Bitcoin. De hecho, cada vez que hacemos una transacción pasaría una serie de pasos como los que se describen a continuación:
1. En primer lugar, Ana y Daniel preparan sus monederos para tener así acceso a sus claves privadas.
2. Daniel genera una dirección de Bitcoin. Para ello, usa su clave privada para generar una clave pública asociada. Esta clave pública de Daniel, es convertida en una dirección de Bitcoin.
3. Ana toma la dirección de Daniel. Comienza a introducir los datos de la transacción de pago en su monedero. Indica la cantidad, el fee de minería y la dirección a donde enviará esos bitcoins.
4. Acto seguido el monedero de Ana comienza a generar la transacción. Para ello, el monedero toma cada una de las salidas no gastadas (UTXO) de Ana. Es decir, cada envío de dinero que haya recibido Ana se tomará y sumará para generar el pago a Daniel. En este punto, el monedero de Ana genera un scriptSig para cada una de esas entradas. Este script sirve para demostrar que realmente Ana es dueña de ese dinero. Por ello, en dicho script hallaremos una firma digital ECDSA de Ana y una clave pública asociada para cada salida que Ana usará para enviar el dinero a Daniel.
5. Seguidamente, el monedero de Ana genera los scripts de bloqueo o scriptPubKey. En dichos scripts, hallaremos las instrucciones que deben ser realizadas para que finalmente Ana pase la propiedad de sus bitcoins a Daniel. Este scriptPubKey tienen la dirección de destino de los fondos. Pero además, si Ana debe recibir un cambio se generará un scriptPubKey que le devolverá el cambio a una dirección bajo su control.
6. Acto seguido se genera la estructura de la transacción. Para ello, usará los scripts anteriores y datos como la fecha o timestamp de la transacción para generar un hash SHA-256 único e irrepetible que identificará a la transacción.
7. Seguidamente el monedero emite la transacción a la red. Una vez allí llega al mempool de la red, una especie de sala de espera.
8. Cuando los mineros empiezan el proceso de generación de un bloque, toman las transacciones, las agrupan y por medio de la minería generan un bloque. Una vez generan el bloque lo mandan a los nodos quienes verificarán que los mismos son válidos.
9. Cuando los nodos reciben un bloque válido, toman cada una de las transacciones y ejecutan las instrucciones de la misma. En este momento, sucede el cambio, el dinero de Ana pasa a manos de Daniel. El bloque quedará finalmente ejecutado y sus acciones grabadas en la blockchain.
10. Daniel puede ver la transacción de Ana confirmada en su monedero, allí Daniel puede tomar posesión de su dinero haciendo uso de su clave privada.
11. Por otro lado, Ana puede ver que ahora no tiene 0,1 BTC. En su lugar, ve la transacción hecha a Daniel y ve una transacción de cambio que regresa a su poder el resto del dinero que tenía en su monedero.Como ven, este ejemplo es mucho más complejo. Pero demuestra la forma en cómo las transacciones trabajan a un nivel mucho más bajo. Ciertamente una genialidad que une lo mejor de la criptografía y un sistema programable para crear una forma de dinero única.
Comisiones y los tiempos de confirmación
Un punto que causa también curiosidad sobre el funcionamiento de las transacciones de Bitcoin, son las comisiones y los tiempos de confirmación. En primer lugar, las comisiones son un pequeño pago que como usuario realizamos a los mineros para atender nuestra transacción. Los mineros al manejar nuestra transacción, tienen la capacidad de reclamar este dinero y desde allí enviarlo a una dirección propia.
En los principios de Bitcoin, las confirmaciones se realizaban de forma regular cada 10 minutos. De hecho, en principo Bitcoin permitía enviar transacciones gratis, y estas eran atendidas sin ningún problema. Pero con el aumento en el uso y la necesidad de apoyar a los mineros, estas comenzaron a tener un costo. Una medida que sobre todo se tomó para evitar el spam y el uso inadecuado de la red.
Pero a medida que la red fue aumentando en tamaño, la escalabilidad de Bitcoin comenzó a ser un problema. Sencillamente Bitcoin no es capaz de manejar altos volúmenes de transacciones. El aumento en el número de transacciones disparo los tiempos de confirmación, de hecho se puede pasar días enteros esperando una confirmación.
El culpable de esta situación no es otra que una baja comisión de minería. Esto pues lo mineros dan prioridad a aquellas transacciones que más paguen, y solo atienden al resto en momentos en el que la demanda se reduce.
Por esa razón, los usuarios de Bitcoin buscando priorizar sus transacciones aumentaron las comisiones que pagaban. De allí los aumentos y reducciones en el costo de las comisiones de Bitcoin, y la lucha por la prioridad y las rápidas confirmaciones, explica CoinTelegraph.
Sin embargo, esta es una situación que Lightning Network busca subsanar. Este protocolo de segunda capa para Bitcoin es capaz de realizar transacciones de forma instantánea entre dos individuos y con unos costos mínimos. De momento, el desarrollo de esta opción continúa y se muestra prometedor por sus posibilidades y rápido crecimiento.