Selvedge un izpilde ar pierādījumiem

Smilšu kaste var noturēt kodu stūrī, bet tā nepierāda, kas tajā noticis. Selvedge aptver WASM un Kera izpildi ar politiku, deterministisku atskaņošanu, SHA3...

Selvedge un izpilde ar pierādījumiem

A sandbox is not a witness

Running untrusted code is one of those ideas that sounds fine in a meeting because nobody has drawn the incident report yet. Let the agent call a tool. Let the plugin transform a file. Let the partner module process the data. Put it in a sandbox. Lovely. The code cannot escape. Everyone nods. Then the auditor asks what the code actually did inside the sandbox, and suddenly the room discovers that containment is not the same as evidence.

A sandbox answers one question: did the workload stay inside the boundary? That is necessary. It is not enough. The harder question is what happened during the run. Which artifact executed? Which policy was applied? Which capabilities were requested? Which host calls were allowed or denied? How much fuel, memory and time did it spend? What came out? Can the run be replayed without trusting the original machine? If those answers live in logs and confidence, the system has a costume, not an audit trail.

Selvedge exists for that gap. The page calls it the execution transcript layer for untrusted code: AION proves reasoning, Ledger records system events, and Selvedge captures execution. The implementation follows that shape. The workspace is a Rust 2024 project with crates for core digests and resource limits, execution engines, Wasmtime and Kera backends, determinism, WASI and Kera hosts, policy, AION verification, CLI, MCP, registry, runner, daemon, audit and guest SDK surfaces. The public promise is intentionally plain: Selvedge executes untrusted code under deterministic execution, policy enforcement and verification discipline.

The useful distinction is small and brutal. A sandbox says the code did not leave. Selvedge is designed to say what the code did.

The transcript is the product surface. Load, run, hash and seal are separate steps because evidence needs structure, not a warm feeling.

The transcript is not a log

Logs are useful for humans who are already debugging. They are less usefulwhen the question is whether a run can be verified later by someone who did not trust the original host. A log line can be missing, reordered, filtered, truncated, reformatted, or explained away. A transcript has to be part of the execution contract.

Selvedge core defines SHA3-256 digests, error types, path validation, authentication tokens and shared resource limits. The README describes transcripts with hashes of bytecode, settings, stdout, stderr, output, memory and globals, plus fuel consumption and host call counts. The page describes every host call being hashed into a SHA3-256 chain and the result wrapped in an AION-style proof envelope with Ed25519 sealing. That is the difference between a system saying trust me and a system saying here is the packet.

There is a healthy bit of paranoia in that design. The artifact digest names the code. The settings digest names the deterministic profile. The transcript names what crossed the host boundary. The signed envelope makes tampering visible. Offline verification means the original runtime is not the only witness. This is the part many sandbox stories skip because it is less fun than showing a plugin running in a demo. Demos rarely ask who edited the audit log. Auditors do.

Default deny needs receipts too

Noklusējuma liegums ir laba nostāja un briesmīgs sauklis, ja tas apstājas pie slaida. Selvedge politika dod šim sauklim zobus. Politikas kopa definē WASM iespējas, piemēram, pulksteni, nejaušību, failu sistēmu, tīklu, vidi, stdio, procesu un pielāgotās iespējas. Tā nes resursu ierobežojumus atmiņai, faila izmēram, instrukciju skaitam un laikam. Tā validē invariantus, noraida dublētas iespējas, sniedz strukturētas kļūdas un kartē kļūmes kopējā Dweve kļūdu vārdnīcā. Palaidējs pēc tam piemēro resursu ierobežojumus izpildes konfigurācijai pirms darba slodzes sākuma.

Tas nozīmē, ka politika nav anketa, uz kuru atbild pēc izpildes. Tā ir ievade izpildei. Ja darba slodze pieprasa laiku, nejaušību, failu sistēmu, tīklu, vidi vai procesa piekļuvi, šim pieprasījumam ir jāiziet cauri politikai. Ja tā patērē pārāk daudz degvielas, atmiņas vai sienas pulksteņa laika, izpilde beidzas kā kontrolēta kļūme. Ja politika ir nekonsekventa, tai vajadzētu neizdoties, pirms artefakts sāk darīt kaut ko interesantu. Ļoti garlaicīgi. Ļoti noderīgi. Garlaicība ir tas, kā mēs saglabājam nedēļas nogales.

