La oss snakke om en superkraft i Starknet: Sierra. Når du bygger en ZK-basert blokkjede, med en ZK-basert VM for generell beregning (slik Kairo er for Starknet), vil du møte et problem: Hvordan gjør du VM-en både blokkjede-sikker *og* ZK-vennlig? Problemet er et spørsmål om ikke-determinisme. Jeg skal forklare: zkVM-er blir mye mer effektive hvis sequenceren/beviseren kan "gjette" visse oppføringer og magisk fylle dem inn. Problemet er at dette åpner for ulike angrep: En ondsinnet bruker kan sende en tx som ikke lett kan gjettes, og en ondsinnet sequencer/prover kan velge å ikke gjette riktig verdi for å skade brukeren. Hva er løsningen? - Et alternativ er å fjerne ikke-determinisme. Men dette skader effektiviteten. - Et annet alternativ er å bruke spillteoretiske metoder for å la andre sekvensere straffe angripere, samtidig som noen sekvensere insentiveres til å inkludere gode transaksjoner. - Et tredje alternativ er å bygge en sikker mellomrepresentasjon (vi kaller den: Sierra). Sierra tillater akkurat riktig type ikke-determinisme, på en måte som gjør at alle gjetninger kan fylles inn. Underveis gjør dette verktøyet det mulig å løse andre kule ting, som å legge til gassdosering som en del av kompilasjonsprosessen. Sammendrag: Under panseret til Cairo, det beste Smart Contract Language, finnes det en perle, en superkraft, som gjør det mulig å kjøre trygt og effektivt blokkjedebasert ZK. Bare på Starknet, fremtidsteknologi i dag.