Deterministic WebAssembly Sandbox | Dweve Selvedge

Selvedge runs untrusted code in a deterministic WebAssembly sandbox and returns a replayable run record. Publishing in the fourth release round.

Kompiliuoti Kera BNN darbo krūvius Selvedge vykdymo aplinkai.

Įvykių kilmės grandinė su maišos funkcijomis sistemos įvykiams.

Samprotavimo įrodymų sertifikatai, ne vykdymo nuorašai.

Selvedge publikuojamas ketvirtame fondo leidybos programos rate, po Knot ir Ledger. Kai tai įvyks, pats izoliuokite WASM modulį ir atkurkite įrodymų voką.

Model Context Protocol įrankių vykdymo paviršius.

Ed25519 užantspauduotas, SHA3-256 nuorašas, patikra neprisijungus.

Grafiko IR dvejetainiai neuroniniai tinklai, JIT ir interpretatorius.

Komponentų modelio vykdymo aplinka, WASI 0.2 Preview 2 pagrindinė sistema.

Selvedge vykdo nepatikimą kodą smėlio dėžėje su apribotomis galimybėmis ir įrašo vykdymą užantspauduotame nuoraše. Izoliacija riboja, ką kodas gali pasiekti; nuorašas parodo, kas iš tikrųjų įvyko, ir gali būti atkurtas peržiūrai.

Model Context Protocol serveris agentų įrankiams.

Ilgai veikiantis agentų vykdymo variklis su eile.

kurti, tikrinti, vykdyti, atkurti. Tinka CI.

Agentų įrankiai, trečiųjų šalių papildiniai, Kera BNN inferencija ir reguliuojami duomenys patenka per tą pačią kontroliuojamą ribą. Kiekvienas variklis sukuria tą patį užantspauduotą įrodymų voką, todėl diegimo pakeitimai nekeičia audito istorijos.

Šaltas paleidimas, pagrindinis laimėjimas

Įskaičiuotas proceso paleidimas, 8-9x greičiau.

Skaičiavimo modulis, palyginti su 1187-1494 us įprastai.

Selvedge Wasmtime starts 62 to 243x faster than vanilla Wasmtime at the API level. The honest trade is the hot path: vanilla holds the 22 ns repeated call, and the component model that produces the transcript runs slower there. Kera JIT is 2x faster warm for graph work. Figures are from the repository BENCHMARKS.md.

Every gate decision recorded and hashed.

max_execution_time_ns, separate from fuel.

max_memory_bytes, 256 MiB default, 4 GiB ceiling.

max_instructions, exhaustion halts the workload cleanly.

Clock, random, filesystem, network, environment, stdio, process, custom. Default deny.

A default-deny capability set gates every host call across eight WASI domains. Resource caps on memory, fuel, and time bound runaway behaviour. Every gate decision and resource read is in the transcript.

You need cryptographic evidence of what the workload did, not confidence in the runtime.

Allow file system, deny network, but no per-call record in the audit trail.

FP and wall-clock leak through. Replay produces approximately the same output, not exactly.

A sandbox stops escape. It does not prove the workload behaved correctly inside.

Conventional sandboxes stop bad code from escaping. They do not produce a record of what the code actually did inside. When an auditor asks, the answer is an assertion, not evidence.

Selvedge captures exactly what executed, input to output, every host call sealed.

Ledger records what happened in a system. Selvedge records what code ran.

AION išduoda sertifikatus dėl sprendimo žingsnių, o ne dėl vykdymo eigų.

Kuo Selvedge skiriasi nuo AION ir Ledger

Tie patys įvesties duomenys ir tas pats apvalkalas visada lemia tą patį rezultatą.

Fiksuota epocha ir sėklinis ChaCha20 PRNG pakeičia pagrindinio kompiuterio laiką ir entropiją.

Vidiniai skaičiavimai, saugojimas ir kaupimas naudoja dvejetainį, sveikųjų skaičių, fiksuoto kablelio arba adaptyvų sveikųjų skaičių / fiksuoto kablelio atvaizdavimą. Slankiojo kablelio skaičiai priimami tik deklaruotoje išorinėje riboje ir prieš pradedant vidinį darbą yra aiškiai konvertuojami; nėra vidinio slankiojo kablelio atsarginio varianto. Virtualus laikrodis lieka fiksuotas, todėl atkūrimas sukuria tuos pačius baitus.

Nėra vidinių slankiojo kablelio skaičių, nėra laikrodžių

Pagal nutylėjimą deterministinis vykdymas

Tikrintojas atkuria neprisijungęs naudodamas tik modulio baitus ir apvalkalą.

ed25519 para virš voko šaknies. Ne proza.

Kiekvienas pagrindinio kompiuterio iškvietimas įtrauktas į grandinę. Redagavimai nutraukia grandinę.

Tas pats srautas kiekvieną kartą vykdant. Atkūrimas yra mechaninis.

AION proof issued, ed25519 signed, envelope ready to ship.

Every host call and result hashed into a SHA3-256 chain.

Wasmtime or Kera executes inside the default-deny sandbox.

Module loaded, capabilities pinned, resource caps applied.

Selvedge runs WASM or Kera code inside a default-deny sandbox, hashes every host call into a SHA3-256 transcript chain, and wraps the result in a signed AION proof envelope. The envelope replays without the original sandbox.

Selvedge yra deterministinis WebAssembly smėlio dėžė nepatikimam kodui. Jo leidimų manifestas ir užantspauduotas protokolas veikia jūsų kontroliuojamoje įrangoje, todėl kita šalis gali atkurti įrašą savo mašinoje, o ginčas tampa paieška, o ne užtikrinimo užklausa.