Noklusējuma liegums pelna savu vietu tikai tad, kad lēmumi ir daļa no transkripta. Pretējā gadījumā tas ir tikai stingri izskatīga atzīmējama rūtiņa.

Svarīgais punkts ir tas, ka politikas lēmumi nav atdalīti no pierādījumiem. Smilšu kaste var atļaut vai liegt plašu kategoriju un tomēr atstāt audita taku plānu. Selvedge ir veidota ap ideju, ka katrs vārtu lēmums un resursu nolasījums pieder pie izpildes stāsta. Tas ir tas, kas to padara noderīgu aģentu rīkiem, trešo pušu spraudņu izpildei, Kera secinājumiem, regulētām darba slodzēm un partneru kodam. Darbs var būt neuzticams. Pierādījumiem nevajadzētu būt.

Determinisms ir vieta, kur resursdators pārstāj improvizēt

Atkārtošanu ir viegli solīt un grūti izpildīt. Resursdatoram ir pulkstenis. Resursdatoram ir nejaušība. Peldošā komata NaN uzvedība var būt neveikla. SIMD var atšķirties starp arhitektūrām. Failu sistēmas, vides mainīgie un procesa stāvoklis ir lieliski veidi, kā ievest nedeterminismu vietās, kur neviens to negaida. Ja vēlaties atkārtošanu, jums ir jānoņem vai jākontrolē šie avoti, pirms tie kļūst par attaisnojumiem.

Selvedge padara deterministisku izpildi par noklusējumu. README apraksta virtuālo pulksteni, kas fiksēts pie 2024-01-01 laikmeta, sēklotu ChaCha20 nejaušību, degvielas mērīšanu, transkripta ģenerēšanu un NaN kanonizāciju. Tajā arī teikts, ka SIMD noteikšana ir ātrākā, bet tikai vienas arhitektūras ietvaros, savukārt SIMD atspējošana ir pilnībā pārnēsājams starpplatformu ceļš. Šī pēdējā daļa ir svarīga, jo determinisms nav lūgšana. Tas ir konfigurācijas un arhitektūras lēmums, un dažreiz godīgais kompromiss ir ātrums pret pārnēsājamību.

Palaidējs pēc noklusējuma izmanto Wasmtime aizmugursistēmu ar iespējotu deterministisku izpildi. Kera ir otra aizmugursistēma, kas paredzēta Graph IR un bināro neironu tīklu darba slodzēm. Šis sadalījums ir saprātīgs. WASM ir vispārējais neuzticamo komponentu ceļš. Kera ir AI grafu ceļš. Abiem ir nepieciešama tā pati apkārtējā disciplīna: politika pirms izpildes, deterministiski iestatījumi, transkripts pēc izpildes un pierādījums ap rezultātu.

Atkārtošana tiek aizsargāta, noņemot resursdatora personību. Laiks, nejaušība, NaN uzvedība un SIMD profils netiek atstāti vietējā noskaņojuma ziņā.

Kāpēc aģenti padara šo mazāk izvēles iespēju

Agentu sistēmas atkal padara neuzticamas izpildes modi, kas ir teikums, kam vajadzētu likt ikvienam drošības speciālistam sēdēt nedaudz taisnāk. Modelis pieprasa rīka izsaukumu. Spraudnis veic transformāciju. Ģenerēts palīgskripts pieskaras datiem. Partnera rīks nāk caur MCP. Modelis nerakstīja rīku, rīks, iespējams, nav pārskatīts ar tādu pašu rūpību kā produkta kods, un lietotājs joprojām sagaida, ka sistēma izskaidros, kas notika. Veiksmi ar to, ja vienīgā atbilde ir žurnālu direktorija un sajūtas.

Selvedge ir MCP servera virsma agentu rīkiem, CLI būvēšanas, pārbaudes, izpildes un atkārtošanas stila darbplūsmām, dēmons ilgstošai izpildei, izpildītāju kopu veidošana un kešatmiņas sildīšana, reģistra klienta un servera krātuves, kā arī viesu SDK. Būtība nav tā, ka katra virsma ir vienāda. Būtība ir tā, ka pierādījumu formai jābūt salīdzināmai. Neatkarīgi no tā, vai darba slodze ienāk kā WASM komponents, Kera grafs, agenta rīks vai pakalpojuma darbs, izpildei jābeidzas ar kaut ko, ko var pārbaudīt.

