Hay dos conceptos interrelacionados que hacen que las transacciones de Bitcoin sean lentas y tomen 10 minutos completarse.
El primero está relacionado con el mecanismo de consenso y el segundo con el tiempo que toma transmitir el nuevo bloque a todo el mundo dentro de la red.
Contenido
1. Mecanismo de consenso
El mecanismo de consenso que Bitcoin utiliza se lo conoce como Prueba de Trabajo (PoW por sus siglas en inglés).
Para que un bloque pueda ser unido a la cadena, un nodo debe probar de que ha hecho cierto trabajo para resolver un problema matemático. No nos concentraremos en este problema matemático en este artículo, para eso existe el artículo sobre la minería de Bitcoin, lo importante es entender es que es difícil de resolver.
Por otro lado, cada solución de los nodos es única, ya que depende de las transacciones que haya elegido para su bloque.
La razón de porque resolver este problema es difícil tiene que ver con que si no lo fuera entonces habría muchas soluciones de distintos nodos al mismo tiempo, lo cual generaría un caos. De esta forma sería imposible determinar que bloque es el que se agregaría a la blockchain.
Mientras que si el problema es de difícil resolución, el número de bloques correctos pululando por la red sería pequeña, haciendo el consenso más fácil.
Pero aun cuando el problema a resolver sea difícil, existe la posibilidad pequeña de que dos nodos lleguen a la solución al mismo tiempo.
Cuando cada nodo comunica su solución a la red, a otros nodos que conoce, los nodos eligen alguno de los bloques, probablemente el que conocieron primero, y comienzan a buscar el próximo a partir de ese.
Esto es lo que se conoce como una bifurcación o fork de la cadena, debido a que ahora hay dos cadenas que se diferencian por el último bloque.
La solución para desempatar este problema es la de esperar a ver cual es el próximo bloque descubierto y a que cadena se unirá. Haciendo que esa cadena sea más larga y dejando de lado la otra. Es la cadena más larga la que gana.
Todo este proceso se demora aproximadamente 10 minutos, y si no lo hiciera en ese tiempo entonces existe un mecanismo para ajustar la dificultad de la minería y acercarse.
2. Tiempo de transmisión
La decisión de los 10 minutos se hizo asumiendo que le tomaría 1 minutos a cualquier bloque nuevo alcanzar todos los nodos de la red.
Esto significa que luego de que un nodo haya encontrado la solución, durante un minuto, el resto de los nodos estarían haciendo trabajo sin valor alguno, tratando de encontrar una solución que ya ha sido descubierta.
A partir de eso, el inventor de Bitcoin pensó que gastar más de 10% de los recursos de la red en trabajo sin sentido era lo máximo tolerable. Por eso es que hizo que el problema a resolver solo tomara 10 minutos.
En el caso de que hubiera estado conforme con el 20%, podría haber elegido una dificultad de 5 minutos.
Sabemos que la dificultad es fija y está determinada por el tiempo. Pero también que la potencia de los equipos de minerías evolucionan, permitiendo resolver el problema en menos tiempo.
Por eso el protocolo de Bitcoin tiene una regla para ajustar la dificultad a partir del tiempo promedio que ha tomado resolver los bloques de las últimas 2 semanas.
¿Por qué esperar 1 hora?
Todo esto del mecanismo de consenso esta muy bien, pero aún queda resolver otro problema y tiene que ver con aquellos malos actores o “hackers” (aunque ese nombre mucho no me gusta).
En el caso de la tecnología blockchain, la única forma de hacer trampa es reescribiendo la historia, algo de lo que vamos a hablar en detalle ahora.
Cuando un nuevo bloque es creado (se encuentra su solución), es fácil para cualquier aceptar que es válido. Todo lo que necesitan hacer es comprobar las firmas de las transacciones que hay dentro y si son dueños de las monedas que quieren gastar.
Así evitamos que alguien pague con BTC que no son suyos. Pero se puede hacer trampa si consigue deshacer una transacción.
Para eso supongamos que le pagamos a alguien algunos bitcoins, y a cambio recibimos algo como puede ser una PlayStation 5.
Luego de que hayamos recibido nuestra consola y hayamos verificado que todo funciona como corresponde, podríamos teóricamente crear una cadena de bloques más larga que no incluya nuestro pago.
Para eso deberíamos comenzar desde antes del bloque que tiene nuestra transacción con el pago por el bien que hemos comprado.
En función de prevenir este problema, el vendedor de la PlayStation no debería entregarnos el producto una vez que ha visto que un bloque ha integrado la transacción con el pago. Lo que debería hacer es esperar que unos pocos bloques más sean añadidos a la cadena.
Con esto tendrá la confianza que será muy complicado para nosotros crear una cadena de bloques más larga para vencer el consenso.
Por suerte, Satoshi Nakamoto se tomó el trabajo de hacer los cálculos matemáticos por nosotros y escribirlas en el white paper de Bitcoin.
En él determino que si esperamos 6 bloques de confirmación y el atacante tiene el 10% del poder de la red, sus posibilidades apenas serían 0,1%. Algo poco probable para un bien que solo cuesta unos cientos de euros o dólares.
Un tiempo de bloque más corto o más largo
En el caso de que se adoptara un tiempo de bloque más corto, habría algunas ventajas y algunas desventajas.
Ventajas
- Confirmaciones más rápidas para aquellos que solo quieren esperar 1 sola
- Menos variación en los pagos para los mineros (menos dependencia de los grandes grupos)
Desventajas
- Requiere un ancho de banda más grande (para la comunicación entre nodos)
- Más forks, forks más extensos y tiempos de reorganización más largos
- Una gran parte del poder de cómputo de la red se desperdiciaría, resultando en una seguridad menos efectiva
El mayor beneficio de un tiempo de bloque más corto se encuentra en la reducción de lo que tomara hacer 1 sola confirmación.
Claro que 1 sola confirmación con un tiempo de bloque menor es menos segura que con un tiempo de bloque mayor, pero al menos es más segura que si esperamos a 0 confirmaciones.
Esta velocidad en la confirmación podría ser una gran ventaja para aquellos pagos de no mucho valor, como por ejemplo cuando se paga por una taza de café, un taxi o algo de pocos dólares o euros.
Las tarjetas de créditos, por ejemplo, tienen riesgos para el comerciante que las acepta, pero al final del día las perdidas son tan pocas que son parte de hacer negocios con este tipo de métodos de pagos.
Aunque también es cierto que algunos comerciantes podrían aceptar transacciones de 0 confirmaciones si no les importa incurrir en algunos riesgos, simplemente debería cobrar un poco más como seguro, como ocurre con las tarjetas de créditos, y aceptar cualquier tipo de fraude.
Otra opción a los problemas de las 0 confirmaciones podría ser el uso de las “direcciones verdes” o “green address”.
Las mismas podría servir para realizar transacciones con cero confirmación. Estos servicios pueden ser ofrecidos por grandes corporaciones o respaldos por seguros en contra de fraudes (gracias a una pequeña comisión en la transacción).
En el caso que se optara por un tiempo de bloque más largo las ventajas y desventajas se revertirían, haciendo que haya más ventajas que cuando se busca hacer el tiempo de bloque más corto.
En este caso, soluciones de segunda capa como Lightning Network podrían ser perfectas para no perder las ventajas de los 10 minutos mientras se opera de forma barata y rápida con BTC.
Agrega un Comentario