Priročnik za razvijalce za zkGalaxy

Priročnik za razvijalce za zkGalaxy

Izvorno vozlišče: 1946171

Predstavitev

Vitalikovi kompromisi za zkEVM med zmogljivostjo in združljivostjo

To je izjemno uporabna hevristika za razlikovanje pristopov za podporo zkEVM. Vendar so zkEVM podmnožica vseh možnih načinov za izdelavo aplikacij brez znanja. Za programerja, ki želi izkoristiti edinstvene lastnosti izračuna zk, namreč jedrnatost, nič znanja in korektnost, zkEVM morda ni najboljša izbira. S predstavitvijo celotnega nabora orodij za razvijalce upam, da bom zagotovil vodnik, ki bo pomagal pri odločanju o pravem skladu zk za vašo aplikacijo.

V zadnjem letu ali dveh je prišlo do ogromnega napredka pri orodjih zk. Približujejo se točki, ko lahko navadni razvijalci programske opreme izkoristijo močne lastnosti zk brez globokega razumevanja zastrašujoče osnovne matematike in inženiringa. Na drugi strani pa je prišlo do širjenja orodij za izkušene uporabnike, ki strokovnjakom zk dajejo izjemno natančen nadzor nad skladom zk.

Moč abstrahiranja kompleksnosti

Sodobna programska oprema je zgrajena na neštetih ravneh abstrakcije za povečanje produktivnosti strokovnjakov. Obstaja veliko prednosti abstrakcije v inženirstvu, ki so nekoliko intuitivne – spletnemu razvijalcu ni treba poglobljeno razumeti delovanja operacijskih sistemov. 

Ključ do gradnje dobrih abstraktnih slojev, ki jih je mogoče ponovno uporabiti, je enkapsulacija kompleksnosti sloja in nato zagotavljanje preprostih, a izrazitih vmesnikov za sloje višje v skladu. Če je narejeno pravilno, to omogoča razvijalcem z različnimi področji strokovnega znanja in izkušenj, da zgradijo uporabna orodja v celotnem nizu.

Ni presenetljivo, da ta ista načela veljajo za sisteme zk in ti sloji abstrakcije postajajo dovolj zreli, da jih novinec zk začne uporabljati in graditi aplikacije že danes.

ZK tech stack
Zk Stack z nekaj primeri orodij/tehnologij na vsaki plasti

Razvoj zk na nizki ravni

Arkworks-rs

Arkworks-rs je ekosistem knjižnic Rust, ki zagotavlja učinkovite in varne izvedbe podkomponent aplikacije zkSNARK. Arkworks ponuja vmesnike, potrebne za razvijalce, da prilagodijo sklad programske opreme za aplikacijo zk, ne da bi morali ponovno implementirati skupne lastnosti z drugimi obstoječimi knjižnicami.

Pred Arkworks je bil edini način za ustvarjanje nove aplikacije zk izdelava vsega iz nič. Ključne prednosti Arkworks-rs v primerjavi z vertikalno integriranimi orodji po meri so stopnja prilagodljivosti, zmanjšanje podvojenega inženiringa in zmanjšanje napora pri reviziji. Razumne linije vmesnika Arkworks med komponentami omogočajo hitrost nadgradljivosti, ki lahko ohrani ustreznost sklada sredi hitrega tempa inovacij v tehnologijah zk, ne da bi morale ekipe znova zgraditi vse od začetka.

Za koga je?

Arkworks je za projekte, ki potrebujejo natančen nadzor nad celotnim skladom programske opreme zk, vendar ne želijo zgraditi vseh odvečnih delov iz nič. Če razmišljate o prilagojeni različici vezja DSL, ker na primer izdelujete prototip novega sistema za preverjanje, vendar niste prepričani o shemi zavezanosti ali ustrezni eliptični krivulji, vam bo arkworks omogočil hitro preklapljanje med več možnostmi s skupnimi vmesniki, raje kot začeti iz nič.

