Tanto na vida real como no mundo dixital, moitas veces queremos demostrar cousas aos demais. Antes de entrar nun edificio de oficinas, os empregados adoitan proporcionar algún tipo de identificación antes de entrar.
Cando os usuarios tentan iniciar sesión nunha aplicación como Facebook ou Twitter, estes servizos deben solicitar primeiro ao usuario que inicie sesión cun contrasinal e, ocasionalmente, envíase un código de acceso único (OTP) ao seu dispositivo móbil.
Unha desvantaxe de proporcionar probas é que moitas veces damos outro tipo de información. Proporcionar un contrasinal a un sitio web aínda significa que o propio sitio web mantén unha copia do contrasinal hash nos seus servidores. Se alguén piratea o escáner de identificación dos empregados do edificio de oficinas, pode obter as claves privadas de todos.
As probas de coñecemento cero ou ZKP proporcionan un xeito de validar unha identidade ou transacción sen ter que proporcionar información adicional. Debido ás súas aplicacións en criptografía, os ZKP foron adaptados por cadeas de bloques para crear protocolos de validación seguros e escalables.
Que son as probas de coñecemento cero?
As probas de coñecemento cero foron propostas por primeira vez polos investigadores do MIT Silvio Micali, Charles Rackoff e Shafi Goldwasser en 1985 no seu artigo. "A complexidade do coñecemento dos sistemas de proba interactivos"
Este traballo introduciu o concepto de complexidade do coñecemento. Isto refírese á cantidade de coñecemento sobre unha proba transferida do probador ao verificador. As probas de coñecemento cero teñen como obxectivo permitir que unha parte demostre que unha declaración específica é certa a outra parte sen ter que revelar ningunha outra información.
Os ZKP pódense usar como unha alternativa segura aos sistemas de autenticación actuais e tamén se poden engadir aos protocolos de cadea de bloques para manter as transaccións privadas.
Como funcionan os ZKP?
Exemplo do mundo real
Para ilustrar como funcionan as probas de coñecemento cero, vexamos un exemplo abstracto dun ZKP.
Digamos que tes un amigo daltónico vermello-verde. Tes contigo dúas bólas idénticas que só se diferencian pola cor: unha vermella e outra verde. Para o teu amigo, parecen idénticos, pero como unha persoa sen daltonismo, podes diferencialos facilmente.
É posible que lle demostres ao teu amigo que son dunha cor diferente sen revelar que bóla é vermella ou verde?
Hai, de feito, unha forma de demostralo sen revelar as cores das bolas. En primeiro lugar, debes deixar que o teu amigo poña as dúas bólas detrás das súas costas e dicirlle que mostre calquera bóla e que a esconda de novo. A continuación, dis ao teu amigo que ten a opción de mostrar de novo a mesma bola ou cambiala pola outra.
Cada vez que se mostra unha bola nova, podes dicirlle se cambiou a bola ou non. Se segues adiviñando a chamada correcta, é cada vez máis probable que as bolas teñan unha cor diferente. Agora o teu amigo debería estar convencido de que as bolas teñen unha cor diferente sen ter que dicirlle que bolas teñen que cor.
Aplicacións Prácticas
A maioría dos exemplos prácticos de probas de coñecemento cero divídense en dous tipos.
En primeiro lugar, os ZKP pódense usar ao deseñar protocolos. Podemos garantir que as diferentes partes non poidan facer trampas nin aproveitar o protocolo. En segundo lugar, os ZKP pódense usar para a identificación.
Por exemplo, podemos usar ZKP para iniciar sesión nunha aplicación web de forma segura sen ter que revelar o propio contrasinal.
Vexamos algúns exemplos de como podemos usar probas de coñecemento cero.
Votación electrónica
Unha aplicación comúnmente discutida dos ZKP é o seu posible papel na votación en liña. Digamos que temos un referendo próximo onde os usuarios poden votar unha proposta de política. Cada elector con dereito a voto pode votar 1 ou 0 na papeleta.
Usando os ZKP, os votantes poden demostrar o seu dereito a votar sen revelar a súa identidade. Isto garante que cada voto será verdadeiramente anónimo. Tamén se utilizará un ZKP adicional para demostrar que o voto dun usuario en particular forma parte da conta final de votos.
En canto ao propio contido das papeletas, o sistema de votación tamén pode xerar unha proba de coñecemento cero de que cada papeleta contén un 1 ou un 0. Isto conséguese sen necesidade de coñecer o contido da propia papeleta.
Privacidade de Blockchain
As cadeas de bloques como Bitcoin e Ethereum non admiten de forma nativa as transaccións privadas. Sempre que a súa carteira Bitcoin sexa pública, calquera pode ir a un explorador de bloques como Blockstream para ver todas as transaccións das que forma parte a carteira.
Mentres tanto, usar un servizo como un banco ou servizos de pago como a aplicación Cash ou Venmo ofrécelle a posibilidade de realizar transaccións de forma privada. Esta comodidade, con todo, ten o custo de revelar a súa información ao servizo centralizado.
Podemos combinar o anonimato coa descentralización engadindo ZKP ao protocolo blockchain. As criptomoedas como ZCash usan ZKP para crear transaccións privadas que permiten aos posuidores de moedas manter o seu anonimato. Varias destas criptomoedas usan un tipo de ZKP coñecido como zk-SNARK.
Estes ZKP non requiren interacción entre o probador e o verificador.
Paquetes de coñecemento cero
Os ZK-rollups son unha solución de escalabilidade que permite que as transaccións fóra da cadea se verifiquen ao instante e con tarifas mínimas de gas. Son unha forma de combinar un gran número de transaccións de capa 2 e envialas ao protocolo de capa 1.
Ademais de proporcionar privacidade, os ZKP permiten escalar sistemas complexos. Os protocolos de cadea de bloques poden usar ZKP para demostrar que os usuarios resolveron as transaccións correctas, teñen o saldo adecuado, etc. Estas solucións seguras pero escalables só son posibles a través das probas matemáticas feitas fóra da cadea en ZKP.
Protocolos como Loopring usan probas de coñecemento cero para axudar a procesar transaccións fóra da cadea sen ter que comprometer a seguridade.
Beneficios das probas de coñecemento cero
- Os ZKP substitúen formas de autenticación menos fiables, como os PIN ou as tarxetas de identificación
- ZKPS aumenta a escalabilidade das cadeas de bloques
- A implementación de ZKP require métodos de cifrado sinxelos
- O uso de ZKPS pode facer que os sistemas sexan máis seguros ao non esixir que se almacene información innecesaria no sistema.
Conclusión
A privacidade dos datos xa é un problema importante tanto nos sistemas centralizados como nos descentralizados. As probas de coñecemento cero proporcionan unha forma de que as diferentes partes proben ou validen transaccións e identidades sen ter que revelar ditas transaccións ou identidades.
A medida que a tecnoloxía blockchain se faga máis amplamente utilizada, a adopción de ZKP para xestionar a verificación de forma segura será clave para os problemas de escalabilidade.
Deixe unha resposta