Selvedge in izvedba z dokazili

Peskovnik lahko kodo zadrži v kotu, a ne dokaže, kaj se je v njem zgodilo. Selvedge ovije izvajanje WASM in Kera v politike, deterministično predvajanje,...

Selvedge in izvedba z dokazili

Peščeni peskovnik ni priča

Zaganjanje nezaupanja vredne kode je ena tistih zamisli, ki se na sestanku slišijo odlično, ker še nihče ni napisal poročila o incidentu. Agentu dovolimo, da pokliče orodje. Vtičniku dovolimo, da preoblikuje datoteko. Partnerskemu modulu dovolimo, da obdela podatke. Postavimo ga v peskovnik. Krasno. Koda ne more uiti. Vsi prikimavajo. Potem revizor vpraša, kaj je koda dejansko počela v peskovniku, in nenadoma vsi v sobi ugotovijo, da zadrževanje ni isto kot dokaz.

Peskovnik odgovori na eno vprašanje: ali je delovna obremenitev ostala znotraj meja? To je nujno. Ni pa dovolj. Težje vprašanje je, kaj se je zgodilo med izvajanjem. Kateri izdelek se je izvedel? Katera politika je bila uporabljena? Katere zmogljivosti so bile zahtevane? Kateri klici gostitelja so bili dovoljeni ali zavrnjeni? Koliko goriva, pomnilnika in časa je porabilo? Kaj je prišlo ven? Ali je mogoče izvajanje ponoviti, ne da bi zaupali prvotnemu računalniku? Če ti odgovori živijo v dnevnikih in zaupanju, ima sistem kostum, ne pa sledi revizije.

Selvedge obstaja prav za to vrzel. Stran ga imenuje plast prepisa izvajanja za nezaupanja vredno kodo: AION dokazuje sklepanje, Ledger beleži sistemske dogodke, Selvedge pa zajame izvajanje. Implementacija sledi tej obliki. Delovni prostor je projekt Rust 2024 z zabojniki za jedrne izvlečke in omejitve virov, izvajalnimi mehanizmi, zaledji Wasmtime in Kera, determinizmom, gostitelji WASI in Kera, politiko, preverjanjem AION, vmesnikom CLI, MCP, registrom, zaganjalnikom, demonom, revizijo in površinami SDK za goste. Javna obljuba je namerno preprosta: Selvedge izvaja nezaupanja vredno kodo pod determinističnim izvajanjem, uveljavljanjem politik in disciplino preverjanja.

Koristna razlika je majhna in kruta. Peskovnik pravi, da koda ni odšla. Selvedge je zasnovan tako, da pove, kaj je koda storila.

Prepise je površina izdelka. Nalaganje, zagon, zgoščevanje in pečatenje so ločeni koraki, ker dokazi potrebujejo strukturo, ne pa topel občutek.

Prepise ni dnevnik

Dnevniki so uporabni za ljudi, ki že odpravljajo napake. Manj uporabni so, ko je vprašanje, ali je mogoče izvajanje pozneje preveriti pri nekom, ki prvotnemu gostitelju ni zaupal. Vrstica dnevnika lahko manjka, je preurejena, filtrirana, okrnjena, preoblikovana ali razložena stran. Prepise mora biti del pogodbe o izvajanju.

Jedro Selvedge opredeljuje izvlečke SHA3-256, vrste napak, preverjanje poti, žetone za preverjanje pristnosti in skupne omejitve virov. Datoteka README opisuje prepise z zgoščevanjem bajtne kode, nastavitev, standardnega izhoda, standardne napake, izhoda, pomnilnika in globalnih spremenljivk ter porabo goriva in število klicev gostitelja. Stran opisuje, da je vsak klic gostitelja zgoščen v verigo SHA3-256 in da je rezultat zavit v ovojnico dokaza v slogu AION s pečatenjem Ed25519. To je razlika med sistemom, ki pravi zaupaj mi, in sistemom, ki pravi tukaj je paket.

V tej zasnovi je zdrava mera paranoje. Izvleček izdelka poimenuje kodo. Izvleček nastavitev poimenuje deterministični profil. Prepise poimenuje, kaj je prečkalo mejo gostitelja. Podpisana ovojnica naredi posege vidne. Preverjanje brez povezave pomeni, da prvotno izvajalno okolje ni edina priča. To je del, ki ga mnoge zgodbe o peskovnikih izpustijo, ker je manj zabavno kot prikaz vtičnika v predstavitvi. Predstavitve le redko vprašajo, kdo je urejal dnevnik revizije. Revizorji pa.