Prednosti

  • Prilagodljivost zaradi modularnosti
  • Manj podvajanja kode
    • Nižji stroški inženiringa
    • Zmanjšana površina revizije/hroščev
  • Nadgradite katero koli komponento brez večjega preoblikovanja
  • Enostavno eksperimentiranje z novimi primitivi v hitro razvijajočem se okolju zk

Proti

  • Zahteva globoko razumevanje celotnega sklada programske opreme
    • Preveč nadzora lahko vodi do nožnih pušk, če ga ne razumemo pravilno
  • Zdrobljen nadzor zahteva strokovno znanje na vseh ravneh sklada
    • Arkworks ponuja nekaj razumnih privzetih nastavitev.

zk Domensko specifični jeziki (DSL)

Da bi ustvarili dokaz o nekem izračunu, mora biti ta izračun najprej izražen v obliki, ki jo lahko razume sistem zkSNARK. Več domensko specifičnih jezikov je ustvarilo programske jezike, ki razvijalcem aplikacij omogočajo, da izrazijo svoje računanje na tak način. Tej vključujejo Aztec Noir, Starknet's CairoCircomZoKrates, in Aleo Leo med ostalimi. Osnovni dokazni sistem in matematične podrobnosti na splošno niso izpostavljeni razvijalcu aplikacije.

Izkušnja razvijalca

Razvijalci zkApp morajo postati vešči pisanja svojih programov v domensko specifičnih jezikih. Nekateri od teh jezikov so zelo podobni znanim programskim jezikom, medtem ko se je drugih precej težko naučiti. Razčlenimo nekaj od teh:

Cairo – Starkware DSL, potreben za izdelavo aplikacij na Starknetu. Prevede v zbirni jezik, specifičen za Cairo, ki ga lahko razlaga Cairo zkVM.

ZoKrates — ZoKrates je komplet orodij za običajne potrebe SNARK, vključno z jezikom na visoki ravni za pisanje vezij. ZoKrates ima tudi nekaj prilagodljivosti glede krivulj, sheme preverjanja in zaledja, kar razvijalcem omogoča vročo zamenjavo s preprostim argumentom CLI.

Circom — Circom je namensko izdelan jezik za izdelavo vezij. Trenutno je de facto jezik za vezja v proizvodnji. Jezik ni posebej ergonomičen. Sam jezik vas močno zave, da pišete vezja.

Leo — Leo je bil razvit kot jezik za verigo blokov Aleo. Leo ima sintakso, ki je podobna Rustu, in je narejen posebej za prehode stanj znotraj verige blokov.

Noir – Sintaksa, ki jo navdihuje Rust. Zasnovan okoli IR in ne glede na jezik sam, kar pomeni, da ima lahko poljubno sprednjo stran. 

Predvsem kompilacijski sklad Aztec Noir ima modularno arhitekturo

Za koga je?

Vsak razvijalec aplikacij, ki želi izkoristiti edinstvene lastnosti zk v svoji aplikaciji. Nekateri od teh jezikov so bili preizkušeni v boju z milijardami dolarjev, ki so se gibali po njih prek verig, kot sta ZCash in Starknet. Medtem ko nekateri projekti, o katerih bomo razpravljali, še niso povsem pripravljeni za produkcijsko uporabo, je trenutno najboljša strategija pisanje vaših vezij v enem od teh jezikov, razen če potrebujete natančnejše kontrole, ki jih ponuja komplet orodij, kot je Arkworks.

Prednosti

  • Uporabnikom ni treba razumeti osnovnih podrobnosti zk
  • Na voljo danes z nekaj proizvodnimi izkušnjami
  • Preverljivo na verigi
  • Ekosistemski agnostik

Proti

  • Uporabniki se morajo naučiti novega DSL
  • Izločeno orodje in podpora za vsakega od teh jezikov
  • Malo ali nič nadzora nad osnovnim dokaznim skladom (za zdaj)

Primarni cilj zkEVM je sprejeti prehod stanja Ethereum in dokazati njegovo veljavnost z jedrnatim dokazom o pravilnosti brez znanja. Kot je omenjeno v Vitalikovi objavi, obstaja več načinov za to s subtilnimi razlikami in ustreznimi kompromisi. 