Dažādi ieejas punkti ir pieņemami. Dažādas patiesības nav. Izpildes virsmām ir jēga tikai tad, ja tās rada vienu pierādījumu formu.

Veiktspēja ir kompromiss, nevis burvestība

Selvedge lapā ir iekļauti etalona skaitļi no repozitorija BENCHMARKS.md: aukstā palaišana ir galvenais ieguvums, karstais ceļš ir niansētāks, Kera JIT ir silta grafa stāsts, un parastais Wasmtime joprojām notur dažus atkārtotu izsaukumu karstos ceļus. Tas ir pareizais veids, kā par to runāt. Izpildes darbs ir pilns ar kompromisiem. Ja komponentu modelis rada transkriptu un pierādījumu aploksni, tam ir citas izmaksas nekā minimālajam ceļam. Ja aukstā palaišana ir jūsu sāpe, šis pierādījumu ceļš var palīdzēt. Ja darba slodze ir ciešs atkārtots izsaukums bez nepieciešamības pēc transkripta papildu slodzes, atbilde var būt citāda. Ļoti neērti, realitāte. Tā atsakās būt brošūra.

Raksta versija veiktspējas stāstam tāpēc ir vienkārša: izvēlieties izpildes vidi darba slodzei. Neizmantojiet pierādījumu aploksni kā maģisku ātruma dziru. Izmantojiet to, ja izmaksas par atkārtojamas pierādījumu neesamību ir augstākas nekā papildu slodze. Agentu rīkiem, regulētu datu apstrādei, trešo pušu spraudņiem un izpildei, kur vēlāk cilvēks jautās, kas notika, šīs izmaksas bieži ir reālas.

Kas jāpārskata pirms lietošanas

Pirmkārt, izlemiet, vai jums nepieciešama izolācija, pierādījumi vai abi. Ja darba slodze ir uzticama un iekšēja, Selvedge var būt vairāk mehānismu, nekā nepieciešams. Ja darba slodze ir neuzticama, no partnera piegādāta, modeļa ierosināta vai audita priekšā, transkripts sāk pelnīt savu vietu.

Otrkārt, pārskatiet politiku. Kuras iespējas ir atļautas? Kuras ir liegtas? Kādi ir resursu, atmiņas un laika ierobežojumi? Vai deterministiskais režīms ir obligāts vai tikai pieļaujams? Vai failu sistēmas un tīkla piekļuve ir pietiekami šaura? Vai politika ir versijota kopā ar artefaktu? Ja politika dzīvo wiki un izpilde dzīvo citur, dizains jau novirzās.

Treškārt, testējiet atkārtošanu kā produkta uzvedību. Ne gaidiet auditu, lai atklātu, vai aploksne verificējas bezsaistē. Palaidiet to pašu artefaktu, to pašu politiku un tās pašas ievades divreiz. Salīdziniet transkriptus. Izmēģiniet liegtas iespējas. Salauziet kontrolsummu. Mainiet sēklu. Atspējojiet SIMD, ja starpplatformu identitāte ir svarīga. Kaitinošie testi ir būtība.

Mācība

Selvedge nav skaistāka smilšu kaste. Tas ir izpildes pierādījumu slānis. Tas izpilda WASM un Kera artefaktus, sākas ar noklusējuma liegumu, ierobežo resursus, kontrolē deterministiskās ievades, hešo izpildi transkriptos un iesaiņo rezultātus pierādījumu aploksnē, ko var pārbaudīt vēlāk. Tas ir cits solījums nekā kods palika savā stūrī.

AI sistēmām izsaucot arvien vairāk rīku, palaižot vairāk ģenerētu palīgprogrammu un pieņemot vairāk trešo pušu komponentu, šī atšķirība pārstāj būt tikai teorētiska. Jautājums vairs nebūs tikai par to, vai darba slodze izkļuva. Jautājums būs par to, ko tā darīja, saskaņā ar kuru politiku, ar kādiem ievaddatiem, kādus rezultātus radot, un vai kāds cits var atkārtoti pierādīt šo apgalvojumu.

Smilšu kaste ir siena. Selvedge cenšas būt arī liecinieks.