ZK Workshop #4 - Esquemas de compromiso
ZK Workshop — Ethereum Uruguay · 1:24:57
The fourth zero-knowledge workshop explains commitment schemes and how they let a prover send values to a verifier in a verifiable form.
Speakers
Topics
From ZK Workshop — Ethereum Uruguay, hosted by Ethereum Uruguay.
Transcript
Ah muy bien Bueno de vuelta ya saludamos Ya estuvimos Charlando Así que vamos un poquito ya con con la clase este bueno simplemente a modo de repaso charlemos un poquito de las cosas que vimos hasta ahora a ver si si venimos como alineados hay alguna cosa que capaz que genera dudas lo que hablamos Hasta ahora es que las pruebas de conocimiento sí son un protocolo que tiene algunos pasos sí que empieza con eh una especie de compromiso del probador para para que no pueda falsear pruebas y que después
sigue con una especie de Reto challenge del verificador que es respondido por el probador de una forma en la que demuestra cierto conocimiento de algo entonces para eso vimos que en el caso general se podía construir este tipo de protocolos con este zigzag para distintos casos mencionamos el caso de del logaritmo discreto en el primer protocolo que vimos que nos sirvió de ejercicio pero después dijimos que para generalizar empezamos a tratar de escribir afirmaciones en en modo de circuitos sí y que después lo que Nuestro objetivo va a ser procesar esos circuitos de alguna manera para obtener eh algo que de alguna manera probara que
esos circuitos están bien computados y en ese proceso estamos diciendo que los inputs del cómputo son válidos y eso es el objetivo de todo esto terminamos la clase pasada diciendo que habíamos llegado como por lo menos a ver capaz que lo tenemos que repasar pero a ver cómo era la parte de la verificación no O sea que nos llegaba información y nosotros Cómo eran los mecanismos para validar que un cómputo estuviera bien hecho y Ahí vimos que habí algunas un teorema lema eh que tenía que ver con la divisibilidad de polinomios hablamos de polinomios Eh y además lo que nos está faltando es ver
la parte esa inicial donde hay un compromiso entonces eso es como el panorama general antes de de empezar quería charlar un poco sobre polinomios Sí porque lo presenté como algo así medio natural pero capaz que no no Estamos tan acostumbrados a o hicimos la última que hicimos polinomio en el Liceo fue hace muchos años entonces comentar algunas cositas n más a modo de repaso s medio rápido y ya vamos con los polinomios si escribo acá se ve bien Ahí me dic la llamada
perfecto bien entonces los polinomios son una función una función es una especie de cajita que recibe un input y ocupa un output ent son una función que tiene una forma muy especial si no tiene exponenciales locas ni logaritmos nada exótico lo que tiene son términos que son de la forma ao subíndice i x alguna potencia está y tiene muchos de estos o sea es una sumatoria de estos donde alguno de estos términos de acá puede ser cero entonces cancela el
el término ese no Entonces lo lo interesante esto lo tendría que haber escrito ya lo interesante acá es que los polinomios son muy fáciles de estudiar en términos de de sus raíces y Qué es una raíz de un polinomio alguien me comenta o de una función en general claro una raíz es un valor x y tal que el polinomio Vale cer0 entonces es como los puntos en donde un polinomio corta con el eje son estos de
acá y las raíces nos permiten como vimos varias veces descomponer al polinomio como en partes y la divisibilidad de los polinomios que tiene que ver con esta idea de componerlo en partes Es lo que nos permite empezar a construir este tipo de cosas s donde demostramos que algo es igual a otra cosa porque hay una relación de divisibilidad con esto quiero decir si nosotros tenemos un polinomio no que tiene una cierta raíz vamos a llamarle r vamos a decir r es raíz de p entonces lo que pasa es
que nosotros podríamos llegar a escribir p como y acá está no sé si Espero que se esté viendo si no Me comentan p lo podemos escribir como x- r que r es la raíz por algún otro polinomio x y ese polinomio x es lo que llamamos el cociente de la división de este por este si no fuera divisible aparece otro término que es el resto esas fueron algunas ideas que medio capaz que las hablamos medio por arriba pero creo que está bueno como ir
martillando as vamos vamos recuperando esa esa práctica No bien entonces dos cosas que quería decir sobre los polinomios la primera es que esta no es la única aplicación en criptografía de polinomios les voy a nombrar dos más que creo que son muy interesantes y las pueden bichar después una es algo que se llama no es la traducción en español pero se llama coding alguna vez escucharon eso imagínense que ustedes tienen una fuente de datos no que está muy lejos de otra y se va a enviar información por ejemplo
el espacio No acá en un planeta en el camino se puede perder información y esto Igual pasa planeta tierra no O sea entonces como se pierde información si yo mando toda la información en una sola pieza puede ser que eso sea problemático porque se pierden cosas en el camino y bueno pierde información entonces una cosa Se puede hacer es romper la información original en varias partes y decir Bueno mira eh yo que sé son cuatro partes viste capaz que pueden ser más pero son cuatro partes lo que voy a hacer es te voy a mandar estas cuatro partes de alguna
manera Pero como si una Se pierde se pierde todo lo que voy a hacer es como meterle una especie eh de redundancia o sea te voy a mandar en vez de cuatro voy a mandar unas cuantas más está sí Y saben Cuál es la manera de hacer eso con un polinomio nosotros vamos a agarrar estos cuatro elementos que lo voy a llamar eh Me voy a llamar D1 d2 D3 y d4 y lo vamos a codificar algun algunos valores o sea vamos a encontrar un
polinomio tenemos que x1 es de1 y así hasta x44 cuando encontremos este polinomio que es único para estos valores ser de grado hasta 3 lo que voy a hacer es agarrar otro conjunto de y1 y2 muchos puntos y voy a calcular todos los valores de los polinomios para ellos y te voy a mandar todos estos valores saben qué es lo interesante que si llean solo cuatro yo puedo reconstruir el
polinomio Sí y puedo buscar estos índices y recuperar la información original ah sea con cualquiera de estos valores puedo recuperar el polinomio original interpolando y como yo s dónde Buscar en este caso voy a recuperar la información realidad no es que busques estas cosas y no es así como lo escribí pero más o
menos les esto esto en realidad van a ser los coeficientes del polinomio y después genero puntos pero la es la misma o sea no va por ahí la persona no tiene por saber estos valores en realidad Ok y después otra aplicación que es muy interesante momento Ah bueno sonó como Ah otra aplicación que mu interesante de polinomios que habrán escuchado por ahí es una cosa que se llama mpc suena m
computation en donde lo que pasa es que por ejemplo se forma una firma distribuida no entonces hay actor que está acá y forma una parte de una firma otro que está acá y forma otra parte de otra firma está y sin entrar en detalle está S4 y Acá hay otros actores que no participan de esto sin entrar en detalle lo que pasa es que estos se van hablando entre ellos y se mandan información de esas firmas producidas hay más pasos en el medio pero después lo que termina pasando Es que ellos interpolan todos
estos valores los interpolan con su índice aparte no O sea que esto es p de un es esto y así sucesivamente interpolan esto y les da un polinomio está donde el polinomio va a tener varios términos no pero este es la firma compartida está no importa cómo eso hacemos otro curso para esto pero pero lo que les quiero decir es que se usan polinomios para hacer eso se empiezan a hablar y después el resultado final es interpolar y la gracia es que con menos puntos de los de los necesarios digamos que el número el thres es conocido no se puede
reconstruir el polinomio y con más sí Entonces hasta un cierto punto No hay forma de reconstruir después sí está son unas ideas n más para que se lleven no no no quiero profundizar pero para que sepan que son una herramienta importante en criptografía Sí así que bueno un pequeño impaz pero que no haya sido un desvío muy grande Me parece que no pero entonces volviendo un poco al tema no hoy vamos a hablar de la parte del compromiso sí Entonces yo acá puse un poco un recap de lo que venimos hablando eh
y bueno nos falta esta parte no en la construcción La pregunta era Por qué es importante esa parte Qué papel juega Por qué tenemos que hacer un compromiso para para chequear cosas que en realidad ya vimos como Cómo chequear se acuerdan eso de de las igualdades entre polinomios y esas cosas Pero de alguna manera falta una cosa un detalle se les ocurre qué puede ser ese detalle como vamos a trabajar con esto Bueno un poco s un poco s o sea la cuestión es la siguiente si Acá está el
probador y AC está el verificador este En algún momento le va a preguntar poner PR va a pedir ciertos valores no pedir ciertos valores y este le va a responder algo a decir este es px pero yo no yo no Confío en vos Cómo sé que no me estás mandando fruta no me estás mandando cualquier valor que pase mis verificaciones Bueno ahí donde entra en juego el compromiso compromiso juega un papel de que este sin confiar en este puede tomar este valor y decir si no me mandaste fruta es por ahí el asunto entonces Ese
es nuestro objetivo para hoy y es el último elemento que nos falta para para poder completar nuestras nuestras pruebas vamos a ver si la clase de hoy la puedo terminar antes de dos horas entonces acá puse un poquito lo que hablamos recién hay un commitment de alguna manera que ahora vamos a ver y después Virginia le pide un valor de p evaluado en un cierto punto challenge y Pablo responde con el valor una pequeña prueba que es como un recibo de Che Esto está bien calculado Y vos agará esa prueba siendo Virginia decís a ver la comparo con algunas cosas está bien estamos bien eso lo puedo hacer en veces sí Hasta que esté convencido
este tipo de construcción e en donde yo le pido valores está a un a una a otra parte no a otro a otro jugador y me empieza a responder yo aparte puedo validar lo que me está diciendo es un un tipo de construcción típica de esto que se llama eh pruebas eh interactivas interactive proof pruebas interactivas de oráculo está que también se puede usar para otros propósitos es un elemento de teoría de información en realidad pero justamente Pablo en este caso funciona como un oráculo como algo a lo que yo les pido datos como si le pidiera precios de cosas lo que pasa es que esos precios yo no es que confíe vos
estoy chequeando que están bien Es es como el elemento agregado por eso no es un oráculo solo bien ex oráculos centralizados momento Sí sí un montón pero no en blockchain capaz claro o sea en blockchain hay oráculos Igual también pero exist un montón antes cualquier servicio de consultoría consultoría para consultar de cosas es un oráculo este o para consultar el estado de cosas es un oráculo en blockchain muchas veces lo que pasa es como la blockchain obviamente no tiene la capacidad de
publicar cosas por sí misma yar información suelen haber agentes que publican información a modo de oráculo entonces vos consultas eso de smart contracts y confias en que se está puyando la información correcta con algunos elementos que permiten auditar Si se quiere este por ejemplo chink hace algo eso as que pueden bien pero esto es como como una construcción distinta No la vamos a usar en este contexto simulando ser un oráculo voy pedir a Pablo información Pablo me va responder en el modelo interactivo sabemos que lo podemos transformar bien estamos bien Con con
este objetivo para hoy buenas Entonces qué es lo que queremos queremos que antes de yo empezar a pedir la información a a esta esta persona que es el oráculo que es el probador yo quiero que se comprometa los polinomios que él construyó Entonces no olvidemos como Cómo era este asunto no O sea teníamos el probador Ahí está teníamos el probador que por este lado tenía un
circuito no con cositas adentro que ya sabemos cóm es la mova Y entonces este iba a procesar esto iba a obtener una serie de polinomios en el caso de plon se acuerdan que habían unos polinomios y lo que va a hacer este de acá es empezar a pedirle valores de estos polinomios Pero para que no me puedan dar cualquier fruta lo que yo le pido antes es Che Mandame alguna cosa que te haga comprometerte estos polinomios o sea vos sabes estos polinomios Okay mame un recibo sí que diga que vos ya lo sabés está y cada vez que yo te pida algo
mándame un pequeño recibo más que yo lo voy a poder comparar con esto y decir Okay no los cambiaste está va por ahí el asunto Sí el tema es que para poder hacer esto precisamos herramientas nuevas ya estamos cansados en este momento yo sé que sí pero no queda de otra Así que vamos ahí hoy es la última clase donde vamos a introducir conceptos así matemáticos nuevos Así que relax como me dijeron ayer en el trabajo y me acordar chil de tranquilos estamos bien así que vamos arriba ya lo primero que vamos a hacer es hablar de grupos ya los hemos venido nombrando Los
dejé para ahora particularmente porque vamos a hablar de algunos grupos particulares justamente y me interesa que tengamos fresco las nociones de teoría de grupos como para poder trabajar esto bien y entender Qué es lo que está pasando grupos son los grupos son conjuntos también acoplados con una operación el caso de campo finitos teníamos cuatro operaciones suma resta multiplicación y división entre comillas en caso de grupos tenemos una sola y como estuvimos hablando bueno no
perdón no voy a decir esto porque hay una sl entonces un ejemplo de un grupo puede ser el mismo conjunto con campo finito con el c0 incluido 1 2 3 hasta p -1 si nosotros usamos este conjunto y usamos o la suma o la multiplicación cualquier suma de dos elementos módulo p vuelve a estar en el conjunto y cualquier multiplicación de dos elementos módulo p vuelve a estar en el conjunto incluido el c porque 0 * 2 es 0 módulo p es 0 está en el conjunto okay y se escribe así hay diferentes notaciones pero el grupo G se con esa
eso se llama negrita de pizarrón blackboard me acuerdo Cos Pero la idea es tenemos el conjunto y la operación Y esa dupla dupla es el grupo en hay muchos ejemp de grupos interesantes de hecho el otro día me surgieron unas dudas ahí pensando algo y y me puse a ver cómo se define el grupo de un cubo de Rubik que traje el otro día se acuerdan Entonces es muy interesante Cómo se define ese grupo si quieren después lo charlamos pero hay
cosas que se comportan como grupos y está bien Entonces ustedes me dirán Bueno pero Franco eso es un campo finito aparte más O sea más que un grupo por qué lo vas a restringir a eso está bien Es verdad capaz que no sirve en algún caso que no pero lo que si les pregunto es si yo saco el cero esto admite suma y [Música] multiplicación no parece que no no el cero va form má
parte y no está no está Exacto que es lo mismo que decían acá justamente el podemos tomar cualquier elemento y hay como otro elemento en el conjunto que lo Cancela da cero y cuando tomamos módulo p cer no está en este conjunto por lo tanto la suma no la admite solo admite multiplicación Entonces en este caso no tenemos algo que se comporta como un campo sino que tenemos algo que se comporta como grupo naturalmente no Entonces si tenemos un elemento Ah bueno perdón eh que que de qué voy a hablar de generadores Eh qué pasa la estructura de grupos está hace que aparezcan algunas
construcciones alrededor que son interesantes e importantes está entonces una de ellas es la idea de generadores grupos Ah Qué quiere decir un generador simplemente un elemento de grupo no tal que tal que cuando yo empiezo a aplicar la operación de grupo una y otra vez empiezan a aparecer elementos nuevos del grupo y llega un punto en el que aparecen todos los elementos del grupo está si existe un elemento Así es un generador del grupo está y se escribe así con esos corchetes eh es está bien acá estoy haciendo G al
cuadrado g a la TR eso pero siempre estoy multiplicando G por g g por G por G le estoy agregando uno más no entonces La idea es esa no partimos de G y obtenemos todo el conjunto casi por arte de magia eh pero algo que puede pasar Es que no todos los elementos de un conjunto generen todo el conjunto hay ciclos a veces por ejemplo recién veíamos un ejemplo eh estamos Charlando un poquito algunas dudas antes de la clase y y les ponía un ejemplo a los chicos
donde nosotros tenemos con ejemplo el conjunto 1 dos 3 4 C si vamos a operar módulo 6 y vamos a partir de dos Está bien entonces cuál es el conjunto generado por dos conjunto generado por dos es bueno 2 a la 1 o sea el primer elemento siempre el mismo es 2 porque 2 módulo 6 es 2 el segundo elemento es 2 a la dos que
es 4 módulo 6 4 no el tercer elemento es 2 a la 3 que es 8 módulo 6 es 2 pero dos ya está en el conjunto y esto se repite si si calculan con 16 van a ver que da lo mismo da cu 16 es 12 16 - 12 me cre pero lo que quiero decir con esto es fíjense que esto generó un conjunto si pero este conjunto es un subconjunto de este no es todo el conjunto por lo tanto el conjunto de genera dos el grupo de
genera 2 es este subgrupo se llama y tiene propiedades de grupo pero no es el grupo original O sea que G en este caso 2 no es un generador de todo el conjunto interesante de tener eso presente para para entender después algunas estructuras o o cuentas que surgen que ya vamos a usar Está bien entonces Bueno llegó el momento vamos a hablar de curbas elípticas eh con esta idea de grupos que yo sé que Esto de usar números Así es como bastante natural pero les decía que hay otros grupos que son un poco diferentes no por ejemplo el
grupo este de los movimientos de un cubo de rubic Pero hay otras cosas que son también un poquito más números cosas más coherentes por ejemplo las curvas elípticas son un grupo que se genera a partir de una curva elíptica a se llama Ah Qué es una curva elíptica alguien me sabe decir casi técnicamente hasta as pero vamos a trabajarlo pensarlo de otra manera técnicamente es
un a ver o se puede representar bueno bien sencillo una curva elíptica es una curva Y ustedes saben que las curvas Normalmente se definen con alguna expresión no por ejemplo Quién me puede decir cómo se escribe una parábola claro por ejemplo la curva i = x cu Nosotros sabemos que si la vemos en un plano cartesiano sale acá y hace así esto es una curva bien definida hasta el infinito que se representa por
esta expresión nosotros podemos empezar a jugar con estos valores por ejemplo poner acá un cuatro poner acá un Z para que sean tres dimensiones cualquier cosa no hay infinitas curvas que pudiéramos construir pero en particular las curvas elípticas son estas que se ven así y a pesar de que parece una cosa medio medio loca y como que decimos p Cuál es la expresión de eso y aparte a veces tiene el chirimbolo ahí suelto como Qué raro no a pesar de que parecen un poco exóticas la fórmula es esta solo eso nada no tienen tanto misterio
parecen como una cosa medio loca pero ahora en realidad hay un tema que es que esas curvas están definidas sobre los números reales o el plano cartesiano no O sea sobre r2 Y eso nosotros no no es una cosa que nos sirva mucho en en computación porque cuando queremos sumar dos números fraccionales reales tenemos operaciones de punto flotante no entonces ahí hay como un temita no O sea no podemos usar cualquier punto de esta curva elíptica se nos ocurre pero creo que esto no lo puse así que mencionado
hay ciertas curvas que tienen una cantidad infinita de lo que se llama puntos racionales quiere decir puntos cuyas coordenadas a y b sí son enteros o sea números como 1 10 -2 está entonces con esto sí podemos trabajar con esto sí podemos trabajar y aparte lo podemos trabajar módulo P O sea que estas cosas van a ser importantes en realidad para este grupo
el que vamos a hablar pero la idea esta de la curva a fin que igual está presente esta fórmula es interesante para pensar un poco en cómo vamos a trabajar pero en realidad lo que vamos a tener van a ser puntos de esta curva puntos sueltos no toda la curva continua está Y eso va a definir un grupo vamos a ver Ah entonces cómo vamos a hacer eh cómo vamos a hacer para definir una una operación como una suma está Acá hay que hay que rebuscarse un poco entonces bueno Esto que les decía nos falta operar Entonces fíjense esto no tenemos esta a ver si me quedó bien
la animación tenemos esta curva Y tenemos dos puntos p y q no nosotros de alguna manera queremos calcularemos calcular p+ q La pregunta es cómo hacemos esto O sea no hay una manera evidente de hacerlo bueno a alguien una vez se le ocurrió hacer esto tirar una línea que pase por las dos que eso corta a la curva en otro punto más eso es una propiedad de la curva porque tiene un grado tres no sé
si se acuerdan que en la expresión de Acá hay un x a la 3 eh x a la 3 significa que si cortamos con una recta van a ha tres raíces y ahora si quieren Les explico por qué es más lo voy a escribir voy escribir la fórmula acá as ya lo vemos un detalle más este es una forma reducida de La Curva pero eh resulta que es suficiente hay una forma expandida un poco más compleja pero no no viene al caso Entonces les decía tomamos do puntos tiramos una recta que pase por los dos ya y después encima de eso como si fuera poco tenemos
una recta vertical que pase por el punto nuevo y que corta también a la curva en otro punto y eso es el resultado sí medio raro no Y esto de acá es como el opuesto sí O sea si nosotros hubiéramos partido de la reflexión de P y q o sea un punto por acá y otro punto por acá y hubiéramos tirado la recta y hubiéramos hecho la curva de la recta vertical este punto hubiera sido el resultado como como que lo invertimos No eso es interesante porque la simetría de de la curva permite como esa construcción y de hecho ven que es simétrica eh en la forma
porque hay un ni al cuadrado está si si X3 + AX + B da 4 por ejemplo el el I al cuadrado justamente hace que 2 y -2 te dé el mismo resultado Entonces es simétrico está eh Y bueno los resultados que que no son números positivos Ah en ese caso no juegan y por eso es también que se genera veces es ese corte vieron como como un temita pero bueno entonces este proceso para sumar dos puntos edes me dirán Por qué qu hacemos todo esto no resulta que hay hay algunos temitas
acá con una teoría se llama de divisores que está muy interesante que permite hacer algunas cosas no son divisores como lo vimos Ahora son otra cosa eh otro curso pasemos pero hacen que esta estructura o sea esta forma de calcularlo sea bastante cómoda para hacer ciertas cosas en particular con algo que se llama grupos de torsión y no importa pero créanme que es un mecanismo que está bueno y aparte fíjense que operar Así es un poco más computacionalmente costoso que hacer una multiplicación normal Entonces eso también había como un layer ahí de sabor
interesante porque hace que hacer estas cuentas no sea tan tan barato y cueste un poco más de trabajo y eso en criptografía Está bueno pero cuando las cosas nos cuestan trabajo significa que no las podemos forzar tan fácil vamos bien ahí en el en la llamada vamos entonces Quiero ver un par de casos particulares Sí porque son muy usados e importantes primero es Qué pasa si quiero sumar un punto consigo mismo hablamos de generadores dijimos tengo que sumar o multiplicar un elemento consigo mismo
consigo mismo consigo mismo acá también tendríamos que poder hacer lo mismo si queremos que sean grupos entonces tengo un punto solo y quiero duplicarlo no qué hago claro es la tangente ahora es la tangente imagínense con el mouse as es pizarrón que estuviéramos sumando p con un punto q no distinto p Yo empiezo a acercar q a p de poquito de poquito poquito la recta corta los dos es como que se va acercando a la tangente y en el límite
es la tangente entonces sumar p con p Lo que implica es tomar la tangente que pasa por p encontrar otro punto y reflejar Y eso es 2p Ah y después tenemos el caso de sumar p más su opuesto no O sea qué pasa si p lo sumamos con un punto que está es el reflejo no Y esta es una situación bien interesante porque cuando tiramos una recta no corta nada no corta más nada porque está totalmente paralela a toda la estructura que está a la derecha Entonces si no corta nada no hay un resultado no está definido bueno para eso se define un
elemento nuevo que es como el cero del conjunto que se le llama el punto en el infinito es como que corta el infinito hay una representación si buscan que es como que imagínense que la curva está en un plano así y la están viendo no y es como que esto se va hasta el infinito y recién acá corta meio extraño pero de hecho es interesante pensarlo así porque eh Hay una forma de definir ese punto que es en lo que se llaman coordenadas proyectivas eh No quiero fundir el cerebro as vamos vamos a dejarlo por ahí ah pero es un
punto más sí O sea si sumamos p y os p da ese punto del infinito y tiene la propiedad aparte de que si sumamos el punto del infinito más p también da p está Sí porque es como que este y esto cortan a menos p y después cuando lo reflejo vuelvo a p una cosa así me cieron es como un medio raro todo esto medio raro Yo sé que s e algo interesante que les quería decir Es sobre esto acá pues yo les digo que siempre la recta corta en tres puntos no y de hecho en el caso de la tangente no corta en tres puntos en dos pero p es como un punto de que cuenta por dos
vamos a decir y lo que les quería decir es fíjense que esta es la fórmula y la la forma de escribir una recta es esta un parámetro vamos ponerlo m x + n no esto es una recta donde esto es la pendiente y esto es la orden origen si ustedes sustituyen esto acá sí lo voy a hacer y paso todo para un lado les queda X3 + AX + B - MX + n cuadrado = 0 esto es un polinomio de grado
3 y en cer voy a encontrar sus raíces Cuántas raíces tiene un polinomio grado 3 tres esos tres valores son las tres coordenadas x de los puntos que cortan la recta corta de la curva por ahí viene por eso son tres siempr Lo que pasa que a veces algunos de estos tienen se llama multiplicidad dos o sea que es como una raíz doble que que para que no piensen que es nada raro es como cuando Cuando tenemos una parábola que toca cer0 eso es una raíz doble también está bien entonces formalmente les quiero
mostrar no más no no es para que lo hagan si quieren hacerlo igual No no es complicado pero si ustedes eh justamente calculan la pendiente que pasa por dos de la recta que pasa por dos puntos eh Y van a tener una recta no y después eso lo sustituyen en la ecuación esta y empiezan a jugar van a encontrar que el resultado final que llegan de p + q tiene estas coordenadas que están acá y esto lo pueden calcular Sí o sea pueden poner los inputs calcular Ese es el output Y si hacen la duplicación tienen que calcular la tangente y todo lo demás y el punto que obtienen es este que está acá
Entonces esto se puede programar salvando los casos esos del punto en el infinito no y después detalle también es que tenemos esta idea de que podemos sumar m veces en esto me van a tener que creer pero un poco la gracia de que se puede hacer esto es por Cómo está construida la operación y esto de los divisores que le digo que es que si ustedes suman borrar un poquito Si ustedes suman p + p esto es igual a 2p si ustedes hacen
2p má 2p se puede demostrar que esto es lo mismo que 4p es lo mismo que se hubieran sumado esto cuatro veces no O sea y en efecto si ustedes esto por ejemplo le suman p Esto va a ser 5p y si lo duplican les va a dar 10p entonces es como que ustedes pueden llegar a construir cualquier número con menos operaciones menos pasos que sumar 10 veces fíjense que acá para llegar a 10 hicimos una duplicación dos duplicaciones es una suma y otra
duplicación O sea que hicimos cuatro operaciones en vez de 10 eso es una multiplicación rápida no y es un algoritmo interesante porque es bien fácil es rápido llegar a un número es logarítmico rápido llegar a un número grande está no así volver hacia atrás y ahí está un poco la gracia de esto Si yo te doy un resultado de una multiplicación por un número muy grande volver para atrás no se puede as más la única forma es ir probando combinaciones Fuerza bruta Entonces eso tiene implicancias de seguridad muy interesantes y de hecho no sé si saben eh en general Qué son las claves
públicas y privadas en la blockchain o en cualquier aplicación no que use criptografía de curvas elípticas saben más o menos la Secret es un número es número vamos llamarle d que está en zp y la la pública la privada la pública es generador en el cual nos ponemos de
acuerdo y lo multiplicamos de veces y esto está Esto sí es un punto en La Curva elíptica está el problema que si yo te doy esto volver para atrás es un huevo básicamente entonces yo te puedo compartir eso estamos bien yo obviamente siempre puedo recalcular esa pública y de hecho puedo empezar a hacer algunas operaciones hacemos otro curso para esto que justamente usan ciertas propiedades acá factorizan y no sé qué Y solo con conocimiento de esto es que tienen sentido así funcionan firmas digitales encriptación y demás está tiene mucho que ver con esta operación poder hacerlo rápido en un sentido Y en el otro no
igual que los hashes si lo piensan Solo que los hases son un poquito más seguros todavía Acá les escribí eh hacer MP es lo mismo que sumar varias veces pero hay una estrategia rápida que es el algoritmo No sí Entonces qué corno nos sirve esto ya vimos ahí un poquito Bueno pero les quiero dar otro ejemplo que esto los que estuvieron en la primera clase capaz que se acuerdan Francisco comentó algo de esto que son una cosa que se llama commitments de personen son bien simples bien simp eso también se aplica también para la O sea esta propiedad también se
aplica para las restas yis solo para la suma eh No no es que no están definidas la suma la división y la resta lo único que tenemos es una operación que es la suma Lo que pasa que bueno podemos ver multiplicación pero la suma de puntos lo que pasa es que tenemos una forma de sumar rápidamente hacia delante que es una consecuencia de la forma en la que está estructurada la operación Pero en sí esto tiene estructura de grupo donde hay una sola operación V bien eso respondió ahí también Perfecto impecable entonces un
commitment de pedersen es muy interesante porque es una cosa que tiene esta forma parece bastante inocente es la suma de dos puntos en una curva donde M es un mensaje privado al cual yo me quiero meter Entonces cuál es la gracia si Yo calculo este número y te doy el número es muy difícil que vos vuelvas a obtener M está pero si yo más adelante te doy m y r vos lo puedes calcular y puedes verificar que el resultado es el mismo que yo te di a ver se puede hacer con hashes esto también no Yo calculo un Hash te lo doy
y después te revelo el valor y Y vos me decís ah Okay está bien Lo calculo Pero hay otras otras formas de hacerlo acá que son así por ejemplo y un detalle acá eh No sé si lo puse es que fíjense que aparece un número r que no es M es r ese r normalmente es lo que se dice la randomness de un método y la gracia o el objetivo que tiene es que dos commitments no tengan el mismo valor ah Por qué imagínense que yo mi mensaje es Hola mamá yo me comprometo y te digo hola mamá en realidad yo me comprometí y es este
número vos No sabés que mi mensaje es H la mamá pero cuando yo te lo doy verificas y listo ahora si yo me quiero comprometer de vuelta con la misma persona a ese valor calculo c y me da el mismo valor entonces la persona recibe ese valor y dice ah pero yo ya sé cuál es el mensaje este o sea que no estoy ocultando nada el agregar r le hace un tst ahí que es que cada vez que yo me comprometo al mismo mensaje da un resultado distinto porque r cambia cada vez elijo uno nuevo y bueno parece muy simple y como muy inofensivo Pero hay algunas por ejemp que les dejo eler que
usan este tipo de commitment no son generales son para un caso pero igual usan este mecanismo de compromiso para asegurarse de que la información que me mandaste al principio es la misma con la cual después estás haciendo cosas bien comit eso es muy interesante Ah y otra cosa ya que estamos nos podemos comprometer con un solo valor a un vector de valores porque ahí tenemos un solo m pero podríamos tener M1 m2 m3 y varios h y sumarlos todos de una y poner un único r
y obtener un punto que es un commitment a todos los valores de m o sea que también sirve para comit vectoriales y Bueno un poco como sumarizado esto que les decía tienen que tener dos propiedades los esquemas de compromiso que son que sea ocult O sea que yo no pueda recuperar la información secreta del commitment del compromiso y el otro es que sea vinculante quiere decir que solo hay un único valor estadísticamente hablando o probabilísticamente hablando que es válido para ese comit o sea dicho de otra forma si yo te doy un compromiso
para mí va a ser muy difícil inventarme valores que den el mismo compromiso Si yo no con los valores originales pero si los conozco te puedo darm pero bueno sea más allá de est bondades que estoy diciendo lo que tiene es que este tipo de compromisos nos permite complementarnos a un valor a la vez o un vector de valores a vez elijo un m y me comprometo a es en este caso no nos sirve tanto por qué Porque teníamos como esa ida de vuelta no O sea
yo preciso que vos te comprometas al polinomio y yo Después te voy a pedir un valor otro valor otro valor y yo siempre quiero este compromiso contra muchos valores no hay un problema ahí porque acá solo tenemos un valor al cual nos estamos comprometiendo Entonces qué podemos hacer está y bueno acá viene el la salsa y el tuco de este asunto que es medio intenso pero muy interesante existe lo que se llama un un esquema de esquema de compromiso de polinomial o de polinomios que estos señores que se llaman Kate sauch no me
acuerdo de qué era Eh bueno cetae sí después miren lo del paper si quieren e La idea es que es un esquema que nos va a permitir comprometernos a un polinomio entero y después empezar a pedir valores no estamos bien entonces cómo funciona esto vamos a necesitar grupos de curvas elípticas en este caso vamos a necesitar un paso de Setup primero y vamos a usar lo que se llama un emparejamiento que el emparejamiento la idea del emparejamiento es para volarse los cesos o sea es compleja pero pero t es una estructura que está
por detrás de todo esto la vamos a mencionar un poco no vamos a entrar en detalle es otro curso de vuelta pero creo que está bueno que que no se vayan no teniendo esta idea de que bueno Esto es lo que está por atrás un emparejamiento también se llama un mapa bilinear está la la noción de los mapas c lineares que no importa y el emparejamiento es una de ellas es el bilinear ahora vamos a ver por qué Entonces el Setup Cómo estamos hasta ahora tenemos dudas de algo queremos un segundo y preguntar no hay problema aprovecho
Tom bien Bueno vamos esto es bastante lindo Setup es una tontería en Setup pero tiene un problema poco importante que tiene sus formas de ser mitigado pero hay que saberlo porque es muy importante y de hecho por eso está bueno meterse como a este nivel Porque si pasa lo que les voy a contar ahora la seguridad de todo el esquema se va sí Entonces qué es lo que pasa hay un actor confiable puedo ser yo confiable y elijo un valor Alfa esta
anotación se las pongo por Si la ven en algún paper quiere decir que vos elegí un valor al azar del conjunto es un Random sampling eh Porque después la van a decir qué corno y es solo eso es elijo un valor Alfa al azar del conjunto zp en este caso y luego con ese valor Alfa va a calcular unos parámetros que van a ser públicos va agarrar un generador G sí que no nos podemos poner de acuerdo y va a empezar a calcular las potencias de G hasta un cierto grado de Sí nada más Eh no tienen por qué ser raíz de la
unidad en este caso puede ser que se termine y son dos valores distintos está bien okay pero está esto es un un vector de puntos en la curva elíptica nada más y lo interesante es que si yo miro cualquier elemento de estos no puedo inferir Alfa No porque no puedo volver para atrás se acuerdan un detalle que acá me parece que está bueno que no pase por alto vieron que nosotros veníamos escribiendo la multiplicación así pero acá yo la escribí así entonces parece una potencia vamos a decir pero quiero que se queden con la idea de que en realidad escribir esto así en
este contexto es mismo que sumar G varias veces no multiplicar es un tema de notación y tiene que ver con una asunto acá que lo preguntaron el otro día que son isomorfismos que es como que podemos encontrar una relación de un grupo a otro entonces podemos representar un grupo multiplicativo como un grupo aditivo no voy a entrar en detalle yo lo que quiero es que se queden con que esta anotación la podemos usar de forma intercambiable con esta y que está todo bien que no no pasa nada sí Okay entonces el resultado de Setup es Yo elijo un Alfa calculo todas las potencias estas que son con Alfa a la
algo eso es una serie de puntos y después barro Alfa lo tiro a la basura ustedes tienen que creer que yo lo tiro la basura porque si no estamos en problemas entonces Ah le dejé un link ahí a la la parte después viste Para que vean Por qué el problema con con descartar no descartar Alfa es que se pueden generar pruebas falsas si yo conozco Alfa hay una forma en la cual vos me pedí un punto y yo sin conocer el polinomio y te mandé fruta con el commitment puedo igual calcular un valor que que va a pasar tu verificación
aunque sea cualquier cosa porque conozco Alfa y eso no está bueno ahora si yo no conozco Alfa eso no se puede hacer o es extremadamente difícil está en las preguntas picantes recomiendo que vean esto porque está buena la explicación e ahí una pregunta una consulta en la práctica en la vida real Cómo cómo se se aborda esta problemática Cuando vos estás con un r o unbit o cualquiera de eso Que supongo que est inicial Cómo es una buena pregunta es una muy buena pregunta Eh bueno claramente no no
debe haber un actor único que conozca este valor entonces lo que se suele hacer según mi entendimiento y puedo estar equivocado pero pueden buscar después y lo podemos discutir es hacer esto de manera distribuida Hay una ceremonia comoos decís en donde se calcula de manera distribuida todos estos parámetros pero nadie conoce Alfa sino que conocen fracciones de Alfa claro y nadie puede reconstruir Alfa pero si pueden calcular todos estos valores de forma distribuida está hay hay pruebas de hay hay valores de esto ya generado que son confiables que vos los podes usar o porque yo intenté hacer producto se demora un tiempo o sea a medida que tú le haces
más tienes que utilizar un buen computo lo puse en mi máquina y aquello eh sufrió y tenía muchas potencias o sea era Era eran poquitas iteraciones porque estaba solamente probando y me imaginé esto para un producto ya en producción eh dónde se corre esto O sea cómo no no es es lo que te digo o sea se corre de manera distribuida en el caso de calcularlo para una blockchain por ejemplo Esto no se corre en la blockchain sino que se hace aparte y des Sí sí off Chain por supuesto esto es Chain ni pensar no tiene sentido hacer pero es un es un buen caso de uso para computación varias partes no compation obviamente si no tiene por qué
ser liviano esto y puede llevar un tiempo este y creo que si te pones a buscar parámetros públicos para para cet g vas a encontrar creo que la clase que viene tenía que revisar pero la clase que viene vamos a hacer una especie de workshop circom y si no me equivoco tení para armar unos contratos que son verificadores y esos contratos tienen que tener estos valores públicos acc Entonces vamos a ver un poquito cómo es eso no sé si son precomputed con est yo prob uno igual
que que vos como pasas unos valores y y ahí va generando de eso pero evidentemente para producción esto no debe ser así decir que entonces el alfa se se haría con un multiparty computation con el alfa o sea Nadie conoce el alfa todo el mundo tiene un trocito de lo que generaría el alfa Exacto Exacto se puede hacer de esa manera debe haber otras otro tipo de ceremonias eh No no no tengo ese nivel de conocimiento me parece interesante buscarlo pero sé que eso se se hace eh Y que es una opción viable para mantener Esa esa seguridad no De todas maneras eh también es O sea no es fullprof No porque si se juntan n más una de las partes para
formar la clave bueno la forman y ya ellos controlan El Alfa lo que tiene esto es que aparte Esto es lo que se llama trusted universal Setup y aparte es updateable Setup quiere decir que si en algún momento El Alfa es comprometido hay pruebas de eso se puede volver a generar parámetros públicos con un Alfa nuevo y una ceremonia nueva y se puede descartar los viejos y empezar a usar estos porque es upd el protocolo Ah y el circuito te sigue funcionando entonces Ah interesante no es parte de las bondades de esto después hay otros esquemas que tienen un traste Z por circuito ni siquiera upd creo en el caso
de grow 16 que es otro otro esquema seama deción pero nada Son son bondades y propiedades que hay que tener en cuenta hay otros esquemas que no usan un Setup Entonces no necesitan confiar en nada por ejemplo las starks Sí eso ayudó ahí poquito perfecto Muy bien Entonces ahora que tenemos estos valores que recuerden lo voy a escribir así no nos olvidamos de las partes los parámetros
públicos ponemos lambda No sé es una serie de valores que son puntos en la curva elíptica donde cada uno de estos si HN es igual a g a la Alfa n Esos son los parámetros pblicos ahora lo que tenemos que hacer es generar un commitment Sí y después vamos a tener que verificar eso son las dos cosas que quedan resulta que también es bastante sencillo esto O sea parece medio medio loco pero el commitment es otro punto en
La Curva elíptica donde lo que hacemos Es Elevar G al al valor del polinomio evaluado en Alfa sí que en realidad ya saben ustedes que esa anotación intercambiable por esto Sí lo que pasa que es un poco más cómodo escribirlo así porque usamos ciertas propiedades ahora de potencia para para jugar un poquito y es un poco más cómodo pero se puede hacer de esta manera también está todo bien ya el problema es que para calcular ese valor tenemos un problema Alfa lo descartamos Entonces yo conozco p porque soy el probador pero no conozco Alfa Entonces como corno calculo ese valor
que es el commitment bueno Ahí es donde entran en juego los parámetros públicos porque el polinomio va a ser algo así sí los parámetros públicos los voy a usar de esta manera voy a multiplicarlos todos con usando como exponente cada coeficiente y fíjense que eso de alguna manera h0 qu es G no Entonces eso va a ser g a la a0 h1 Qué es g a la Alfa O sea que Esto va a ser g a la Alfa la a1 y por propiedad de
potencia esto lo puedo poner acá no te estoy matando y así sucesivamente no el siguiente término va a ser G Alfa cuadrado más a2 el cuarto va a ser Alfa a la 3 por A3 y Qué pasa cuando yo multiplico un montón de cosas así con exponentes por propidad de potencia los exponentes se suman entonces Esto va a quedar igual a g a0 + alfa1 + Alfa 2 a2 y esto qu
es es otro polinomio evaluado fíjense que lo interesante de esto es que los parámetros públicos me sirven para calcular eso sin saber Alf yo puedo calcular ese valor solo es un punto es valor el polinomio de alguna manera y acá quería decir algo que lo había notado acá abajo y me olvidé pero me parece que es un buen momento que es que en este proceso no O sea como nosotros estamos calculando ese producto de valores son de
valores estamos codificando el grado del polinomio también o sea como estamos multiplicando d+ un términos estamos diciendo Che los polinomios van a tener grado hasta d y eso es interesante porque no lo hablamos en la clase pasada pero les dejé por WhatsApp una pregunta que era Qué pasa si alguien juega con los grados de los polinomios no O sea eh pu ser una forma de manipular cosas y qué pasa un circuito que tiene 20 valores si nosotros Interpol un polinomio para representar todos esos
valores nos da un polinomio de grado 19 no y es el único polinomio de grado 19 o menor que interpola esos puntos pero hay infinitos polinomios de grado más grande que interpolan eso es un problema porque puede venir alguien y hacer cualquier polinomio y aparte hacer que también coincida en algunas verificaciones de esas que hacíamos con otros puntos entonces es como un vector de ataque Yo sé que lo describí medio laxamente pero es un vector de ataque entonces otra cosa que tenemos que hacer cuando chequeamos esos esas igualdades es pedir una restricción sobre el grado
del polinomio si el grado del polinomio es tal que codifica 20 valores y el grado del polinomio es 19 y nosotros nos aseguramos de eso es el único polinomio que cumple con estas características O sea que no nos están engañando engañando con el grado hay otros protocolos que no tienen esta seguridad o como incorporada por ejemplo las starks simple en las starks justamente como eso no está incorporado a este nivel hay otra parte del protocolo que Chequea el grado del polinomio porque si no me pueden estar engañando eh creo que no no voy a hablar de stxs pero tienen ven que hay como diferencias
no es un poco ot Cos Claro en este caso está está encode en esto porque la verificación también va a usar los parámetros públicos yo estoy calculando una evaluación del polinomio usando parámetros públicos que son en este caso yo que s que hablamos 19 20 y eso Establece en piedra Cuál es el grado del polinomio que estamos manejando el comit y después en la verificación y todo establece el el grado del está está grabado en el protocolo Ya de por sí integrado eso es importante no dio son cositas que hay
que ir pensando no porque en la medida que aparecen protocolos nuevos y dejan de lado algo Hay que preguntarse para que puede pasar por acá y puede ha y hay otras cosas entonces detalles most vamos bien no O sea los parámetros públicos son sencillos los parámetros PR los privados el commitment este es sencillo es un único punto O sea que es chiquito aparte eso es interesante pero ahora tenemos que empezar a pedir valores no Entonces qué es lo que pasa Viene un verificador Cómo estamos de tiempo Viene un verificador y me pide el polinomio evaluado en B un valor
Entonces yo Qué hago yo soy el probador calculo ese valor y aparte de mandarte el valor se acuerdan que yo dije hay un recibo que se compara con con el commitment original entonces aparte del valor Calcula una pequeña prueba que es ese recibo y la manda un poquito para entender Qué es ese recibo simplemente fense que si yo escribo este polinomio acá como P B larga es igual a b corta este polinomio tiene una raíz en B
larga porque P B men B es 0 por lo tanto es divisible se acuerdan y si es divisible puedo expresar esto hay un polinomio Q que lo puedo calcular que multiplicado por x - B es px - V corta y Eso está bueno porque la prueba es solamente un commitment a q o sea es esto como hicimos hoy y fíjense que lo interesante es Yo calculo q tomo los coeficientes y hago el mismo proceso de
hoy y puedo calcular eso sin saber Alfa no y de vuelta la prueba es un elemento pequeño es un elemento del conjunto finito O sea que es chiquita eso es interesante porque hace que la la prueba Total no O sea todo el el la sir proof se componga de elementos que son chicos entonces no es una cosa grande está es pequeña en su transmisión porque pesa poco bien hasta ahora todo parece bastante inofensivo como bastante troto en comparación con lo que hablamos ayer no bueno vamos a ver un poquito no o sea esto es lo que vimos hasta ahora tenemos un commitment pedimos que nos abran un
punto que nos revelen un punto y nos mandan este recibo y el valor cómo hacemos para verificar cómo hacemos para decir yo comparo el comit original con lo que vos me estás mandando con la prueba que me estás mandando y digo sí o no esto es válido Entonces qué Qué es lo que hacemos necesitamos chequear esta expresión está sé que que como que capaz que ya aparece medio enterado pero si nosotros ponemos de alguna manera hacemos las sustituciones fíjense que pi era g a la q de
Alfa entonces también por propiedad de potencia es g a la q Alfa por alfa men B no y del otro lado tenemos que el p tilde que era el commitment de p es g a la p de Alfa no Entonces lo escribo acá medio separado para para que no sea tan violento el pasaje de una cosa a otra pero si vamos a borrarlo fíjense que lo que estoy diciendo acá es que esto es g a la q Alfa por alfa - b y el otro lado tenemos g a la p Alfa por g a la men B
no esto era el comment original y esto es la prad que nos mandar propiedad de potencia no nos queda esto por esto y esto menos Esto entonces fíjense que los exponentes si los comparamos son q Alfa Alf men B igual a p a la Alfa p Alfa men b y esto si sacamos Alfa por x era la igualdad que teníamos hoy se acuerdan como p x - B corta era divisible entre X Men b y el resultado q se cumpl esta
igualad se expresión que tenemos que verificar es esa pero de vuelta Hay un problema Alfa Fue descartado entonces fí que Alfa aparece acá si a me dan pi me dan p conozco B porque me lo acabas de decir es el valor funcional yo tendría que Elevar esto a esto y estamos bien pero Alfa no lo conozco es una macana porque no lo conozco no puedo hacer esta cuenta no puedo ejecutar esa verificación Entonces qué puedo hacer Y acá es donde se complica la historia si no est
complicado lo que hacemos Es usamos un emparejamiento es ese mapa bilinear que les dije yo un poco extremo quiero tampoco complicarla demasiado está pero les puedo dejar como ejercicio si quieren para pensar un mapa bilinear tiene una propiedad está que es la siguiente el mapa bilinear es e ese e ahí es una función que tiene dos inut y da un output que no importa o sea
da algo no importa pero Cuál es la gracia la gracia es que si yo tengo una operación de de grupo acá no vamos a llamarle g1 para diferenciarlos estos dos pero tengo esto no está la propiedad del mapa bilinear no importa cómo se logra y es un kilombo Cómo se logra pero la gracia es que puedo igualar esto sacando esto como exponente para afuera está entonces queda esto así
está y como está esa propiedad de que cualquiera de los dos los puedo sacar para afuera algo que pasa que es muy divertido Es que puedo intercambiar estos dos porque acá no importa de dónde vino esto s entonces pued puedo meter esto así y decir B g1 a G2 Sí eso es Alo ves ahí es eso es como la parte divertida de todo esto acuérdense que la notación esta era equivalente a la potencia Ah porque dijimos que eran intercambiables
para las operaciones de grupo entonces ahí lo que estoy haciendo es es lo mismo que acá Qué pasa ustedes pueden empezar a jugar con estas cosas y sacar exponentes para fuera y meter para dentro no sé qué y van a ver que estas dos cosas son iguales siempre y cuando estén bien calculados los valores y en todo eso no precisamos Alfa Porque fíjense el único lugar donde aparece Alfa en todo esto es acá pero esto es h1 es uno de los parámetros públicos que ya lo borré pero se acuerdan entonces para hacer esta verificación en esta forma no precisamos Alfa y por eso se es un
ento es un kilombo esto entra en grupos de torsión eh que son grupos que surgen de la extensión de campo aplicada sobre el grupo de la curva elíptica entonces empiezan a aparecer unos grupos exóticos que tienen formas de linkar losos entre ellos con par un está está buenísimo es apasionante porque parece magia pero es bastante complejo y no quiero entrar en eso no se puede llegar Alfa ent no O sea está oculto de igual manera que la operación de la curva elíptica Te lo te lo oculta esa multiplicación por m que vimos
eh si vos pudieras recuperar Alfa de h1 todo esto no tendría sentido Claro pero por eso pareciera que se puede devolv no se puede increíble Así que podría haber puesto la nena feliz ahora porque más o menos lo entendimos no pero y bueno algunas cositas no más como para ir cerrando claro esto lo hablamos en la clase pasada no yo le puedo pedir un montón de evaluaciones pero no puedo pedirle d evaluaciones porque o d más un no porque en el momento en que le pido suficientes evaluaciones yo puedo reconstruir el polinomio original y parte o sea el Zero
knowledge está tanto en esto como en Las evaluaciones después para yo que fuera pero digo yo no no puedo Bueno ahí dije Alo que está mal olvídense eso pero yo no puedo dar suficientes evaluaciones tal que se puedan reconstruir el polinomio original porque ahí estoy revelando todo y el polinomio original cuál es el problema que también en codea a los inputs Y si yo obtengo el polinomio puedo inferir los inputs Y eso es lo que no queremos mientras que demos menos eh elementos evaluaciones del polinomio no se puede reconstruir y por lo tanto los inputs no se pueden recuperar Está
bien después pasa a lo siguiente que dijimos que todas las pruebas que mandamos Son elementos de un conjunto sí que a lo sumo van a ser dos números grandes no no van a ser dos números grandes pero no van a hacer más de un by o sea es poquito entonces son pruebas pequeñas y mismo si hacemos esa transformada de Fiat shamir tampoco va a agregar mucho porque las pruebas también van a ser chicas y el transcripto ese diálogo que es la prueba va a ser pequeño igual no y rápido de verificar y bueno nada comentarles que no no es el
único esquema de compromiso hay otros eh realmente ipa y Dark no no conozco los tendría que estudiar pero sí frri de Star y está bastante interesante Lu otras cosas también frri usa merket así que bueno nada eso y bueno tenemos todo ahora sí tenemos todo y con todas estas cosas hacemos armamos la piza tuki la masa la sals coso Y tenemos la prueba y por fin más o menos entendemos todos los elementos de
este tipo de pruebas no O sea otras usan cosas que son un poco diferentes pero tienen las mismas la misma naturaleza no compromiso algún esquema esto prueba interactiva transformación Sí y bueno como más o menos para tener una idea así más holística y repasar lo que hemos visto el flujo general va más o menos como como dice ahí no primero el probador recibe no envía es ahora lo corrijo Calcula y envía un compromiso a cada polinomio de interés en su aritmetización
no el verificador debería decir el verificador Recibe un compromiso a cada polinomio está y luego lee el circuito está Empieza a pedir evaluaciones en puntos y después aparte de verificar con que cada evaluación está correctamente calculada con lo que vimos hoy aparte Chequea el cumplimiento de las restricciones con lo que vimos el martes entonces todo eso termina convenciéndolo después de un par de sondeos de Okay vos hiciste bien este cómputo te creo Está y bueno obviamente podemos usar la transformación de Fiat jamir para transformar esto de interactivo a no
interactivo esperen que voy a Sí así ya no queda mal Bueno y acabamos de definir una snark que habrán escuchado el término eh capaz le suena sí una snark este tipo de pruebas que que acabamos de ver las partes en realidad no terminamos de juntarlo todo pero más o menos vieron ahí como es el flujo este tipo de pras se llam snar porque tienen ciertas características que podemos ahora discutir entendiendo un poco mejor Cuáles son las partes no primero Ese es sacint quiere decir las pruebas son
pequeñas justamente es lo que vimos recién y aparte son rápidas de verificar pu son unas pocas evaluaciones en algunas partes del circuito son algunas cuentas que hay que hacer nada más y listo sint n es de Non interactive porque se usa des transformada de F y ar es de argument of knowledge que lo que dice es que podemos demostrar pruebas de conocimiento fíjense que acá podemos demostrar conocimiento de algo fíjese que acá yo no mencioné Zero knowledge porque una snark puede ser una snark sin Zero knowledge yo puedo
revelar todos los inputs si quiero el Z knowledge está justamente no revelar los inputs y en algunos detalles en el camino para que no se revele información no y bueno eh eso fue todo por hoy Les dejo acá Ah no y dónde quedó se me fue no a hacer un chiste AC bueno hacer un chiste que si quieren pueden implementar unnar no que joda es un montón digo Obviamente si quieren hacerlo siéntanse libres tienen montón de información links no es un viaje sencillo no lo hice porque laad me da miedo Pero hay gente
que lo hace y es parte de que nosotros después tengamos herramientas para hacer así que bueno eso fue eso fue la clase de hoy no sé si quedaron dudas capaz alguna cosa que quieran consultar temprano no pasa nada bueno después tien grupo de WhatsApp y podemos por ah est no hay mucha vuelta es es algo que es complejo y después veré si puedo encontrar una manera de romperlo un
poquito más en partes eh Pero bueno con esto terminamos la parte teórica lo que queda ahora es un poco práctico Y si quieren en la última clase hablar un poquito de starks que me parece que igual ya es como mucha información pero podemos hacerlo bueno así que nada dejo de grabar acá y eso fue todo por hoy an