Glavna tehnična razlika med vsemi temi je točno v tem, kje v jezikovnem skladu se izračun pretvori v obliko (aritmetizacija), ki se lahko uporabi v dokaznem sistemu. V nekaterih zkEVM se to zgodi v jezikih na visoki ravni (Solidity, Vyper, Yul), medtem ko drugi pristopi poskušajo dokazati EVM vse do ravni operacijske kode. Kompromis med temi pristopi je bil podrobno obravnavan v Vitalikovi objavi, vendar ga bom povzel v enem stavku: nižja ko se pretvorba/aritmetizacija zgodi v skladu, večja je kazen zmogljivosti.

Zakaj je dokazovanje operacijskih kod EVM v zk drago?

Glavni izziv pri ustvarjanju dokazov za virtualni stroj je, da velikost vezja raste sorazmerno z velikostjo VSEH možnih navodil za vsako izvedeno navodilo. To se zgodi, ker vezje ne ve, katera navodila bodo izvedena v posameznem programu, zato jih mora podpirati vsa.

V univerzalnih vezjih ima vsako izvedeno navodilo stroške, sorazmerne vsoti vseh podprtih navodil.

To v praksi pomeni, da plačate (v stroških delovanja) za najdražje možno navodilo, tudi če izvajate samo najpreprostejše navodilo. To vodi do neposrednega kompromisa med posplošljivostjo in zmogljivostjo – ko dodate več navodil za posplošljivost, to plačate na vsak navodilo dokažeš!

To je temeljna težava z univerzalnimi vezji, vendar z nov razvoj tehnologij Tako kot IVC (inkrementalno preverljivo računanje) je to omejitev mogoče zmanjšati z razdelitvijo računanja na manjše dele, od katerih ima vsak specializirana manjša podvezja.

Današnje implementacije zkEVM uporabljajo različne strategije za ublažitev vpliva te težave ... Na primer, zkSync iztrga dražje operacije (večinoma kriptografske predprevajalce, kot so razpršitve in ECDSA) iz glavnega vezja za preverjanje izvajanja v ločena vezja, ki so združena skupaj na konec prek snark rekurzije. ZkSync se je odločil za ta pristop, potem ko je ugotovil, da večina njihovih stroškov izvira iz nekaj zapletenih navodil.

V transakcijskih stroških prevladuje nekaj dragih operacij.

V bistvu je razlog, da je dokazovanje nabora ukazov, ki je bolj enakovreden EVM, dražje, ta, da EVM ni bil zasnovan za izračune zk. Opustitev EVM prej v skladu omogoča, da se zkEVM izvajajo na nizih ukazov, ki so bolj optimizirani za zk in zato cenejši za dokazovanje.

Za koga je?

Idealne stranke za zkEVM so pametne pogodbene aplikacije, ki potrebujejo rede velikosti cenejše transakcije od tistih, ki so na voljo na L1 Ethereum. Ni nujno, da imajo ti razvijalci strokovno znanje ali pasovno širino za pisanje zk aplikacij iz nič. Zato svoje aplikacije raje pišejo v jezikih višje ravni, ki jih poznajo, kot je Solidity. 

Zakaj toliko ekip gradi to?

Skaliranje Ethereuma je trenutno najbolj zahtevana aplikacija zk tehnologije.

ZkEVM je rešitev za skaliranje Ethereum, ki brez trenja ublaži težavo z zastoji, ki omejuje razvijalce L1 dApp.

Izkušnja razvijalca

Cilj zkEVM je podpirati izkušnjo razvijalcev, ki je čim bližje trenutnemu razvoju Ethereuma. Popolna podpora za Solidity pomeni, da ekipam ni treba graditi in vzdrževati več kodnih baz. To je nekoliko nepraktično za popolno izvedbo, ker morajo zkEVM zamenjati nekaj združljivosti, da lahko ustvarijo dokaze razumne velikosti v razumnem času.

Hitra študija primera: zkSync proti Scrollu

