Vitalik Buterinin perustelu kryptografisen työn siirtämiselle osittain ketjun ulkopuolelle lähtee yksinkertaisesta erosta: laskenta ja data ovat eri pullonkauloja. Esikäännetty toiminto eli precompile voi tehdä tietyn kryptografisen tarkistuksen halvemmaksi, mutta Ethereumille täytyy silti toimittaa tarkistettava data. EIP-8288 ehdottaa toisenlaista mallia: suuria kryptografisia aineistoja ei vietäisi lohkoihin täysimittaisina aina kun se on mahdollista, vaan niiden tarkistukset yhdistettäisiin rekursiivisiksi STARK-todisteiksi. Ehdotus on edelleen luonnos.
4
16
Miksi uusia precompile-toimintoja ei vain lisätä?
Precompile-toiminnot ovat protokollaan sisäänrakennettuja operaatioita, joiden avulla tietyt kryptografiset tarkistukset voidaan tehdä halvemmalla. Ne eivät kuitenkaan itsessään vähennä allekirjoitusten, todisteiden tai muiden tarkistukseen tarvittavien syötteiden kuljettamista verkossa. Buterinin mukaan Ethereumin kryptografista kapasiteettia rajoittaa myös datan siirtokyky, ei vain tarkistukseen kuluva gas. Hän arvioi käytännön datan läpimenon ylärajaksi noin 8 megatavua sekunnissa myös PeerDASin ja blob-dataa sisältävien lohkojen yhteydessä. Kyse on hänen arviostaan, ei virallisesta calldata-raja-arvosta.
4
12
Jokainen erikseen tuettu kryptografinen menetelmä voi myös lisätä protokollan monimutkaisuutta ja vaatia muutoksia asiakasohjelmistoihin. EIP-8288:n tavoitteena on sen sijaan tarjota yhteinen tapa tarkistaa eri kryptografisten menetelmien avulla tuotettuja todisteita.
7
16
Luonnoksen esimerkki havainnollistaa datan ja laskennan yhteispeliä: siinä käsitellään noin 2–3 kilotavun hash-pohjaisia allekirjoituksia, joiden suora tarkistus voisi maksaa 150 000–200 000 gas-yksikköä. Nämä ovat ehdotuksen esimerkkilukuja, eivät kaikkia allekirjoituksia tai toteutuksia koskevia yleispäteviä kustannuksia.
10
Näin EIP-8288:n on tarkoitus toimia
Virallisessa EIP:ssä ehdotuksen kirjoittajiksi nimetään Vitalik Buterin ja Thomas Coratger. Ehdotus laajentaisi EIP-8141:n kehysmuotoisia transaktioita, ja sen tila on edelleen Draft eli luonnos. Mallissa on kolme keskeistä osaa:
16
- Transaktio ilmoittaa tiiviit riippuvuudet. Riippuvuus kertoo käytetyn menetelmän, datan tiivisteen ja varmennusavaimen tiivisteen. Ehdotuksessa kukin tällainen kolmen tiedon yhdistelmä koodataan 96 tavuun.
16
13
- Varsinainen kryptografinen data kulkee verkossa transaktioiden mukana. Suuret allekirjoitukset tai todisteet välitetään transaktioiden mukana niiden edetessä verkossa, vaikka niitä ei sisällytettäisi lohkoon alkuperäisessä muodossaan. Muistialtaan osallistujat voivat yhdistää tarkistustyötä.
15
16
- Tarkistukset kootaan yhteen. Tavoitteena on käyttää rekursiivisia STARK-todisteita useiden tarkistusten yhdistämiseen. Lohkoon sisällytettäisiin yhdistelmätodiste alkuperäisten kryptografisten aineistojen sijaan. Tämä voisi vähentää lohkoihin tarvittavaa datamäärää, mutta ei nosta verkon varsinaista kaistanleveysrajaa.
6
15
16
Käyttäjät voisivat myös tehdä raskaita kryptografisia laskutoimituksia omilla laitteillaan ja tuottaa niiden oikeellisuudesta STARK-todisteita. Tavoitteena on tukea useampia kryptografisia menetelmiä ilman, että jokaiselle rakennetaan erillinen, Ethereumiin sisäänrakennettu precompile-toiminto.
3
6
Mitä ehdotus voisi muuttaa – ja mitä ei?
Jos malli toimisi suunnitellusti, tiiviit riippuvuustiedot ja yhdistetyt tarkistukset voisivat vähentää sitä, kuinka paljon alkuperäistä allekirjoitus- ja todistedataa lohkoihin täytyy sisällyttää. Kyse ei siis ole vain ”nopeammasta kryptografiasta”: osa työstä siirtyisi käyttäjille ja muistialtaan osallistujille, ja ketjuun päätyvän datan määrää pyrittäisiin rajaamaan.
1
13
16
Kryptografian kustannukset eivät silti katoaisi. Käyttäjien ja verkon osallistujien pitäisi yhä tuottaa, välittää ja tarkistaa tarvittavat aineistot ja todisteet. Saatavilla olevat lähteet eivät osoita, että EIP-8288 varmasti alentaisi gas-kustannuksia tietyllä määrällä tai ratkaisisi Ethereumin laajemmat skaalautumisongelmat.
Mitä ei vielä tiedetä?
Todisteiden ja tiivisteiden luotettavuus. Luonnos nimeää turvallisuusoletuksiksi muun muassa tarkistuspiirien oikeellisuuden sekä riippuvuuksissa käytettyjen tiivistefunktioiden luotettavuuden. Myöhemmässä luonnospäivityksessä lohkon riippuvuustiiviste sidottiin myös aggregointipiiriin. Nämä ovat arvioitavia suojauksia, eivät todiste siitä, että järjestelmä olisi jo kattavasti varmennettu tai osoitettu turvalliseksi tuotantokäytössä.
32
Muistialtaan palvelunestohyökkäykset. Todisteiden yhdistäminen lisää työtä ja datan käsittelyä muistialtaassa. Palvelunestohyökkäysten riski on tunnistettu arvioitavaksi asiaksi, mutta käytettävissä olevat lähteet eivät osoita, että kaikki suojaukset olisivat valmiita tai riittäviä.
25
Luonnoksen rajat eivät ole mainnet-sääntöjä. Yhdessä virallisessa versiossa transaktiolle asetetaan enintään 16 allekirjoitusriippuvuutta ja yksi STARK-riippuvuus. Nämä ovat luonnoksen parametreja, eivät käytössä olevan Ethereumin sääntöjä.
32
Lattice-pohjaisten allekirjoitusten turvallisuus on yhä kysymysmerkki. Buterin on raportoinnin mukaan jättänyt mahdollisuuden lisätä lattice-pohjaisia precompile-toimintoja esimerkiksi tileille ja lompakoille, jos niiden turvallisuudesta saadaan näyttöä. Huoli mahdollisista tekoälyn avulla toteutettavista hyökkäyksistä on asia, jota on arvioitava – ei näyttö siitä, että lattice-pohjaiset allekirjoitukset olisi murrettu.
17
24
Virallinen EIP on edelleen luonnos, ja raportointi kuvaa simulaatioita ja testiverkkotyötä, ei hyväksyttyä käyttöönottoa Ethereum-mainnetissä. Saatavilla olevat lähteet eivät vahvista lopullista päätöstä ehdotuksen hyväksymisestä tai käyttöönoton aikataulusta.
15
16