Privzeto zavrni potrebuje tudi potrdila

Privzeto zavračanje je dobra drža in grozen slogan, če ostane samo na predstavitvi. Politika Selvedge daje sloganu zobe. Paket pravilnikov opredeljuje zmogljivosti WASM, kot so ura, naključnost, datotečni sistem, omrežje, okolje, stdio, proces in po meri. Nosijo omejitve virov za pomnilnik, velikost datoteke, število navodil in čas. Preverja invariante, zavrača podvojene zmogljivosti, zagotavlja strukturirane napake in preslika napake v skupni besednjak napak Dweve. Izvajalnik nato uporabi omejitve virov za konfiguracijo izvajanja, preden se delovna obremenitev začne.

To pomeni, da politika ni vprašalnik, na katerega se odgovori po izvedbi. Je vhod v izvajanje. Če delovna obremenitev zahteva dostop do časa, naključnosti, datotečnega sistema, omrežja, okolja ali procesa, mora ta zahteva prestati politiko. Če porabi preveč goriva, pomnilnika ali stenskega časa, se izvedba konča kot nadzorovan neuspeh. Če je politika nedosledna, bi morala spodleteti, preden artefakt začne početi kaj zanimivega. Zelo dolgočasno. Zelo uporabno. Dolgočasnost je tisto, kako ohranjamo vikende.

Privzeto zavračanje si zasluži svoj obstoj le, ko so odločitve del zapisnika. V nasprotnem primeru je le strogo videti potrditveno polje.

Pomembna točka je, da odločitve politike niso ločene od dokazov. Peskovnik lahko dovoli ali zavrne široko kategorijo in še vedno pusti tanek revizijski zapis. Selvedge je zgrajen okoli ideje, da vsaka odločitev o prepustnici in vsako branje virov spadata v zgodbo izvedbe. Prav to ga dela uporabnega za orodja agentov, izvajanje vtičnikov tretjih oseb, sklepanje Kera, regulirane delovne obremenitve in kodo partnerjev. Delo je lahko nezaupanja vredno. Dokazi ne bi smeli biti.

Determinizem je tam, kjer gostitelj neha improvizirati

Predvajanje je lahko obljubiti in težko izpolniti. Gostitelj ima uro. Gostitelj ima naključnost. Obnašanje NaN pri plavajoči vejici je lahko nerodno. SIMD se lahko razlikuje med arhitekturami. Datotečni sistemi, okoljske spremenljivke in stanje procesa so odlični načini za pretihotapljenje nedeterminizma na mesta, kjer ga nihče ne pričakuje. Če želite predvajanje, morate te vire odstraniti ali nadzorovati, preden postanejo izgovori.

Selvedge naredi deterministično izvajanje privzeto. README opisuje virtualno uro, pritrjeno na epoho 2024-01-01, nasajeno naključnost ChaCha20, merjenje goriva, generiranje zapisnika in kanonizacijo NaN. Prav tako pravi, da je zaznavanje SIMD najhitrejše, vendar le na isti arhitekturi, medtem ko je onemogočanje SIMD popolnoma prenosljiva pot med platformami. Ta zadnji del je pomemben, ker determinizem ni molitev. Je odločitev o konfiguraciji in arhitekturi, včasih pa je poštena menjava hitrost za prenosljivost.

Izvajalnik privzeto uporablja zaledje Wasmtime z omogočenim determinističnim izvajanjem. Kera je drugo zaledje, namenjeno grafu IR in binarnim nevronskim mrežam. Ta delitev je smiselna. WASM je splošna pot za nezaupanja vredne komponente. Kera je pot za grafe umetne inteligence. Obe potrebujeta enako okoliško disciplino: politiko pred izvajanjem, deterministične nastavitve, zapisnik po izvajanju in dokaz okoli rezultata.

Predvajanje je zaščiteno z odstranitvijo osebnosti gostitelja. Čas, naključnost, obnašanje NaN in profil SIMD niso prepuščeni lokalnemu razpoloženju.

Zakaj agenti to delajo manj izbirno

Agentski sistemi so spet naredili nezaupanja vredno izvajanje moderno, kar je stavek, ob katerem bi moral vsak varnostni strokovnjak nekoliko vzravnati hrbet. Model zahteva klic orodja. Vtičnik izvede transformacijo. Generiran pomožni skript se dotakne podatkov. Orodje partnerja pride prek MCP. Model ni napisal orodja, orodje morda ni bilo pregledano z enako skrbnostjo kot produktna koda, uporabnik pa vseeno pričakuje, da mu sistem razloži, kaj se je zgodilo. Srečno s tem, če je edini odgovor imenik z dnevniki in občutki.