Primarna razlika med zkSync in Scroll je, kje/kdaj v skladu izvajata aritmetizacijo – to je, kje pretvorita običajne konstrukte EVM v SNARK prijazno predstavitev. Pri zkSync se to zgodi, ko pretvorijo bajtno kodo YUL v lasten niz navodil zk po meri. Za Scroll se to zgodi na koncu, ko je dejanska sled izvajanja ustvarjena z dejanskimi operacijskimi kodami EVM.

Torej je za zkSync vse enako kot pri interakciji z EVM, dokler ni ustvarjena bajtna koda zk. Za Scroll je vse enako, dokler se ne izvede dejanska bajtna koda. To je subtilna razlika, ki zamenja zmogljivost za podporo. Na primer, zkSync ne bo podpiral orodij za bajtno kodo EVM, kot je razhroščevalnik takoj, ker je popolnoma drugačna bajtna koda. Čeprav bo imel Scroll več težav pri pridobivanju dobre zmogljivosti iz nabora navodil, ta ni bil zasnovan za zk. Obe strategiji imata prednosti in slabosti in navsezadnje obstaja veliko eksogenih dejavnikov, ki bodo vplivali na njun relativni uspeh.

Prevajalnik vezij zkLLVM

💡 Kljub poimenovanju LLVM ni VM (virtualni stroj). LLVM je ime nabora orodij za prevajanje, ki je zasidran z vmesno predstavitvijo (IR), ki ni odvisna od jezika.

= nič; Fundacija (glede imena je a Šala o vbrizgavanju SQL če se sprašujete) gradi prevajalnik, ki lahko pretvori kateri koli čelni jezik LLVM v vmesno predstavitev, ki jo je mogoče dokazati znotraj SNARK. ZkLLVM je zasnovan kot razširitev obstoječe infrastrukture LLVM, industrijske standardne verige orodij, ki podpira številne jezike na visoki ravni, kot so Rust, C, C++ itd.

Kako deluje

Groba skica arhitekture zkLLVM

Uporabnik, ki želi dokazati nekaj računanja, bi to računanje preprosto implementiral v C++. ZkLLVM vzame to visokonivojsko izvorno kodo, ki jo podpira njihov spremenjeni prevajalnik clang (trenutno C++), in ustvari nekaj vmesne predstavitve vezja. Na tej točki je vezje pripravljeno za testiranje, vendar bo uporabnik morda želel dokazati vezje na podlagi nekaterih dinamičnih vnosov. Za obravnavo dinamičnih vhodov ima zkLLVM dodatno komponento, imenovano dodeljevalec, ki ustvari tabelo dodelitev z vsemi vhodi in pričami, ki so v celoti vnaprej obdelani in pripravljeni za dokazovanje skupaj z vezjem.

Ti dve komponenti sta vse, kar je potrebno za ustvarjanje dokaza. Uporabnik lahko teoretično sam ustvari dokaz, a ker je to nekoliko specializirana računska naloga, bo morda želel plačati nekomu drugemu, ki ima strojno opremo, da to stori namesto njega. Za ta mehanizem odkrivanja nasprotne stranke =nič; Fundacija je vzpostavila tudi 'trg dokazov', kjer dokazovalci tekmujejo za dokazovanje izračunov za uporabnike, ki jim bodo za to plačali. Ta dinamika prostega trga bo vodila k temu, da bodo dokazovalci optimizirali najdragocenejše naloge dokazovanja.

Kompromisi

Ker je vsaka računska naloga, ki jo je treba dokazati, edinstvena in ustvari drugačno vezje, obstaja neskončno število vezij, ki jih bodo morali preizkusniki znati obvladati. Ta prisilna posplošljivost otežuje optimizacijo posameznih vezij. Uvedba dokaznega trga omogoča specializacijo na vezjih, ki se trgu zdijo dragocena. Brez tega trga bi bilo zaradi tega naravnega problema s hladnim zagonom težko prepričati preverjalnik, da optimizira to vezje.

