Pieter Wuille en Escala de Bitcoin, Sharding, Sidechains, ETH y más

Pieter Wuille, un hombre fácil de aclamar y alguien que generalmente respeta todos los sabores de los bitcoiners, tuvo la amabilidad de dedicar su tiempo a analizar algunos temas sobre un asunto muy importante, la escalabilidad de las redes informáticas descentralizadas.

El desarrollador de Bitcoin Core y el cofundador de Blockstream pueden no estar familiarizados con los recién llegados, pero él es uno de los desarrolladores clave que trabaja en extender el lenguaje de codificación de bitcoin además de mantener y desarrollar el software principal.

Un software que tiene estado trabajando por ahora cerca de una década. Casi al principio, y aún allí, un puñado es quizás incluso demasiado para contar a los hombres con su experiencia.

Así que presentamos a continuación una transcripción casi completa sin comentarios, y con solo pequeñas modificaciones cosméticas a medida que avanzamos. He tratado de mantener la "sensación" de la interacción en tiempo real para proporcionar el contexto completo y así darle la oportunidad de formar su propia opinión, comenzando como un calentamiento porque las mejores partes están más cerca del final de la discusión:

Hola, quería saber acerca de esta clavija descentralizada de cadena lateral de dos vías, ¿la gente se dio por vencida?

Pieter Wuille: No sé acerca de la gente en general (al menos la cadena de transmisión y algunas otras son todavía lo persigo), pero personalmente he llegado a la creencia de que son una mala idea.

¿Por qué?

En resumen, porque los mineros de la cadena principal pueden robar fondos de la cadena lateral, y los mismos incentivos contra lo que existe en la cadena principal no existe (nodos completos no puede rechazar el robo).

¿Entonces dice que fragmentar es imposible?

Eso depende de lo que llamen fragmentación, y no dije imposible, solo una mala idea. [19659002] Las cadenas laterales que no están protegidas por el hashrate mayoritario pero no por el nodo completo no tienen ese problema.

Pero tampoco tienen ventajas de escalado sobre una capacidad de cadena principal más grande.

Bien en su base Básicamente, estoy pensando en una forma de conectar, digamos, dos conjuntos de nodos mientras sigo bajo las mismas reglas.

No estoy seguro de si está familiarizado con lo que Ethereum está tratando de hacer o con muchos otros proyectos , pero la interoperabilidad entre blockchains básicamente, ¿crees que eso no es posible?

Creo que necesitan esto por razones muy diferentes. Las transacciones de Bitcoin ya pueden validarse en paralelo y siempre lo han sido.

En ethereum, la validez de la transacción depende del estado de la cadena, lo que limita el paralelismo.