Selvedge ima površino strežnika MCP za agentska orodja, CLI za delovne tokove v slogu build, verify, run in replay, demona za dolgotrajno izvajanje, združevanje izvajalcev in ogrevanje predpomnilnika, zabojnike za registrski odjemalec in strežnik ter gostujoči SDK. Bistvo ni v tem, da je vsaka površina enaka. Bistvo je, da mora biti oblika dokazov primerljiva. Ne glede na to, ali delovna obremenitev vstopi kot komponenta WASM, graf Kera, agentsko orodje ali storitvena naloga, naj se izvajanje konča z nečim, kar lahko preverite.

Različne vstopne točke so v redu. Različne resnice niso. Površine izvajalnika so smiselne le, če ustvarijo eno obliko dokazov.

Zmogljivost je kompromis, ne čarovnija

Stran Selvedge vključuje primerjalne številke iz datoteke BENCHMARKS.md v skladišču: hladen zagon je glavna prednost, vroča pot je bolj zapletena, Kera JIT ima zgodbo o toplih grafih, navaden Wasmtime pa še vedno drži nekatere vroče poti s ponavljajočimi se klici. To je pravi način pogovora o tem. Delo izvajalnika je polno kompromisov. Če model komponent ustvari prepis in ovojnico dokazov, ima drugačne stroške kot pot z minimalnim obsegom. Če je vaša težava hladen zagon, vam ta pot dokazov morda pomaga. Če je delovna obremenitev tesen ponavljajoč se klic brez potrebe po režiji prepisa, je odgovor morda drugačen. Zelo neprijetna, resničnost. Noče biti brošura.

Članska različica zgodbe o zmogljivosti je zato preprosta: izberite izvajalnik glede na delovno obremenitev. Ne uporabljajte ovojnice dokazov kot čarobnega napoja za hitrost. Uporabite jo, kadar so stroški odsotnosti ponovljivih dokazov višji od režije. Pri agentskih orodjih, obdelavi reguliranih podatkov, vtičnikih tretjih oseb in izvajanju, kjer bo pozneje človek vprašal, kaj se je zgodilo, so ti stroški pogosto resnični.

Kaj pregledati pred uporabo

Najprej se odločite, ali potrebujete izolacijo, dokaze ali oboje. Če je delovna obremenitev zaupanja vredna in notranja, je Selvedge morda več mehanizacije, kot je potrebno. Če je delovna obremenitev nezaupanja vredna, dobavljena s strani partnerja, sprožena z modelom ali namenjena reviziji, začne prepis upravičevati svoje mesto.

Drugi korak je pregled pravilnika. Katere zmožnosti so dovoljene? Katere so zavrnjene? Kakšne so omejitve goriva, pomnilnika in časa? Je deterministični način obvezen ali le dovoljen? Sta dostop do datotečnega sistema in omrežja dovolj ozka? Je pravilnik različicen skupaj z artefaktom? Če pravilnik živi v wikiju, izvajanje pa nekje drugje, se zasnova že oddaljuje od namena.

Tretji korak je preizkus ponovitve kot produktnega vedenja. Ne čakajte na revizijo, da odkrijete, ali se ovojnica preverja brez povezave. Zaženite isti artefakt, isti pravilnik in iste vnose dvakrat. Primerjajte prepise. Poskusite zavrnjene zmožnosti. Pokvarite kontrolno vsoto. Spremenite seme. Onemogočite SIMD, če je medplatformna identiteta pomembna. Nadležni testi so bistvo.

Nauček

Selvedge ni lepši peskovnik. Je plast dokazov o izvajanju. Poganja artefakte WASM in Kera, začne s privzeto zavrnitvijo, omejuje vire, nadzoruje deterministične vnose, zgoščuje izvajanje v prepise in rezultate ovije v ovojnico dokazov, ki jo je mogoče preveriti pozneje. To je drugačna obljuba od koda je ostal v svojem kotu.

Ker sistemi z umetno inteligenco kličejo več orodij, izvajajo več ustvarjenih pomočnikov in sprejemajo več komponent tretjih oseb, ta razlika preneha biti akademska. Vprašanje ne bo le, ali je delovna obremenitev ušla. Vprašanje bo, kaj je naredila, pod katero politiko, s katerimi vhodi, katere izhode je ustvarila in ali lahko nekdo drug ponovi to trditev.

Peskovnik je zid. Selvedge poskuša biti tudi priča.