Drugi kompromis je klasična abstrakcija proti nadzoru. Uporabniki, ki so pripravljeni uporabiti ta vmesnik, enostaven za uporabo, se odrečejo nadzoru nad osnovnimi kriptografskimi primitivi. Za mnoge uporabnike je to zelo veljaven kompromis, saj je pogosto bolje prepustiti strokovnjakom za kriptografijo, da te odločitve sprejmejo namesto vas.

Prednosti

  • Uporabniki lahko pišejo kodo v poznanih jezikih visoke ravni
  • Vsi notranji elementi zk so abstrahirani stran od uporabnikov
  • Ne zanaša se na določeno vezje 'VM', ki doda dodatne stroške

Proti

  • Vsak program ima drugačno vezje. Težko optimizirati. (dokazni trg to delno reši)
  • Zamenjava/nadgradnja notranjih knjižnic zk ni enostavna (zahteva razcep)

ZkVM opisuje nadnabor vseh virtualnih strojev zk, medtem ko je zkEVM posebna vrsta zkVM, o kateri je bilo vredno razpravljati kot ločeni temi zaradi njene razširjenosti danes. Obstaja nekaj drugih projektov, ki delajo na gradnji bolj splošnih zkVM, ki temeljijo na ISA, poleg prilagojenih kripto VM.

Namesto dokazovanja EVM bi lahko sistem dokazal drugačno arhitekturo nabora ukazov (ISA), kot je RISC-V ali WASM v novem VM. Dva projekta, ki delata na teh posplošenih zkVM, sta RISC Zero in zkWASM. Tu se malo poglobimo v RISC Zero, da pokažemo, kako ta strategija deluje in nekatere njene prednosti/slabosti. 

Risc Zero proof generacija visoke ravni arhitekture

RISC Zero lahko dokaže kateri koli izračun, ki se izvaja v arhitekturi RISC-V. RISC-V je standard odprtokodne arhitekture nabora ukazov (ISA), ki postaja vse bolj priljubljen. Filozofija RISC (reduced instruction set computer) je izdelava izjemno preprostega niza ukazov z minimalno kompleksnostjo. To pomeni, da razvijalci na višjih ravneh v skladu na koncu prevzamejo večjo obremenitev pri izvajanju navodil z uporabo te arhitekture, hkrati pa poenostavljajo izvedbo strojne opreme.

Ta filozofija velja tudi za splošno računalništvo, čipi ARM izkoriščajo nize navodil v slogu RISC in so začeli prevladovati na trgu mobilnih čipov. Izkazalo se je, da imajo preprostejši nizi navodil tudi večjo energijsko in površinsko učinkovitost.

Ta analogija precej dobro drži za učinkovitost generiranja zk dokazov. Kot je bilo že omenjeno, pri dokazovanju sledi izvajanja v zk plačate vsoto stroškov vseh navodil za vsako postavko v sledenju, zato je bolje, da so preprostejša in manj skupnih navodil.

Kako deluje

Z vidika razvijalca je uporaba RISC Zero za obdelavo dokazov zk podobna uporabi funkcij AWS Lambda za obdelavo arhitekture zalednega strežnika. Razvijalci sodelujejo z RISC Zero ali AWS Lambda tako, da preprosto napišejo kodo in storitev obravnava vso kompleksnost zaledja.

Za RISC Zero razvijalci napišejo Rust ali C++ (po možnosti vse, kar cilja na RISC-V). Sistem nato vzame datoteko ELF, ustvarjeno med prevajanjem, in jo uporabi kot vhodno kodo za vezje VM. Razvijalci preprosto pokličejo dokaz, ki vrne potrdilo o prejemu (ki vsebuje zk dokaz o sledi izvajanja), objekt, ki ga lahko kdorkoli pokliče `preveri` od koder koli. Z vidika razvijalca ni treba razumeti, kako zk deluje, osnovni sistem obravnava vso to kompleksnost.

Pripravnik Risc Zero?

Prednosti

  • Enostaven za uporabo. Odpre vrata vsakemu programerju za izdelavo aplikacij zk
  • Eno vezje, za katerega se lahko specializirajo preverjalci
    • Prav tako manj površine za napad in manj za revizijo
  • Združljivo s katero koli verigo blokov, samo objavite dokazila

