{"id":17817,"date":"2024-01-15T11:14:44","date_gmt":"2024-01-15T10:14:44","guid":{"rendered":"https:\/\/affidaty.io\/blog\/?p=17817"},"modified":"2024-03-26T15:58:01","modified_gmt":"2024-03-26T14:58:01","slug":"tecnologia-zero-knowledge-blockchain","status":"publish","type":"post","link":"https:\/\/affidaty.io\/blog\/it\/2024\/01\/tecnologia-zero-knowledge-blockchain\/","title":{"rendered":"Zero-Knowledge: Rivoluzione della Privacy Blockchain\u00a0"},"content":{"rendered":"\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-introduzione\">Introduzione<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ti sei mai chiesto come si pu\u00f2 dimostrare di sapere qualcosa senza dire cosa si sa? Questa \u00e8 la domanda che sta alla base della <strong>tecnologia zero-knowledge<\/strong>, una delle pi\u00f9 promettenti innovazioni nel campo della crittografia e della <strong>blockchain<\/strong>. In questo articolo, vedremo cos\u2019\u00e8 la <strong>tecnologia zero-knowledge<\/strong>, come funziona, quali sono le sue applicazioni e quali sono le sfide e le opportunit\u00e0 che presenta per il futuro del Web3.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-cos-e-la-tecnologia-zero-knowledge\">Cos&#8217;\u00e8 la <strong>tecnologia zero-knowledge<\/strong>?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Per capire come funziona la <strong>tecnologia zero-knowledge<\/strong>, dobbiamo prima introdurre il concetto di prova zero-knowledge, il meccanismo che permette di realizzare questa tecnologia. Una prova zero-knowledge \u00e8 una comunicazione tra due parti, chiamate prover e verifier, in cui il prover vuole convincere il verifier di una certa affermazione, senza rivelare nessun\u2019altra informazione. Una prova zero-knowledge deve soddisfare tre propriet\u00e0 fondamentali: completezza, correttezza e zero-knowledge.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La completezza significa che se l\u2019affermazione \u00e8 vera e il prover \u00e8 onesto, il verifier deve accettare la prova con una probabilit\u00e0 arbitrariamente alta.<br>La correttezza significa che se l\u2019affermazione \u00e8 falsa e il prover \u00e8 disonesto, il verifier deve rifiutare la prova con una probabilit\u00e0 superiore a una soglia prefissata.<br>La zero-knowledge significa che il verifier non deve apprendere nessun\u2019altra informazione dall\u2019interazione con il prover, oltre al fatto che l\u2019affermazione \u00e8 vera o falsa.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Immaginiamo di avere una caverna con due ingressi, A e B e una porta che blocca il passaggio tra A e B. Solo chi conosce la parola segreta pu\u00f2 aprire la porta e attraversare la caverna da un lato all\u2019altro. Ora, supponiamo che Alice ( prover) conosca la parola segreta e voglia venderla a Marco (verifier), che vuole accedere alla caverna. Tuttavia, Alice non vuole rivelare la parola a Marco prima di ricevere il pagamento, e Marco non vuole pagare Alice prima di essere sicuro che lei conosca davvero la parola. Come si pu\u00f2 risolvere questo dilemma?&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una possibile soluzione \u00e8 la seguente: Alice entra nella caverna da uno dei due ingressi, scelto a caso, Marco la segue fino all\u2019entrata. Poi, Marco si ferma e grida il nome dell\u2019ingresso da cui vuole che Alice esca. Se Alice conosce la parola segreta, pu\u00f2 aprire la porta e uscire dall\u2019ingresso richiesto da Marco. Se invece non la conosce, pu\u00f2 solo uscire dallo stesso ingresso da cui \u00e8 entrata, sperando che sia quella che Marco ha chiesto.<br>In questo caso, avrebbe il 50% di probabilit\u00e0 di indovinare. Se i due ripetono questo procedimento pi\u00f9 volte, la probabilit\u00e0 che Alice riesca a ingannare Marco diminuisce esponenzialmente. Quindi, se Alice esce sempre dall\u2019ingresso che Marco chiede, Marco pu\u00f2 essere ragionevolmente convinto che Alice conosca la parola segreta, senza che Alice debba rivelargliela.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Questo esempio illustra il concetto di dimostrazione a conoscenza zero, che si basa sulle tre propriet\u00e0 fondamentali:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">Completezza<\/mark>: se l\u2019affermazione \u00e8 vera, il dimostratore onesto (Alice) pu\u00f2 convincere il verificatore onesto (Marco) con una probabilit\u00e0 arbitrariamente alta.<br><br><\/li>\n\n\n\n<li><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">Correttezza<\/mark>: se l\u2019affermazione \u00e8 falsa, il dimostratore disonesto non pu\u00f2 convincere il verificatore onesto con una probabilit\u00e0 superiore a una soglia prefissata.<br><br><\/li>\n\n\n\n<li><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">Zero-knowledge<\/mark>: il verificatore onesto non apprende nulla di pi\u00f9 dell\u2019affermazione, oltre al fatto che sia vera o falsa.\u00a0<br><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-dietro-le-quinte-della-tecnologia-zero-knowledge\">Dietro le Quinte della <strong>Tecnologia Zero-Knowledge<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">L\u2019esempio della caverna \u00e8 solo una semplificazione per spiegare il principio del protocollo a conoscenza zero. Nella pratica, la <strong>tecnologia zero-knowledge<\/strong> si basa su tecniche matematiche e algoritmiche pi\u00f9 complesse, che richiedono l\u2019uso di strutture dati e funzioni crittografiche. Esistono diversi tipi di tecnologie zero-knowledge, a seconda delle propriet\u00e0 e delle prestazioni che si vogliono ottenere.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un tipo di <strong>tecnologia zero-knowledge<\/strong> \u00e8 quella basata su problemi NP-completi, per i quali non esiste un algoritmo efficiente per trovare la soluzione, ma ne esiste un\u2019 altro per verificarla. Il problema di <a href=\"https:\/\/www.geeksforgeeks.org\/hamiltonian-cycle\/\" target=\"_blank\" rel=\"noreferrer noopener\">Hamiltonian Cycle<\/a> \u00e8 un problema NP-completo, che consiste nel trovare un ciclo che passi per tutti i nodi di un grafo una sola volta. Non esiste un algoritmo efficiente per trovare un ciclo hamiltoniano, ma ne esiste uno per verificare se un ciclo \u00e8 hamiltoniano. Quindi, se Alice conosce un ciclo hamiltoniano in un grafo, pu\u00f2 usare questo problema per creare una prova zero-knowledge per Marco, che vuole verificare che Alice conosca il ciclo, senza che Alice debba rivelarglielo.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Altro tipo di <strong>tecnologia zero-knowledge<\/strong> \u00e8 quella basata su problemi di teoria dei numeri, i quali sono legati alle propriet\u00e0 dei numeri interi.<br>Per esempio, il problema di \u2018<a href=\"https:\/\/it.eitca.org\/sicurezza-informatica\/eitc-%C3%A8-una-crittografia-classica-avanzata\/crittografia-con-problema-di-registro-discreto\/schema-di-crittografia-elgamal\/revisione-dell'esame-schema-di-crittografia-elgamal\/qual-%C3%A8-il-problema-del-logaritmo-discreto-e-perch%C3%A9-%C3%A8-considerato-computazionalmente-difficile-da-risolvere\/\" target=\"_blank\" rel=\"noreferrer noopener\">Logaritmo Discreto<\/a>\u2019 \u00e8 un problema di teoria dei numeri che consiste nel trovare un numero x tale che a^x = b (mod p), dove a, b e p sono numeri interi noti. Non esiste un algoritmo efficiente per trovare x, ma ne esiste un\u2019 altro&nbsp; per verificare se x \u00e8 la soluzione. Quindi, se Alice conosce x, pu\u00f2 usare questo problema per creare una prova zero-knowledge per Marco, che vuole verificare che Alice conosca x, senza che Alice debba rivelarglielo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un terzo tipo di <strong>tecnologia zero-knowledge<\/strong> \u00e8 quella basata su problemi di geometria algebrica, problemi legati alle propriet\u00e0 delle curve ellittiche.<br>Per esempio, il problema di <a href=\"https:\/\/medium.com\/@VitalikButerin\/exploring-elliptic-curve-pairings-c73c1864e627\" target=\"_blank\" rel=\"noreferrer noopener\">Elliptic Curve Pairing<\/a> \u00e8 un problema di geometria algebrica che consiste nel trovare una funzione e che mappi due punti P e Q su una curva ellittica in un valore e(P,Q) in un campo finito. Non esiste un algoritmo efficiente per trovare e, ma un\u2019 altro per verificare se \u00e8 la soluzione. Quindi, se Alice conosce e, pu\u00f2 usare questo problema per creare una prova zero-knowledge per Marco, che vuole verificare che Alice conosca e, senza che Alice debba rivelarglielo.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Questi sono solo alcuni esempi di problemi che si possono usare per creare prove zero-knowledge, ma ce ne sono molti altri che si basano su principi matematici e logici diversi. L\u2019idea generale \u00e8 sempre la stessa: usare un problema difficile da risolvere ma facile da verificare per dimostrare di conoscere la soluzione senza rivelarla.&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Dimostrare il possesso di una credenziale, come una password, una chiave privata o un certificato, senza rivelarla o esporla a rischi di furto o falsificazione.<br><br><\/li>\n\n\n\n<li>Dimostrare il rispetto di una regola, come una politica di accesso, una condizione contrattuale o una normativa legale, senza rivelare i dettagli o le motivazioni che la giustificano.<br><br><\/li>\n\n\n\n<li>Dimostrare la correttezza di un\u2019operazione, come una transazione, una computazione o una verifica, senza rivelare i dati o i processi che la rendono possibile.<br><br><\/li>\n\n\n\n<li>Dimostrare la propriet\u00e0 di un\u2019informazione, come una prova di lavoro, una prova di partecipazione o una prova di spazio, senza rivelare il contenuto o la fonte dell\u2019informazione.&nbsp;<br><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nell\u2019ecosistema <strong>blockchain<\/strong>, la dimostrazione a conoscenza zero ha un ruolo sempre pi\u00f9 importante, in quanto permette di migliorare la privacy e la scalabilit\u00e0 delle transazioni e degli smart-contract. Molti progetti e protocolli stanno gi\u00e0 utilizzando o integrando il protocollo a conoscenza zero per fornire agli utenti maggiore sicurezza e flessibilit\u00e0.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><br>Zcash \u00e8 una criptovaluta che usa le dimostrazioni a conoscenza zero per nascondere gli importi e i destinatari delle transazioni, garantendo cos\u00ec privacy assoluta agli utenti. Oppure Aztec, un protocollo che usa le dimostrazioni a conoscenza zero per rendere le transazioni su Ethereum pi\u00f9 economiche e veloci, riducendo il costo del gas fee e il tempo di conferma. Inoltre, \u00e8 stata usata per creare applicazioni decentralizzate, come identit\u00e0 digitali, votazioni elettroniche, audit e verifiche, e molto altro. Il campo della ricerca e dello sviluppo di questa tecnologia \u00e8 in continua crescita.&nbsp;<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-sfide-e-opportunita\">Sfide e Opportunit\u00e0&nbsp;<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La dimostrazione a conoscenza zero \u00e8 una tecnologia in continua evoluzione e sperimentazione, che presenta ancora alcune sfide e limitazioni da superare. Tra queste, ad esempio:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>La complessit\u00e0 computazionale, che richiede una grande quantit\u00e0 di risorse e tempo per generare e verificare le prove, soprattutto per problemi di grande dimensione e complessit\u00e0.<br><br><\/li>\n\n\n\n<li>La difficolt\u00e0 di implementazione, che richiede una profonda conoscenza matematica e crittografica per creare e usare le prove, oltre a una cura particolare per evitare errori e vulnerabilit\u00e0.<br><br><\/li>\n\n\n\n<li>La mancanza di standardizzazione, che rende difficile la compatibilit\u00e0 e l\u2019interoperabilit\u00e0 tra le diverse tipologie e versioni di dimostrazione a conoscenza zero, oltre a creare problemi di sicurezza e affidabilit\u00e0.&nbsp;<br><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La dimostrazione a conoscenza zero \u00e8 quindi una tecnologia che ha il potenziale di migliorare e innovare molti settori e applicazioni, come la <strong>blockchain<\/strong>, le transazioni, l\u2019identit\u00e0 digitale, le votazioni, gli audit, le verifiche, e molto altro.<br><br>La sfida \u00e8 quella di rendere questa tecnologia pi\u00f9 accessibile, scalabile e standardizzata, per favorire la diffusione e l\u2019adozione.&nbsp;<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Come si pu\u00f2 dimostrare di sapere qualcosa senza dire cosa si sa? Questa \u00e8 la domanda che sta alla base della tecnologia zero-knowledge.<\/p>\n","protected":false},"author":246,"featured_media":17836,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jnews-multi-image_gallery":[],"jnews_single_post":{"subtitle":"","format":"standard","video":"","gallery":"","source_name":"","source_url":"","via_name":"","via_url":"","override_template":"0","override":[{"template":"2","single_blog_custom":"","parallax":"1","fullscreen":"0","layout":"right-sidebar","sidebar":"default-sidebar","second_sidebar":"default-sidebar","sticky_sidebar":"1","share_position":"float","share_float_style":"share-normal","show_share_counter":"1","show_view_counter":"1","show_featured":"1","show_post_meta":"1","show_post_author":"1","show_post_author_image":"1","show_post_date":"1","post_date_format":"default","post_date_format_custom":"Y\/m\/d","show_post_category":"1","show_post_reading_time":"1","post_reading_time_wpm":"300","show_zoom_button":"1","zoom_button_out_step":"2","zoom_button_in_step":"3","show_post_tag":"1","show_prev_next_post":"0","show_popup_post":"1","number_popup_post":"1","show_author_box":"1","show_post_related":"1","show_inline_post_related":"0"}],"override_image_size":"0","image_override":[{"single_post_thumbnail_size":"no-crop","single_post_gallery_size":"crop-715"}],"trending_post":"0","trending_post_position":"meta","trending_post_label":"Trending","sponsored_post":"0","sponsored_post_label":"Sponsored by","sponsored_post_name":"","sponsored_post_url":"","sponsored_post_logo_enable":"0","sponsored_post_logo":"","sponsored_post_desc":"","disable_ad":"0"},"jnews_primary_category":{"id":"","hide":""},"jnews_social_meta":{"fb_title":"","fb_description":"","fb_image":"","twitter_title":"","twitter_description":"","twitter_image":""},"footnotes":""},"categories":[685],"tags":[129,24,109,155,180,178,828,66,1056,98],"coauthors":[1115],"class_list":["post-17817","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-applicazioni-reali","tag-ai","tag-blockchain","tag-crypto","tag-ethereum","tag-pos","tag-proof-of-stake","tag-proof-of-work-ita","tag-smart-contract","tag-transaction-it","tag-transazioni"],"_links":{"self":[{"href":"https:\/\/affidaty.io\/blog\/wp-json\/wp\/v2\/posts\/17817","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/affidaty.io\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/affidaty.io\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/affidaty.io\/blog\/wp-json\/wp\/v2\/users\/246"}],"replies":[{"embeddable":true,"href":"https:\/\/affidaty.io\/blog\/wp-json\/wp\/v2\/comments?post=17817"}],"version-history":[{"count":0,"href":"https:\/\/affidaty.io\/blog\/wp-json\/wp\/v2\/posts\/17817\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/affidaty.io\/blog\/wp-json\/wp\/v2\/media\/17836"}],"wp:attachment":[{"href":"https:\/\/affidaty.io\/blog\/wp-json\/wp\/v2\/media?parent=17817"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/affidaty.io\/blog\/wp-json\/wp\/v2\/categories?post=17817"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/affidaty.io\/blog\/wp-json\/wp\/v2\/tags?post=17817"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/affidaty.io\/blog\/wp-json\/wp\/v2\/coauthors?post=17817"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}