Ok, de hecho estoy de acuerdo en que ahora mismo no hay otra cosa diferente al PoW que funcione de forma descentralizada y segura. Pero eso sería otro debate.
Ahora de lo que intentaba enterarme es del tema de si es necesario un histórico para poder tener un nodo completo que valide la cadena de bloques.
Yo entiendo que en Ethereum no es necesario tener el histórico de todos los estados, igual que en Bitcoin no es necesario conservar las firmas de todas las transacciones durante la eternidad.
En Ethereum lo que importa es que el saldo de una cuenta ahora es 16, eso lo han de validar los nodos y actualizar en el momento en que cambie, da igual que el saldo de esta cuenta en el pasado fuera 5, 80 o 15 si en su momento ya se validó aquello.
Pongo "saldo de una cuenta" para que resulte más sencilla la analogía, pero igualmente se podría sustituir por "valor de una variable" en un entorno que pretende ser liquidar programas como Ethereum.
No es necesario, ni tiene sentido almacenar todos los estados por los que pasaron cada una de las variables/funciones/programas/cuentas/etc. Por eso no veo la gravedad de lo que comentaba bmbnct sobre los archival nodes.
Y asumo que puedo estar equivocado, pero me gustaría saber los motivos.
Lo mejor de este hilo es lo que he aprendido de los grandes divulgadores como tú mismo, remonster, bluearrow, etc.
Me gusta cómo te planteas estas cuestiones. A mi entender, la tuya es la forma correcta de aproximarse a las criptomonedas (hay que realizarse las preguntas correctas, ser exigente e inquisitorial a la hora de investigar sobre qué es lo que hace a una criptomoneda ser verdaderamente una criptomoneda).
Te voy a intentar explicar el asunto de la misma forma que yo conseguí entenderlo.
Como ya te he dicho, la forma correcta de aproximarse a las criptomonedas es realizándose preguntas. ¿Qué tipo de preguntas? Pues, cuanto más fundamentales, mejor. Bien, pues la pregunta más fundamental de todas es... ¿Qué es un bitcoin (en minúsculas)?
Y no, no estoy hablando de la típica definición de Bitcoin que podamos vomitar como un papagayo.
Cuando hablamos de Bitcoin (en mayúsculas), hablamos de consenso, de teoría de juegos, de protocolo, del problema de los generales Bizantinos, etc. Por lo tanto, un bitcoin (en minúsculas) serán aquellos únicos bits de información, aquellas unidades de cuenta, que la red Bitcoin logre consensuar en cada "informe sobre el estado del sistema" que dé periódicamente y que hayan tenido un origen conforme con el protocolo.
He ahí la clave del por qué no puede haber "balances" en cuentas de Bitcoin. Un balance implica una "foto fija" que alguien debería de creer cuando accede al sistema cosa que, como seguro que ya intuyes, es absolutamente contrario a los principios que rigen Bitcoin. Un bitcoin sólamente es un bitcoin si su incorporación al sistema y su movimiento posterior a través de las direcciones, han sido realizados estrictamente conforme a las normas que rigen el protocolo Bitcoin y que todos aceptamos al 100%.
No valen checkpoints, ni atajos. Yo sólamente utilizaré bitcoins cuyo "nacimiento" respete escrupulosamente las normas que he aceptado al instalar el cliente Bitcoin. ¿O acaso tú aceptarías lo contrario? Seguro que no.
Y la única forma realmente descentralizada de poder comprobar esto que estoy diciendo es que tu propio nodo pueda comprobar fehacientemente, remontándose hacia atrás a través de la cadena de bloques, que los bitcoins que constan en tus direcciones, fueron creados y transferidos al 100% conforme el protocolo determina.
Si yo acabo de entrar en el mundillo Bitcoin y me he instalado un protocolo que he aceptado y dice que los bitcoins que se van incorporando al sistema son entregados a los mineros que colaboran en su seguridad... quiero comprobar escrupulosamente que esto mismo ha ocurrido con todos y cada uno de los que hay en circulación.
Si yo acabo de entrar en el mundillo Bitcoin y el protocolo que he aceptado dice que las transacciones compiten por un lugar en los bloques en igualdad de condiciones y a través del pago de comisiones en condiciones de libre mercado... quiero comprobar escrupulosamente que esto siempre ha sido así.
Y esto sólamente puede conseguirse de forma descentralizada si cualquier nuevo nodo que ingresa el sistema es capaz de comprobarlo por si mismo a través del encadenamiento de las transacciones que se muestra en la cadena de bloques hasta el mismísimo bloque génesis.
¿Que este sistema puede ser ineficiente con respecto a un sistema "de balances" como el que presentan los bankitos? Puede ser. No lo pongo en duda. Pero un sistema descentralizado no te ofrece eficiencia, lo que te ofrece es libertad y la capacidad de no tener que confiar en nadie. Ni siquiera en nadie que te ofrece "un balance".
Y en Ethereum pasa tres cuartos de lo mismo. Sólo puedes estar seguro de que los ether que estás utilizando fueron generados conforme a las normas del protocolo si eres capaz por tus propios medios de poder remontarte a través de la cadena de bloques hasta el bloque génesis que los vió nacer.
De lo contrario el "hamijo" Vitalik todavía tendría muchísimo más poder del que ya hoy en día abusa.