Imagínese si Chase Bank y Citibank requirieran que sus libros de contabilidad estuvieran sincronizados antes de enviar una nueva transacción a su base de datos. Así es como funcionan Ethereum y cualquier otra cadena de bloques basada en cuentas. En un modelo basado en cuentas, los usuarios tienen un saldo de sus tokens o monedas asociado a una dirección o cuenta.
Tomemos a John de los EE. UU. que vive de cheque en cheque. El jueves, John tiene cero dólares en su cuenta bancaria en Chase. Mañana, (un viernes) a John se le paga. Para gastar su dinero, debe esperar hasta que llegue el crédito a su cuenta. Desde la perspectiva de Chase Bank, John no puede gastar de su cuenta hasta que el saldo sea positivo. John solo puede comprar la cena en un restaurante elegante el viernes por la noche después de que el crédito se liquide en el banco. El crédito debe ser procesado antes que el débito, en orden. Esto es manejable para una base de datos privada donde solo una entidad es responsable de mantener las actualizaciones de su libro mayor, pero no para un libro público abierto donde muchas partes escriben constantemente actualizaciones en varias cuentas.
Ethereum (y otros modelos basados en cuentas) deben procesar las transacciones de forma secuencial. Esta es la razón por la cual los precios del gas en la red aumentan cuando existe una gran demanda para usar la red. Los usuarios ofertan tarifas una encima de la otra para que su transacción se procese secuencialmente antes que la otra.
Para resolver este problema de escalabilidad, los desarrolladores de Ethereum han propuesto sharding (o más comúnmente conocido en informática como subprocesos múltiples) para resolver este problema. Diferentes nodos procesan diferentes conjuntos de transacciones horizontalmente en el libro mayor para aumentar el rendimiento. Sin embargo, si consideramos las implicaciones cuando se procesan más transacciones, podemos concluir que esta solución es similar a patear la lata por el camino.
En primer lugar, dado el ejemplo bancario anterior, solo se pueden procesar ciertas transacciones en fragmentos en paralelo, aquellas que no actualizan la misma cuenta o estado de un objeto (piense en una mascota digital o atributos de un arma en el juego). Si Shard A intenta procesar el débito de la cena de John antes de que Shard B intente procesar el crédito requerido por John, entonces las transacciones no son válidas. Por lo tanto, los fragmentos se limitan a paralelizar solo ciertas transacciones. En segundo lugar, a medida que aumenta la demanda de transacciones que deben procesarse, ¿cuántos fragmentos son suficientes?
Si la demanda en la red es de 1 000 000 de transacciones por segundo y tenemos 8 nodos que pueden procesar 125 000 cada uno, ¿qué sucede cuando uno de los nodos no puede manejar ese volumen?
De repente, el cuello de botella se convierte en el nodo más débil de la red que es demasiado lento o se bloquea debido a la alta demanda. Si la fragmentación funciona con 1 millón de transacciones, es posible que no funcione con 10 o 100 millones. La fragmentación es, en el mejor de los casos, una mitigación, no una solución a largo plazo. Quizás es por eso que la técnica aún no se ha implementado, pero «podría enviarse en algún momento en 2023».
Compare este enfoque con un modelo basado en UTXO donde las condiciones de gasto de las monedas no dependen de otro. Por ejemplo, si tengo un billete de $1 y $5 en mi bolsillo, puedo gastar el $1 sin tener en cuenta el billete de $5. Esta es la compensación que Satoshi Nakamoto aceptó al diseñar Bitcoin y una de las razones fundamentales por las que escala. Técnicamente, $ 1 y $ 5 se pueden gastar en diferentes lugares al mismo tiempo, independientemente del orden. Esto es lo opuesto al caso de John anterior, donde se requiere que las transacciones se procesen en orden.
Sin embargo, la compensación es un estado global que, si bien es útil, no se escala. Los usuarios fuera de la cadena pueden calcular el estado de forma independiente, por ejemplo, sumando las monedas asociadas con una dirección de Bitcoin para obtener su «estado». Sin embargo, a los nodos no les importa ni tienen ese concepto de saldos, razón por la cual Bitcoin se escala horizontalmente simplemente lanzando más hardware y recursos al problema.
Ver: El panel de la Convención Global Blockchain de BSV, El mundo del futuro con Blockchain
ancho = «560» altura = «315» frameborder = «0» allowfullscreen = «permitir pantalla completa»>
¿Nuevo en Bitcoin? Echa un vistazo a CoinGeek Bitcoin para principiantes sección, la guía de recursos definitiva para obtener más información sobre Bitcoin, tal como lo concibió originalmente Satoshi Nakamoto, y blockchain.