El fragmentación puede tener sentido como una forma de evitar eso (aunque yo ' escéptico sobre la logística a su alrededor).

No creo que el fragmentación tenga sentido como un mecanismo de escala más allá de eso.

Entonces, si dices que bitcoin tiene fragmentación, puedes tener 100 nodos con datos x en uno 'red' y otros 100 nodos tienen x otros datos y de alguna manera los combinan para tener una red que ahora puede procesar 2 veces más

Claro. Eso no está implementado para ser claro, pero no requiere cambios de consenso para lograrlo.

Ejecuta dos nodos, cada uno de los cuales conserva el 50% del conjunto UTXO, y solo trata un bloque como válido si ambos dicen que está bien. [19659002] Pero eso es transacciones entrantes, ¿qué pasa con las que deben almacenarse?

No es necesario almacenar transacciones.

Y luego sincronizar nuevos nodos, etc.

Ese es un problema fácil. El almacenamiento y la transferencia masiva de datos es algo que Internet ya resuelve realmente bien. La validación es la parte difícil.

Entonces, la validación es la conexión, ¿no es así, básicamente hacer que estas redes de dos nodos hablen, como hacer que dos computadoras hablen y también la red mundial .

En lo que sugiero, cada nodo aún vería, descargaría y verificaría cada transacción.

Esto no reduce el ancho de banda o los costos de CPU o E / S, solo permite hacer 2 veces el trabajo, con 2 veces el hardware.

Pero esa es la corriente … oh, quieres decir en lo que estás diciendo más los nodos pueden significar más capacidad?

No, creo que es una mala idea. Solo digo que es posible … si los nodos de hardware individuales fueran demasiado débiles para mantenerse al día con la cadena completa, esta idea le permitiría dividirlo en N.

¿Entonces dejó de escalar?

Eso es Una declaración muy incalculable. Creo que los problemas más difíciles a los que se enfrenta el escalado de bitcoins no están relacionados con la capacidad en cadena.

O, más sin rodeos: la capacidad en cadena no escala, punto, ya sea que lo coloque en una cadena lateral o en un fragmento , todavía es efectivamente un problema de que todo el mundo eventualmente necesita verificar todo.

Eso no significa que no haya mejoras posibles a ese respecto, pero en el mejor de los casos son pequeños factores constantes. La escala real del ecosistema necesita otras soluciones.

¿Por qué todos tienen que verificar todo? Si toma bitcoin actual, por ejemplo, de alguna manera el 51% de los mineros es suficiente, ¿no? O puede decir nodos.

Para una validación completa, todos deben validar todo. No creo que todos necesiten ser un nodo completo, pero creo que todos deberían serlo si lo desean.

¿No estoy seguro de lo que quieres decir con validación? En el bitcoin actual, ¿hay una regla del 51% no?

No. Un bloque es válido cuando es válido, punto. Y cada nodo verifica esto independientemente.

¿Cómo lo verifican? Con prueba de trabajo correcta.

Lol, no.

Entonces, ¿cómo lo verifican?

Verificando cada firma, comprobando que no hay gastos dobles en transacciones, que no hay mineros imprimir más de lo que se les permite, … y una docena de otras reglas. Esas son las reglas de consenso.

La prueba de trabajo está ahí para crear un incentivo económico para que los mineros converjan hacia una sola cadena, en lugar de muchas cadenas alternativas que son igualmente válidas.

Bueno, exactamente, algo que todos nosotros de acuerdo como verdad.

Entonces, los nodos completos tratarán la cadena * válida * más activa como la activa, pero nunca aceptarán una cadena con una transacción no válida, sin importar cuánto trabajo tenga .

Pueden aceptar lo que quieran, dentro de una red, lo que nos importa es esa cadena, ¿no? De lo contrario, cualquiera puede codificar su nodo a su antojo.

Cualquiera puede codificar su nodo a su antojo. Pero si quieren permanecer en la misma moneda, sus reglas deben coincidir con los nodos de otros.

Exactamente, y ese es el problema que resuelve PoW.

No, no lo hace. PoW es un desempate.

Un desempate basado en el 51%. Entonces, ¿cómo podemos pasar de eso a todos?

Es una solución al problema de que pueden existir dos cadenas válidas independientes, donde el mismo dinero va a la persona A en una y a la persona B en otra. [19659002] Cuál es EL problema.

Alguien tiene que tomar la decisión sobre cuál de los dos es aceptado. Eso es lo que resuelven los mineros. Usando PoW, de manera descentralizada.

Sí y lo resuelven en un 51%.

Todo lo decide todo el mundo individualmente.

Entonces ¿Cómo llegamos a todos? Pero todos pueden decidir todas las demás cosas de todos modos.

Sí. Pero es caro.

Obviamente, lo que nos importa es el doble gasto. Que no puede imprimir monedas, etc.

Sí.

Entonces, si en la red actual esto se resuelve en un 51%, ¿por qué no podemos tener dos redes donde el 51% de cada una resuelve?

Porque si usted (como red) recibe dos transferencias de la otra red, debe verificar que tampoco sean gastos dobles.

Lo que significa que necesita saber que todo lo que sucedió en esa red era válida.

Lo cual se verifica en la otra red.

¿Cómo sabes si no lo verificas?

No verifico bitcoin , pero lo uso Otros lo hacen.

Eso está bien, otros lo hacen.

Puedo hacerlo si quiero verificarlo, pero obviamente, no verifico qué medicamento obtengo. Especialización laboral, no se puede verificar todo. Obviamente, lo importante es que puede verificarlo si lo desea.

No hay especialización. El problema en un sistema de consenso es que todos tienen que ponerse de acuerdo en todo. De lo contrario, la red se divide a lo largo de las líneas de desacuerdo.

Entonces, ¿por qué deberíamos confiar en los verificadores actuales y no en los verificadores de la red 2?

Entonces usted tiene los verificadores de la red 1 y los verificadores de la red 2 y algunos personas que verifican ambos.

Y el código. Entonces, lo que estamos verificando es la resistencia sybil. Tiene el código, validez.

Cuando una transferencia de la red 2 llega a la red 1, entonces solo los verificadores de la red-1 lo aceptarán ciegamente.

Todos estamos en el mismo código. Lo que estamos verificando es una prueba de trabajo básicamente.

NO. Por favor.

Lo siento, no estoy discutiendo o incluso en desacuerdo, solo conversando, supongo.

Es un malentendido común que la validez de PoW implica validez total, pero la única razón por la que se cumple esta suposición es porque la gente está haciendo la validación completa y rechazaría el trabajo que los mineros crean en un bloque no válido.

¿Cómo hacen la validación completa? El código lo hace.

Sí.

¿Entonces tienes dos redes que ejecutan el mismo código, pero en dos redes PoW, almacenamiento, etc., tal vez?

Es realmente mucho más complicado que eso para asegurarse de que las cosas sigan convergiendo en circunstancias adversas.

Y al final, el resultado es que para tener el mismo nivel de confianza en la validez, debes hacer el doble de trabajo. [19659002] Bueno, eso es lo que quería entender, ¿cuáles son las complicaciones y cómo crees que podrían superarse o crees que no vale la pena intentarlo?

Creo que lo mejor que puedes ganar al hacerlo es un factor constante pequeño y siempre con compensaciones.

Mi interés original en las cadenas laterales no se debió a la escala por cierto, sino a permitir la experimentación con reglas * diferentes * sin necesidad de introducir una nueva moneda primero. [19659002DealgunamaneramuchagentelotomócomounmecanismoparaescalarloquecreoqueesdefectuosositLodeseableaumentarlacapacidaddelacadenaprincipalesunasoluciónmuchomásminimizadaencuantoaconfianzaparalograrlomismoconlosmismoscostos

Pero no puede aumentar la capacidad de la cadena principal, ¿verdad?

Si todos acordó que debería aumentarse, claro que puede.

Bueno, ¿cree que debería aumentarse?

Sí, en algún momento. No creo que haya ninguna urgencia.

¿No sería el problema con eso que tienes que descargar una gran cantidad de datos?

La tecnología mejora. No hay razón por la cual nuestra capacidad de distribuir y verificar no pueda aumentar también.

Pero cada vez hay más datos.

Creo que hay soluciones para eso.

Como qué

En algunas escalas de tiempo, el consenso humano funciona mejor que la tecnología.

Si puede decirlo, obtenga una buena manera de verificar cuál era el estado de la red hace 5 años (imprima su hash en cada periódico, lo que sea …), puede iniciar desde ese punto, sin necesidad de descargar todo el historial antes.

Entonces, ¿cómo lo aumentaría, como sería un porcentaje, tal vez el viejo blando y duro? ¿límite o algo más?

Sí, tal vez un par de% por año, pero eso sigue siendo solo un pequeño factor constante sobre cualquier cosa que no sean grandes escalas de tiempo.

Entonces, si pudieras establecerlo ahora, ¿cuánto crees que debería ser y creciendo en cuánto?

Pasé algunos años de mi vida discutiendo sobre ese tema; No planeo hacer eso de nuevo. Puedes encontrar propuestas con mi nombre.

¿Estás familiarizado con lo que Eth está tratando de hacer con respecto al fragmentación, qué piensas de sus planes?

Creo que su necesidad de el fragmentación se debe a un problema diferente al que tiene el bitcoin, lo que puede justificarlo. Más allá de eso, creo que es una máquina rube goldberg.

¿Cómo crees que podrían hacer que estas diferentes redes hablen, crees que incluso pueden hacerlo?

Realmente no me importa .

No, solo me pregunto si pueden, ¿por qué no puede Bitcoin?

Bitcoin no lo necesita; Creo que lo mismo se puede lograr aumentando la capacidad; lo mismo no es del todo cierto para la ética porque la validación de transacciones no es tan paralelizable. Más allá de eso, creo que es una mala idea como se dijo.

Entonces, no soy muy técnico, ¿qué hace que utxo sea más paralelo a las cuentas?

No es tanto debido a utxo vs cuentas Se debe a que el sistema de script tiene acceso al estado . Este no es el caso en bitcoin.

Si le doy una transacción (y los datos potenciales no confirmados de los que depende), puede validar sin ambigüedades de una vez por todas si esa transacción es válida o no de una manera que nunca cambio.

Por supuesto, solo puede incluirse en el mismo una vez que existan todos los resultados que gasta (doble protección de gasto), pero la validación es algo que puede hacer en paralelo con otras transacciones.

En ética, las transacciones modifican un estado global y la validez de una transacción futura (así como sus efectos) dependen de ese estado que introduce inherentemente un requisito de serialización … las transacciones pueden ser válidas en algún orden, pero no en otro orden

Bitcoin, por supuesto, también tiene un estado global (de lo contrario no se puede proteger contra el doble gasto) pero es extremadamente restringido; es independiente de su sistema de script, y solo explica 'si esta moneda está disponible o no'

Entonces, para aclarar aquí, ¿quiere decir que este no es el caso en eth o en bitcoin [quoting]: es debido a que el sistema de script tiene acceso al estado . Este no es el caso en bitcoin.

En ética, la VM tiene acceso al estado global. En bitcoin, el script no lo hace.

¿Entonces, básicamente, su solución a la escalabilidad es imprimir el último bloque en un documento?

Esa es otra vez una declaración muy incalculable. La escalabilidad significa docenas de cosas diferentes.

Si está hablando específicamente sobre el problema de la necesidad de descargar y verificar un conjunto de datos cada vez mayor al unirse inicialmente a la red, creo que una de las soluciones es tener compromisos de historia públicamente verificables , y arrancando esos.

Esos compromisos pueden tomar muchas formas.

Entonces, ¿cómo harías ese arranque técnica y prácticamente hablando? Digamos que el documento de registro tiene el último bloque, ¿cómo pueden los nodos acceder ahora a este documento?

Su software le muestra el hash que descargó de la red y le pide que lo compare con lo que encontró en otro lugar. O incluso está incrustado en el software. Mire el proyecto "Asunciónutxo".

¿Quiere decir que necesita un oráculo?

No sé a qué se refiere con eso. ¿Obtuviste el software de algún lado, verdad?

¿Eso no convierte al sitio en el nuevo comité?

No es más que el proceso que hace que encuentres el software (que incluye compilaciones reproducibles) de código fuente abierto, revisión auditable, …)

¿Entonces dices que básicamente lo fusionas en Github? Y luego tal vez pida a alguien que archive la vieja historia.

Siento que está tratando de poner palabras en mi boca.

No, no estoy preguntando, no tengo vista. Solo aclarando y tratando de ver cómo puede funcionar realmente.

Mi punto es que en alguna escala de tiempo, los humanos ya tienen procesos para obtener la información correcta; de lo contrario, Bitcoin no estaría funcionando en primer lugar.

No sé cuál es esa escala de tiempo, pero en algún momento, inherentemente, ya no se gana mucho al validar infinitamente atrás.

También creo que esto es solo un problema menor: la cuestión de cómo escalar una economía wrt la capacidad en cadena es mucho más interesante.

FIN

Wuille dijo que tenía otros asuntos que atender, por lo que no podríamos llegar a ese nivel de economía, tal vez en otro momento.

Derechos de autor Trustnodes.com