Audringas vykdymas su įrodymais
Smėlio dėžė nėra liudytojas
Nepatikimo kodo vykdymas yra viena iš tų idėjų, kurios susirinkime skamba puikiai, nes dar niekas nesurašė incidento ataskaitos. Leiskite agentui iškviesti įrankį. Leiskite papildiniui transformuoti failą. Leiskite partnerio moduliui apdoroti duomenis. Įdėkite jį į smėlio dėžę. Puiku. Kodas negali pabėgti. Visi linkčioja. Tada auditorius paklausia, ką kodas iš tikrųjų padarė smėlio dėžėje, ir staiga paaiškėja, kad izoliavimas nėra tas pats, kas įrodymai.
Smėlio dėžė atsako į vieną klausimą: ar darbo krūvis liko ribose? Tai būtina. Tačiau to nepakanka. Sunkesnis klausimas yra tai, kas įvyko vykdymo metu. Kuris artefaktas buvo vykdomas? Kuri politika buvo taikyta? Kurių galimybių buvo prašoma? Kurie pagrindinės sistemos iškvietimai buvo leisti ar uždrausti? Kiek kuro, atminties ir laiko buvo sunaudota? Kas buvo gauta? Ar galima paleidimą pakartoti nepasikliaujant originalia mašina? Jei atsakymai gyvuoja žurnaluose ir pasitikėjime, sistema turi kostiumą, o ne audito seką.
Selvedge egzistuoja būtent šiai spragai. Puslapis tai vadina nepatikimo kodo vykdymo protokolo sluoksniu: AION įrodo samprotavimą, Ledger įrašo sistemos įvykius, o Selvedge fiksuoja vykdymą. Įgyvendinimas atitinka šią struktūrą. Darbo sritis yra Rust 2024 projektas su kūriniais, skirtais pagrindinių maišų ir išteklių limitams, vykdymo varikliams, Wasmtime ir Kera pagrindinėms sistemoms, determinizmui, WASI ir Kera pagrindinėms sistemoms, politikai, AION patikrai, CLI, MCP, registrui, paleidimo priemonei, paslaugai, auditui ir svečių SDK sąsajoms. Viešas pažadas yra sąmoningai paprastas: Selvedge vykdo nepatikimą kodą laikydamasis deterministinio vykdymo, politikos vykdymo ir patikros disciplinos.
Naudingas skirtumas yra mažas ir negailestingas. Smėlio dėžė teigia, kad kodas neišėjo. Selvedge sukurtas taip, kad pasakytų, ką kodas padarė.
Protokolas nėra žurnalas
Žurnalai naudingi žmonėms, kurie jau derina problemas. Jie mažiau naudingi, kai klausimas yra, ar paleidimą vėliau gali patikrinti kažkas, kas nepasitikėjo originalia pagrindine sistema. Žurnalo eilutė gali būti praleista, pertvarkyta, filtruota, sutrumpinta, performatuota ar paaiškinta. Protokolas turi būti vykdymo sutarties dalis.
Selvedge pagrindas apibrėžia SHA3-256 maišas, klaidų tipus, kelio tikrinimą, autentifikavimo prieigos raktus ir bendrus išteklių limitus. README aprašo protokolus su baitkodo, nustatymų, stdout, stderr, išvesties, atminties ir globaliųjų kintamųjų maišomis, taip pat kuro sąnaudas ir pagrindinės sistemos iškvietimų skaičius. Puslapis aprašo, kaip kiekvienas pagrindinės sistemos iškvietimas yra maišomas į SHA3-256 grandinę, o rezultatas įvyniojamas į AION stiliaus įrodymo voką su Ed25519 antspaudavimu. Tai yra skirtumas tarp sistemos, sakanti „pasitikėk manimi“, ir sistemos, sakanti „štai paketas“.
Šiame dizaine yra sveika paranojos dozė. Artefakto maiša įvardija kodą. Nustatymų maiša įvardija deterministinį profilį. Protokolas įvardija, kas kirto pagrindinės sistemos ribą. Pasirašytas vokas daro klastojimą matomą. Neprisijungus atliekama patikra reiškia, kad originali vykdymo aplinka nėra vienintelis liudytojas. Tai dalis, kurią daugelis smėlio dėžės istorijų praleidžia, nes tai mažiau įdomu nei parodyti papildinį, veikiantį demonstracijoje. Demonstracijos retai klausia, kas redagavo audito žurnalą. Auditoriai klausia.
Numatytasis atsisakymas taip pat reikalauja kvitų
Numatytoji atmetimo politika yra gera laikysena, bet baisus šūkis, jei viskas baigiasi skaidrėje. Selvedge politika suteikia šūkiui dantų. Politikos paketas apibrėžia WASM galimybes, tokias kaip laikrodis, atsitiktinumas, failų sistema, tinklas, aplinka, stdio, procesas ir pasirinktiniai. Jis nustato išteklių ribas atminčiai, failo dydžiui, instrukcijų skaičiui ir laikui. Jis tikrina nekintamąsias sąlygas, atmeta pasikartojančias galimybes, pateikia struktūruotas klaidas ir susieja gedimus su bendru Dweve klaidų žodynu. Vykdymo programa tada pritaiko išteklių ribas vykdymo konfigūracijai prieš paleisdama darbo krūvį.
Tai reiškia, kad politika nėra klausimynas, į kurį atsakoma po vykdymo. Ji yra vykdymo įvestis. Jei darbo krūvis prašo laiko, atsitiktinumo, failų sistemos, tinklo, aplinkos ar proceso prieigos, tas prašymas turi atitikti politiką. Jei jis išleidžia per daug kuro, atminties ar sieninio laikrodžio laiko, vykdymas baigiasi kaip kontroliuojamas gedimas. Jei politika yra nenuosekli, ji turėtų nepavykti prieš artefaktui pradedant daryti ką nors įdomaus. Labai nuobodu. Labai naudinga. Nuobodulys yra tai, kaip išsaugome savo savaitgalius.
Svarbiausia tai, kad politikos sprendimai nėra atskirti nuo įrodymų. Smėlio dėžė gali leisti arba uždrausti plačią kategoriją ir vis tiek palikti auditų seką ploną. Selvedge yra sukurta remiantis idėja, kad kiekvienas vartų sprendimas ir išteklių nuskaitymas priklauso vykdymo istorijai. Būtent tai daro ją naudingą agentų įrankiams, trečiųjų šalių papildinių vykdymui, Kera išvadoms, reguliuojamiems darbo krūviams ir partnerių kodui. Darbas gali būti nepatikimas. Įrodymai neturėtų būti.
Determinizmas yra vieta, kur pagrindinis kompiuteris nustoja improvizuoti
Atkūrimą lengva pažadėti, bet sunku išlaikyti. Pagrindinis kompiuteris turi laikrodį. Pagrindinis kompiuteris turi atsitiktinumą. Slankiojo kablelio NaN elgsena gali būti nepatogi. SIMD gali skirtis skirtingose architektūrose. Failų sistemos, aplinkos kintamieji ir proceso būsena yra puikūs būdai įnešti nedeterminizmą į vietas, kuriose niekas jo nesitikėjo. Jei norite atkūrimo, turite pašalinti arba kontroliuoti tuos šaltinius, kol jie netapo pasiteisinimais.
Selvedge daro deterministinį vykdymą numatytuoju. README aprašo virtualų laikrodį, pririštą prie 2024-01-01 epochos, sėklą turintį ChaCha20 atsitiktinumą, kuro matavimą, protokolo generavimą ir NaN kanonizavimą. Jame taip pat sakoma, kad SIMD aptikimas yra greičiausias, bet tik tos pačios architektūros, o SIMD išjungimas yra visiškai perkeliamas kelių platformų maršrutas. Ta paskutinė dalis svarbi, nes determinizmas nėra malda. Tai konfigūracijos ir architektūros sprendimas, ir kartais sąžiningas mainas yra greitis į perkeliamumą.
Vykdymo programa pagal numatytuosius nustatymus naudoja Wasmtime pagrindą su įjungtu deterministiniu vykdymu. Kera yra kitas pagrindas, skirtas Graph IR ir dvejetainių neuroninių tinklų darbo krūviams. Tas padalijimas yra protingas. WASM yra bendras nepatikimų komponentų kelias. Kera yra AI grafų kelias. Abiem reikia tos pačios aplinkinės disciplinos: politika prieš vykdymą, deterministiniai nustatymai, protokolas po vykdymo ir įrodymai aplink rezultatą.
Kodėl agentai tai daro mažiau pasirenkama
Agent systems make untrusted execution fashionable again, which is a sentence that should make every security person sit up a little straighter.A model asks for a tool call. A plugin runs a transformation. A generated helper script touches data. A partner tool comes through MCP. The model did not write the tool, the tool may not be reviewed with the same care as product code, and the user still expectsthe system to explain what happened. Good luck with that if the only answer is a log directory and vibes.
Selvedge has an MCP server surface for agent tools, a CLI for build, verify, run and replay style workflows, a daemon for long-running execution, runner pooling and cache warming, registry client and server crates, and a guest SDK. The point is not that every surface is the same. The point is that the evidence shape should be comparable. Whether a workload enters as a WASM component, a Kera graph, an agent tool or a service job, the run should end with something you can verify.
Performance is atrade, not a spell
The Selvedge page includes benchmark numbers from the repository BENCHMARKS.md: cold start is the headline win, the hot path is more nuanced, Kera JIT has a warm graph story, and vanilla Wasmtime still holds some repeated-call hot paths. That is the right way to talk about it. Runtime work is full of tradeoffs. If a component model produces a transcript and a proof envelope, it has different costs than the bare minimum path. If cold start is your pain, that evidence path may help. If the workload is a tight repeated call with no need for transcript overhead, the answer may be different. Very inconvenient, reality. It refuses to be a brochure.
The article version of the performance story is therefore simple: choose the runtime for the workload.Do not use a proof envelope as a magic speed potion. Use it when the cost of not having replayable evidence is higher than the overhead. For agent tools, regulated data processing, third-party plugins and execution where a later human will ask what happened, that cost is often real.
What to review before using it
First, decide whether you need containment, evidence, or both. If the workload is trusted and internal, Selvedge may be more machinery than needed. If the workload is untrusted, partner-supplied, model-triggered or audit-facing, the transcript begins to earn its place.
Second, review the policy. Which capabilities are allowed? Which are denied? What are the fuel, memory and time limits? Is deterministic mode required or merely permissive? Are filesystem and network access narrow enough? Is the policy versioned with the artifact? If policy lives in a wiki and execution lives somewhere else, the design is already drifting.
Third, test replay as a product behaviour. Do not wait for an audit to discover whether the envelope verifies offline. Run the same artifact, same policy and same inputs twice. Compare transcripts. Try denied capabilities. Break the checksum. Change the seed. Disable SIMD if cross-platform identity matters. The annoying tests are the point.
The lesson
Selvedge is not a prettier sandbox. It is an execution evidence layer. It runs WASM and Kera artifacts, starts from default deny, constrains resources, controls deterministic inputs, hashes execution into transcripts, and wraps results in a proof envelope that can be checked later. That is a different promise from the code stayed in its corner.
Kadangi AI sistemos kviečia vis daugiau įrankių, paleidžia vis daugiau sugeneruotų pagalbininkų ir priima vis daugiau trečiųjų šalių komponentų, tas skirtumas nustoja būti vien akademinis. Klausimas bus ne tik tai, ar darbo krūvis ištrūko. Klausimas bus, ką jis padarė, pagal kurią politiką, su kokiais įvesties duomenimis, kokius rezultatus sukūrė ir ar kas nors kitas gali pakartoti tą teiginį.
Smėlio dėžė yra siena. „Selvedge“ bando būti ir liudininku.