Nollatiedon todisteet
Nollatietotodistus, jota joskus kutsutaan myös ZK-protokollaksi, on todentamismenetelmä, joka tapahtuu todistajan ja todentajan välillä. Nollatietojärjestelmässä todistaja pystyy todistamaan todentajalle, että heillä on tieto tietystä tiedosta (kuten matemaattisen yhtälön ratkaisusta) paljastamatta itse tietoa. Nykyaikaiset kryptografit voivat käyttää näitä todistejärjestelmiä parantaakseen yksityisyyttä ja turvallisuutta.
Nollatietotodistuksen käsite kuvattiin ensimmäisen kerran vuonna 1985 julkaistussa MIT-paperissa, jonka julkaisivat Shafi Goldwasser ja Silvio Micali. He osoittivat, että oli mahdollista todistaa joitain numeron ominaisuuksia paljastamatta numeroa tai muita tietoja siitä. Tämä artikkeli esitteli myös matemaattisesti merkittävän havainnon, jonka mukaan todistajan ja todentajan välinen vuorovaikutus voisi vähentää tietyn lauseen todistamiseen vaadittavan tiedon määrää.
ZK-todisteen on täytettävä kaksi perusvaatimusta, jotka tunnetaan nimellä täydellisyys ja luotettavuus. Täydellisyydellä tarkoitetaan todistajan kykyä osoittaa asianmukaisten tietojen tuntemus suurella todennäköisyydellä. Jotta todiste olisi luotettava, todentajan on pystyttävä luotettavasti määrittämään, onko todistaja todella hallussaan tiedot. Lopuksi, jotta se olisi todella nollatietoa, todisteen on saavutettava sekä täydellisyys että luotettavuus ilman, että kyseinen tieto on koskaan välitetty todistajan ja todentajan välillä.
Nollatietotodistuksia käytetään enimmäkseen sovelluksissa, joissa yksityisyys ja turvallisuus ovat tärkeitä. Todennusjärjestelmät voivat esimerkiksi käyttää ZK-todistuksia valtuustietojen tai henkilöllisyyden tarkistamiseen paljastamatta niitä suoraan. Yksinkertaisena esimerkkinä voidaan todeta, että henkilöllä on tietokonejärjestelmän salasana ilman tarvetta paljastaa, mikä salasana on.
Yksi näkyvä nollatietotodisteiden todellinen käyttötapaus löytyy kryptovaluutta- ja lohkoketjuteknologian maailmasta. Zcashin kaltaiset yksityisyyteen keskittyvät kryptovaluutat pystyvät tarjoamaan käyttäjilleen lohkoketjutapahtumia, joissa on parannettu yksityisyyttä, käyttämällä todistetta, joka tunnetaan nimellä nolla-tietoisuus Succinct Non-interactive Argument of Knowledge (zk-SNARK). Ethereum on myös työskennellyt zk-SNARK-todisteiden kanssa Bysantium-päivityksestään vuonna 2017 lähtien.