Elemento, a ver si puedes aclararme alguna cosa del proceso por acabar de enterarme.
Antes de segwit cuando un nodo propagaba una transacción por la red, esta transacción iba con sus firmas, y el resto de nodos la validaba (básicamente comprobaba que había utilizado su clave privada para firmar una transacción sobre unos bitcoins que poseía en su dirección pública). Si al minero le interesaba la incluía en el bloque que minaba y escribía en la blockchain la información acerca de que dirección había enviado cuantos BTC a que otra dirección junto a las firmas. En cuanto el bloque se escribía el minero lo enviaba a los nodos de la red que validaban que no hubiera trampas y a su vez retrat el bloque como válido, haciendo que todo el mundo tuviera la misma cadena de bloques consensuada.
Tras segwit, lo que tengo entendido es que las firmas de las transacciones se sacaron de la blockchain pasando a otro fichero, y la validación de las firmas solo es necesario que la haga el minero, el resto de nodos puede escoger entre validar o pasar de la validación y solo mantener la BC con las transacciones sin firmas.
No, no es exactamente así. Una transacción SegWit, a ojos de un nodo no-segwit, es una transacción "no estandar". Esta transacción segwit es como una transacción truncada en la que, la información de la transacción va por un lado, y la parte de las firmas iría por otro lado.
Que esta transacción sea considerada como "no estandar" por parte de algunos nodos, lo único que significa es que ellos no la retrnasmitirán, pero sí que la aceptarán como perfectamente válida (incluída la parte de la transacción truncada que corresponde a las firmas) cuando sea incluída en un bloque de la cadena de bloques.
Por eso es compatible con nodos antiguos (no-segwit) porque, aunque considerada como no-estandar, es aceptada una vez ha sido incluída en la cadena.
De esta forma, son los nodos SegWit los que descargan, validan y retransmiten la transacción completa, mientras que los nodos antiguos sólo descargan la información referente a la transacción, pero no la verifican ni la retransmiten.
De todos modos, ya creo que apenas existen nodos en la red que no sean compatibles con SegWit.
Si por ahorrar recursos se produce un escenario en el que más de la mitad de los nodos decide pasar de validar el fichero de firmas y solo unos pocos siguen validando, podríamos tener transacciones falsas validadas por una mayoría de la red.
Esto tampoco es cierto. Lo que puede ocurrir es que, si tu acceso a la red Bitcoin se realiza a través de un nodo con software pre-segwit y te llega una transacción de importe considerable en una transacción SegWit, deberás esperar algunas confirmaciones por parte del conjunto de la red porque eres tú mismo el que no estás descargándote la parte "witness" del bloque para poder verificarlo.
Eres tú el primer interesado en descargarte las firmas para verificar la transacción...o no aceptar transacciones SegWit como forma de pago.
Pero problema de seguidad para el total de la red, no habría ninguno.
Supongo que esto no es así, porque sería un coladero de transacciones ilegítimas, es decir, no se puede dejar que el minero sea el único que valide una transacción, pero me gustaría que explicaras como va ahora tras segwit, porque si no sería una irresponsabilidad el sacar las firmas de la cadena de bloques sin forzar que todos los nodos validen el fichero anexo de firmas.
Pues va de la siguiente forma:
Siempre ha existido la posibilidad de construir transacciones "no estandar", lo que pasa es que no era sencillo de realizar mediante los clientes habituales porque están capadas para que la gente no se equivocase y para simplificar el funcionamiento de Bitcoin. Esto es comprensible porque, si la mayoría de los nodos y mineros emplean el cliente Core capado y tú intentas retransmitir a la red una transacción no estandar, esa transacción nunca podría ser incorporada a un bloque a no ser que tu nodo estuviese conectado directamente con un pool de minado que esté dispuesto a aceptar y minar transacciones no estandar (como por ejemplo, Slush) o te la tenías que minar tú mismo.
Pero, como el SegWit es un avance tan importante y soluciona tantos problemas de una tajada, pues el cliente Core ha sido modificado para incluir esta transacción no estandar en particular y, como la mayoría de la red funciona con el cliente Core, ahora las transacciones SegWit sí que se retransmiten y se minan con facilidad.
De todos modos, creo que la parte "witness" de una transacción SegWit sigue estando dentro de la cadena de bloques. No es que se haya sacado fuera físicamente de la cadena (si en esto estoy confundido, que alguien me rectifique).
Pero por otro lado, si con segwit todos los nodos al final van a tener que seguir validando las firmas y mantener tanto la Blockchain (con sus bloques de 1MB) más el fichero de firmas, al final lo que tenemos es que los nodos sí han tenido que subir sus requisitos de sistema que era lo que core decía que no se debía hacer para que no se redujeran y se mantuviera la red descentralizada.
Pero aquí hay que realizar una salvedad importantísima.
Precísamente, de todos los cuellos de botella que pueden afectar a los nodos, el menos importante sería el del tamaño del disco duro necesario para albergar la cadena de bloques.
Algunos de los verdaderos cuellos de botella de la red Bitcoin sí que se ven mejorados por el SegWit, como serían el aumento de la cantidad de transacciones que caben de forma efectiva en los bloques, la posibilidad de poder realizar de forma segura transacciones fuera de la cadena mediante la lightning network al solucionar el inconveniente de la maleabilidad de las transacciones, la solución al incremento cuadrático en el tiempo de validación de algunas firmas, etc.
(Quizás el fichero de firmas se puede truncar y solo hace falta mantener las firmas de los X últimos bloques, eso tendría sentido, pero un nodo completo que quiera mantener todas las firmas va a tener que incrementar su almacenamiento sí o sí).
El tamaño de almacenamiento no es un cuello de botella preocupante en Bitcoin. Es mucho más preocupante el ancho de banda que se consume o el incremento cuadrático en los tiempos de verificación de firmas.
Tienes que estar registrado para ver este contenido
Bueno, estas son las dudas que me surgen, a ver si tu o alguno de los veteranos que os explicáis tan bien y nos hicisteis a muchos entender qué era BTC me podéis acabar de aclarar estas dudas.
Las dudas son lógicas. Hay mucha desinformación con el SegWit.