Selvedge įdeda programą, kurios nepasirinkote, į kambarį be interneto, be kelio į jūsų failus ir be nieko, ką galėtų sužinoti apie jūsų įrenginį. Jis palieka kvitą, kuriame nurodyta, kas grįžo ir ką programai buvo leista daryti, kad galėtumėte patikrinti vėlesnį teiginį, o ne tikėti žodžiu.

SHA3-256 kiekvienam pagrindinio kompiuterio iškvietimui

Wasmtime komponentų pagrindinis kompiuteris

Selvedge vykdo kodą, kurio neparašėte, WebAssembly komponentų pagrindiniame kompiuteryje be tinklo, failų sistemos, aplinkos ar judančio laikrodžio. Kiekvienas baigtas vykdymas grąžina įrašą, kurį kita šalis gali atkurti, ir vykdymo ataskaitą, nurodančią, ką kodui buvo leista daryti. Paskelbta pagal Apache 2.0.

Vykdykite nepatikimą kodą aparatinėje įrangoje, kurią valdote.

Leidimas planuojamas kas dvi savaites. Saugykla ir jos dokumentacija pasirodo kartu.

Jis atlieka vieną mažą darbą, čia, ir niekur kitur.

Užantspauduota, kad nieko nebūtų galima pakeisti

Kambarys, kvitas ir sąrašas yra visas pažadas.

Kodas yra vykdomas su kiekvienu paleidimu.

Čia jis ateina kaip sąrašas. Kiekviena užduotis, kuri naudojo sugedusią programą, įvardija ją kodu, data ir trumpu leidimų sąrašu, kad galėtumėte pamatyti, kas buvo paveikta ir kiek tai galėjo apimti. Jei žmonės, kurie ją sukūrė, nebėra patikimi, atšaukimas įsigalioja per nustatytą atnaujinimo intervalą, o ne tada, kai baigiasi sertifikato galiojimas. Programinė įranga platinama pagal Apache 2.0 licenciją.

Įprasta šio pokalbio versija yra įvertinimas. Kažkas apskaičiuoja, kuri versija tikriausiai buvo paleista, kuriomis dienomis, kuriems žmonėms, ir atsakymas ateina kaip intervalas su išlyga. Tai palieka faktus, reikalingus pataisymo apimčiai nustatyti, kaip rekonstrukciją, o ne įrašą. Pataisymas prasideda sąrašu, kurį galima patikrinti.

Kiekviena užduotis įrašo trumpą kodą tikslios programos, kuri atliko darbą. Ne jos pavadinimą, ne versijos numerį, o pačią programą, todėl dvi versijos, turinčios tą patį pavadinimą, vis tiek turi skirtingus kodus. Jei vėliau paaiškėja, kad ta programa yra sugedusi, kodas yra tai, kaip randama kiekviena užduotis, kurią ji palietė.

Kai kas nors pasirodo esąs neteisinga, vienas kodas įvardija programą.

Prasideda nuo tos pačios švarios formos.

Pati programa kiekvieną kartą įkeliama iš naujo iš savo kodo, o kvite yra kodas tam kodui, todėl tai, kas veikė šiandien, įrodomai yra tai, kas veikė praėjusį mėnesį. Nieko nesikaupia tarp jų, dėl ko kas nors galėtų nerimauti vėliau.

Naujas Selvedge kambarys kainuoja tiek mažai, kad vienas užduočiai yra įperkamas, todėl nieko nereikia dalintis. Jei kažkas tikrai turi būti perduota, tai perduodama sąmoningai ir įraše atsiranda kaip perduotas dalykas.

Kiekviena užduotis gauna naują kambarį. Nieko iš ankstesnio jame nėra: jokių paliktų užrašų, nebaigto darbo, jokios atminties apie tai, kas prašė. Tai skamba akivaizdžiai, bet paprastai nėra tiesa, nes išlaikyti kambarį stovintį yra pigiau nei pastatyti naują, todėl dauguma sistemų išlaiko kambarį ir naudoja jį iš naujo.

Naujas kambarys yra paruoštas kitai užduočiai.

Išvestis, rezultatas ir išteklių naudojimas.

Nieko nerasti yra silpnas įrodymas, nes priklauso nuo to, kaip atidžiai kas nors ieškojo ir kiek laiko turėjo iki susitikimo. Dviejų leidimų sąrašas yra stiprus įrodymas, nes ten nebuvo nieko kito, ką būtų galima rasti.

Tai pakeičia tai, kas nutinka, kai vėliau užduodate klausimą. Vietoj to, kad kažkas peržiūrėtų, ką programa padarė, ir praneštų, kad nerado nieko įtartino, leidimų sąrašas yra čia pat ir jis trumpas.

Dauguma įrašų pasako, ką programa padarė. „Selvedge“ kvitas taip pat nurodo, ką jai buvo leista daryti, o tai yra kitas ir naudingesnis dalykas. Programa, kuriai niekada nebuvo leista prieiti prie jūsų failų, negalėjo būti prie jų priėjusi, ir tai įrašyta, nesvarbu, ar tuo metu kas nors atsitiktinai stebėjo, ar ne.

Kodas nėra programos kopija; jis įvardija tikslų dalyką, kuris buvo paleistas.

Tai taip pat užkerta kelią vienai gudrybei. Programa, galinti skaityti laikrodį, gali elgtis vienaip prieš terminą ir kitaip po jo, ir niekas niekada nepastebėtų skirtumo. Laikrodis, kuris niekada nejuda, negali būti stebimas, todėl nėra ko elgtis kitaip.

Tai suteikia jums testą, kurį galite paleisti patys. Jei kažkas atrodo negerai, paleiskite dar kartą su ta pačia įvestimi. Jei atsakymas tas pats, programa elgiasi tinkamai, o problema yra kitur. Jei jis skiriasi, kažkas pasikeitė, ir palyginimas parodo, kuri dalis.