Proti

  • Prevzema veliko dodatnih stroškov (v velikosti dokazila in hitrosti generiranja), da bi podprl tako generični vmesnik
  • Zahteva znatno izboljšavo tehnik ustvarjanja dokazov, da bi dosegli široko podporo obstoječim knjižnicam

Vnaprej zgrajena vezja za večkratno uporabo

Za nekatera osnovna vezja in vezja za večkratno uporabo, ki so še posebej uporabna za aplikacije blockchain ali drugje, so ekipe morda že zgradile in optimizirale ta vezja za vas. Vnesete lahko le vnos za vaš poseben primer uporabe. Dokaz o vključitvi Merkle je na primer nekaj, kar je običajno potrebno v kripto aplikacijah (airdrop seznami, Tornado Cash itd.). Kot razvijalec aplikacij lahko vedno znova uporabite te v bitkah preizkušene pogodbe in samo spremenite plasti na vrhu, da ustvarite edinstveno aplikacijo.

Na primer, vezja Tornado Cash se lahko ponovno uporabijo za zasebna aplikacija airdrop ali aplikacijo za zasebno glasovanje. Manta in Semaphore gradita celoten komplet orodij običajnih pripomočkov vezja, kot je ta, ki jih je mogoče uporabiti v pogodbah Solidity z malo ali nič razumevanja osnovne matematike zk moon.

Vodnik – Izbira sklada

Kot smo na dolgo omenili, obstaja nešteto različnih možnosti za razvoj aplikacije zk, vse s svojim edinstvenim naborom kompromisov. Ta grafikon vam bo pomagal povzeti to matriko odločitev, tako da boste lahko na podlagi vaše ravni strokovnega znanja zk in potreb po zmogljivosti izbrali najboljše orodje za delo. To ni izčrpen seznam, nameravam ga dodati v prihodnosti, ko se bom zavedal, da bo na tem področju na voljo več orodij.

Priročnik za razvijalce aplikacij za zkGalaxy

zk App Dev Cheatsheet

1. Nizkonivojske knjižnice Snark

Kdaj uporabiti: 

  • Potrebujete natančen nadzor nad celotnim sklopom preverjalnikov
  • Želite se izogniti ponovni gradnji skupnih komponent
  • Želite eksperimentirati z različnimi kombinacijami dokaznih shem, krivulj in drugih nizkih nivojev primitivne

Kdaj ne uporabljati:

  • Ste novinec, ki išče vmesnike za dokazovanje na visoki ravni

Možnosti: 


3. zk Prevajalniki

Kdaj uporabiti: 

  • Ni pripravljen prevzeti režijskih stroškov univerzalnega vezja
  • Želite pisati vezja v znanih jezikih 
  • Potrebujete visoko prilagojeno vezje

Kdaj ne uporabljati: 

  • Želite nadzorovati temeljne kriptografske primitive
  • Potrebujete vezje, ki je že močno optimizirano

Možnosti:


5. zkVM

Kdaj uporabiti: 

  • Želite napisati kodo v jeziku visoke ravni 
  • Treba je dokazati pravilnost te izvedbe 
  • Nekatere vnose v to izvedbo je treba skriti pred preveriteljem
  • Imeti malo ali nič strokovnega znanja o zk

Kdaj ne uporabljati:

  • V okoljih z izjemno nizko zakasnitvijo (še vedno je počasno)
  • Imate ogromen program (za zdaj)

Možnosti:

2. zk DSL-ji

Kdaj uporabiti: 

  • Z veseljem se naučite novega jezika
  • Želite uporabljati nekaj v bitkah preizkušenih jezikov
  • Potrebujete minimalno velikost vezja, pripravljeni se odreči abstrakcijam

Kdaj ne uporabljati: 

  • Potrebujete natančen nadzor nad zaledjem dokazovanja (zaenkrat lahko zamenjate zaledja za nekatere DSL-je)

Možnosti:


4. zkEVM

