Escalabilidad del protocolo/algoritmo de Bitcoin

He estado investigando un poco el protocolo/algoritmo de Bitcoin. Tengo los conceptos básicos, creo, pero hay muchas preguntas sobre cómo se supone que debe escalar todo. Por ejemplo,

  1. Cada cliente actualmente descarga toda la cadena de bloques, ¿verdad? ¿Cómo es esto escalable? Se supone que pueden podar los árboles de Merkel, pero no tengo una buena idea de cómo funciona esto en P2P.
  2. ¿Cuál fue el proceso de pensamiento detrás del seguimiento de las transacciones tal como son? ¿Tienes que atravesar gran parte de ese árbol para validar nuevas transacciones? ¿Derecha?
  3. Debido a que una transacción SIEMPRE debe confirmarse (¿al menos 6 veces?) a través de P2P, las transferencias están lejos de ser instantáneas. Hay un retraso incorporado. ¿No es esto un problema? Ya hay algo de retraso debido a la naturaleza del algoritmo que acepta la transacción en un bloque (resolviendo el hash inverso).

Respuestas (3)

No escalará (a la adopción del mercado masivo) si desea colocar todas las transacciones directamente en la cadena de bloques.

Debe haber una jerarquía de servicios construida sobre el protocolo principal. Además de mejorar la escalabilidad, también pueden ofrecer todo tipo de funciones que algunas personas necesitan, como transacciones reversibles, transferencias instantáneas (sin confirmación), cuentas verificadas o anonimato. La cadena de bloques se usaría como una cámara de compensación entre esos servicios. La mayoría de las personas no necesitarían interactuar directamente con él, pero aún pueden confiar en las garantías que brinda a la economía respaldada por la cadena.

El hecho de que el protocolo subyacente sea radicalmente de igual a igual no significa que no pueda tener jerarquías superpuestas. El hecho de que git sea peer-to-peer no significa que cualquiera tenga el mismo impacto en el desarrollo del kernel de Linux. En el mundo de Bitcoin, todavía habrá bancos, por ejemplo, tarjetas de crédito y compañías de seguros. La diferencia es que no importa cuán poderosos se vuelvan, no pueden meterse con el suministro de dinero (y crear monedas para ellos mismos de la nada). Si se equivocan lo suficiente como para que una gran cantidad de personas dejen de confiar en ellos, pueden quedar fuera del círculo.

Debido a que una transacción SIEMPRE debe confirmarse (¿al menos 6 veces?) a través de P2P, las transferencias están lejos de ser instantáneas. Hay un retraso incorporado. ¿No es esto un problema?

Las confirmaciones hacen que sea imposible que alguien gaste dos veces. Si confía lo suficiente en la otra parte, no tiene que esperar por esto. Lo mismo si tiene otras formas de vengarse de ellos si hacen trampa. Si eres un comerciante, puedes simplemente calcular un porcentaje de fraude por pérdida. O tomar una póliza de seguro. Los propietarios de tiendas ya lo hacen en el mundo real (para mitigar el robo), al igual que los procesadores de tarjetas de crédito. Si les brinda un servicio (como un mes de VPN), puede dejar de hacerlo si el pago "rebota". Si envía productos físicos, puede esperar fácilmente tres horas para recibir la confirmación. Puede comprar y vender divisas instantáneamente en plataformas comerciales como MtGox (por lo que no necesita confiar ni saber con quién está operando, siempre que confíe en la plataforma).

Esperar confirmaciones le permite (de forma automática) aceptar el pago de alguien de quien no sabe nada, sin confiar en nadie más para garantizarlo. Esa es una buena característica adicional de Bitcoin, pero se suma a las garantías del "mundo real" que ya tiene.

1) No está claro por qué cree que cada cliente que tiene que descargar toda la cadena de bloques es un problema de escalabilidad. La poda actualmente no se lleva a cabo, pero eventualmente debería ser posible en teoría. El espacio de almacenamiento está creciendo a un ritmo mucho más rápido que Bitcoin.

2) Para validar una nueva transacción, las únicas transacciones que debe mirar son las entradas para asegurarse de que las reclama de manera válida. Presumiblemente, ya conoce todos los resultados de transacciones actualmente válidos. Tienes que marcar un bloque para aceptarlo de todos modos.

3) Esta es la naturaleza de la forma en que Bitcoin evita los ataques de doble gasto. Es porque Bitcoin ha adoptado un enfoque de "ausencia de autoridad central". Nadie, que yo sepa, conoce una forma de realizar transacciones instantáneas sin una autoridad central. (Considere, por ejemplo, si un desastre natural divide la red de Bitcoin en dos mitades y cada mitad ve una transacción en conflicto. ¿Cómo lo sabría?)

El espacio no es la única consideración, ¿verdad? Si Bitcoin tuviera que escalar para admitir miles de millones de transacciones, exigir que todos conozcan todas las transacciones parece imposible de escalar. Probablemente no entiendo esto muy bien, por eso pregunto.
@SanjayBhandari Bitcoin no admitiría miles de millones de transacciones al colocarlas todas en la cadena de bloques principal. En ese sentido, lo que tenemos hoy no es escalable.
Además, ¿no tienes que retroceder un poco para verificar la validez? ¿O simplemente revisa las entradas más recientes? Correcto, sé por qué las confirmaciones están ahí. Lo que estoy preguntando es que con este retraso incorporado, ¿cómo puede Bitcoin admitir plataformas a gran escala que requieren transacciones extremadamente rápidas?
No estoy seguro de lo que quieres decir con "ir hacia atrás". Su cliente ya sabe que cada bloque que ha aceptado es válido, y ya sabe qué salidas de transacciones aún son reclamables. La actualización de esta información se realiza cuando recibe un bloque, por lo que no tiene que hacerlo cuando recibe una transacción. (De lo contrario, podría recibir/aceptar un bloque no válido y acceder a la cadena incorrecta).

La escalabilidad es algo que tendrá que ser considerado, pero no va a ser un tema crítico, por varias razones.

  1. No todos necesitarán un nodo completo. Los clientes ligeros ofrecen casi tanta seguridad con requisitos de hardware muy modestos.

  2. No todas las transacciones aparecerán en la cadena de bloques. Hay formas de realizar transacciones seguras, instantáneas y fuera de la cadena que requieren una confianza mínima.