Home < Bitcoin Core Dev Tech < Bitcoin Core Dev Tech 2023 (Apr) < Bitcoin Core Dev Tech 2022 < Bitcoin Core Dev Tech 2019 < Bitcoin Core Dev Tech 2018 (Oct) < Bitcoin Core Dev Tech 2018 (Mar) < Bitcoin Core Dev Tech 2017 < Bitcoin Core Dev Tech 2015 < Bitcoin Explained < Bitcoin-designs < Bitcoin Magazine < Andreas Antonopoulos < Austin Bitcoin Developers < Advancing Bitcoin < Baltic Honeybadger < Misc < Chaincode Labs < Lets Talk Bitcoin Podcast < Greg Maxwell < Bit Block Boom < Varios

Varios

Fecha: October 10, 2022

Transcripción De: Bryan Bishop

Traducción Por: Blue Moon

Tags: P2p, Bitcoin core

Categoría: Core dev tech

Red de confianza

Algunos de los operadores de servidores de clave pública interpretaron el GDPR como que ya no pueden operar infraestructuras de clave pública. Tiene que haber otra solución para la distribución p2p de claves y Web-of-Trust.

bitcoin-otc sigue siendo la web de confianza PGP que opera desde hace más tiempo utilizando infraestructura de clave pública. Rumplepay podría ser capaz de arrancar una web-of-trust con el tiempo.

Direcciones invisibles y pagos silenciosos

He aquí algo controvertido. Digamos que mantienes un mapa en memoria de todas las direcciones que ya han sido usadas. Esas definitivamente no son para ti si son direcciones reutilizadas, porque no haces eso. Y esas son la mayoría de las direcciones. Esto te ahorrará en qué transacciones miras; no puede ser tu salida. Esto también crea un incentivo para convencer a otras personas de reutilizar direcciones porque reduce tus costes de escaneo. Puedes hacer un filtro bloom de todas las direcciones reutilizadas y comprobarlo. Bueno, puedes tener falsos positivos, así que eso jode el filtro bloom. Es como una lista de letras escarlata. Aquí está toda la gente mala, ¿verdad? Si lo implementas correctamente, las direcciones son probadamente únicas.

El verdadero 0conf debería ser “sólo envía la clave privada”. Eso es incluso más rápido que 0conf. Me pregunto por qué ese no fue el punto de esquematización en torno al cual la gente se organizó.

Redes de tráfico anónimo

Anonimizador de paquetes usando un HSM: la privacidad del tráfico está protegida por la raíz de confianza del HSM. Utilizar un HSM para enrutar el tráfico anónimo. Esto podría diseñarse de forma que sea más fácil detectar si alguien está manipulando una red, o crear un incentivo o presión para hacer raíces de confianza más fuertemente protegidas, como raíces de confianza descentralizadas acordadas por grupos.

Firma a mano

Una idea es cifrar/descifrar a mano y exportar el proceso de firma a un ordenador utilizando un cifrado totalmente homomórfico. Podrías sustituir el algoritmo de firma por una versión totalmente homomórfica del algoritmo de firma. O si se trata principalmente de cálculos de celosía, entonces puede ser posible hacerlo a mano. Digamos que obtienes un blob encriptado completamente homomórfico y entonces sólo hay un algoritmo que puede ejecutarse en él para escupir 0 o 1 para la verificación.

¿Tal vez si tienes un programa completamente encriptado homomórficamente, y luego el programa no puede ser modificado eficientemente por otras personas? ¿Necesitas una prueba de conocimiento-cero de verificación de firma? ¿O habría que ejecutarla a mano? Necesitas una prueba de ejecución correcta que es difícil de evitar.

¿Podrías encontrar una curva que fuera más fácil de hacer a mano? Quizá una curva binaria sobre un campo binario. El campo base en vez de ser un primo grande sería un campo de Galois con 2^256 elementos o algo así. No sé si las operaciones son más fáciles de hacer allí. Supongo que a los humanos les resultaría más fácil operar en base 10. El material existente que tiene Andrew funciona sobre el campo de 32 elementos. Pero entonces hay maquinaria extra con la que trabajar…

Sugerí hace mucho tiempo, ni idea de lo factible que es, utilizar ayudas mecánicas. Hay ordenadores que pueden evaluar las transformadas de Fourier. Hay algoritmos de multiplicación que se basan en transformadas de Fourier. Como máquinas de cuentas o hardware mecánico. Algo así tal vez podría hacerse funcionar. Es cuestión de tiempo. Evaluar una multiplicación escalar de un punto de curva implica algo así como mil aproximaciones de Fourier… cada punto es 10, así que hay 100 de ellos, así que hay alrededor de 1.000.

Ayer hablábamos de esto. Podrías precalcular… podrías tener tablas de cálculo para todas las potencias ya escritas en un libro y tal vez podrías hacer las cosas más eficientemente de esa manera. Parece que sería fácil poner pequeños errores que resultarían en valores erróneos que filtrarían información.

El mejor caso sería como una comprobación de emparejamiento. ¿Qué tan difícil es hacer un cálculo de emparejamiento a mano? Es mucho más caro que hacer una simple suma de puntos, ¿pero quizás es mejor que una multiplicación de puntos? La parte cara de calcular un emparejamiento es que el emparejamiento de BLS-12, por ejemplo, entra en un campo de tamaño p^12, así que hay un valor r de unos 256 bits que divide p^12 - 1. Así que hay que multiplicar p^12 - 1 dividido por r, que es un valor de aproximadamente 2000 bits o algo así. Es una gran exponenciación.

La verificación de Bulletproofs a mano sería como Sysphus empujando un bolder a mano. ¿Hacer multiplicaciones de 1000 puntos a mano? Cometes un pequeño error y se acabó. Si cometes un pequeño error, ¿todavía tienes un punto en la curva? Si cometes un pequeño error, depende de cómo lo hagas. ¿Un error aleatorio? Si eliges una x al azar, hay un 50% de posibilidades de que sea un punto de la curva. ¿Pero una x y una y aleatorias que tú elijas? Lo más probable es que no sea un punto de curva.

Algo que pudieras calcular a mano y que hiciera más fácil verificar pruebas de conocimiento-cero a mano sería probablemente útil para mejorar las verificaciones de conocimiento-cero en ordenadores, ya que sería más fácil.