Kdaj uporabiti: 

  • Imate dApp, ki že deluje na EVM
  • Potrebujete cenejše transakcije za svoje uporabnike 
  • Želite čim bolj zmanjšati napor pri uvajanju v novo verigo
  • Skrbi le za lastnost jedrnatosti zk (stiskanje)

Kdaj ne uporabljati: 

  • Potrebujete popolno enakovrednost EVM
  • Potrebujete lastnino zasebnosti zk 
  • Imate primer uporabe brez verige blokov 

Možnosti: 


6. Vnaprej zgrajena vezja za večkratno uporabo

Kdaj uporabiti: 

  • Imate aplikacijo pametne pogodbe, ki temelji na običajnih gradnikih zk, kot je vključitev Merkle
  • Imate malo ali nič strokovnega znanja o temeljnih stvareh zk

Kdaj ne uporabljati:

  • Imate visoko specializirane potrebe
  • Vaš primer uporabe ni podprt z vnaprej zgrajenimi vezji 

Možnosti: 

zaključek

zk je na samem vrhu več tehnologij, njegova izgradnja pa zahteva poglobljeno razumevanje matematike, kriptografije, računalništva in inženiringa strojne opreme. Vendar pa lahko razvijalci aplikacij izkoristijo moč zk brez doktorata, saj je vsak dan na voljo vedno več abstraktnih plasti. Ker se omejitve dokazilnih časov sčasoma počasi odpravijo z optimizacijami na vseh ravneh sklada, bomo verjetno videli še enostavnejša orodja za povprečnega razvijalca.

Upam, da sem vas, radovednega razvijalca programske opreme, prepričal, da lahko že danes začnete uporabljati zk v svojih aplikacijah. Srečno hekanje 🙂

kaj čakaš na anon, pojdi zgraditi nekaj zk aplikacij

Razkritja: Blockchain Capital je vlagatelj v več zgoraj omenjenih protokolov.

Stališča, izražena v vsaki objavi v spletnem dnevniku, so lahko osebna stališča vsakega avtorja in ne odražajo nujno stališč Blockchain Capitala in njegovih podružnic. Niti Blockchain Capital niti avtor ne jamčita za točnost, ustreznost ali popolnost informacij, navedenih v vsaki objavi v spletnem dnevniku. Blockchain Capital, avtor ali katera koli druga oseba ne dajejo ali dajejo nobene izjave ali jamstva, izrecnega ali implicitnega, ali v njegovem imenu glede točnosti in popolnosti ali poštenosti informacij, vsebovanih v kateri koli objavi v spletnem dnevniku, in ne prevzema nobene odgovornosti za kakršne koli take informacije. Nič, kar vsebuje vsaka objava v spletnem dnevniku, ne predstavlja naložbenega, regulativnega, pravnega, davčnega ali drugega svetovanja, prav tako se nanj ni mogoče zanašati pri odločanju o naložbi. Objav v spletnem dnevniku ne smete obravnavati kot trenutna ali pretekla priporočila ali nagovarjanje k ponudbi za nakup ali prodajo kakršnih koli vrednostnih papirjev ali za sprejetje kakršne koli naložbene strategije. Objave v spletnem dnevniku lahko vsebujejo napovedi ali druge izjave o prihodnosti, ki temeljijo na prepričanjih, predpostavkah in pričakovanjih, ki se lahko spremenijo zaradi številnih možnih dogodkov ali dejavnikov. Če pride do spremembe, se lahko dejanski rezultati bistveno razlikujejo od tistih, izraženih v izjavah o prihodnosti. Vse izjave, ki se nanašajo na prihodnost, veljajo samo za datum, ko so take izjave podane, in niti Blockchain Capital niti vsak avtor ne prevzemata nobene dolžnosti, da bi posodabljal takšne izjave, razen če to zahteva zakon. Če se kateri koli dokument, predstavitev ali drugo gradivo, ki ga je ustvaril, objavil ali kako drugače distribuira Blockchain Capital, sklicuje na katero koli objavo v spletnem dnevniku, je treba takšno gradivo prebrati s posebno pozornostjo na morebitne zavrnitve odgovornosti, navedene v njem.

Časovni žig:

Več od Blockchain Capital