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.

Kera BNN-munkaterhelések fordítása Selvedge futási környezethez.

Események hash-láncolt eredetigazolása rendszereseményekhez.

Indoklási bizonyítványok, nem végrehajtási átiratok.

A Selvedge az alapítványi kiadási program negyedik körében jelenik meg, a Knot és a Ledger után. Amint ez megtörténik, teszteljen egy WASM-modult homokozóban, és játssza le Ön is a bizonyítékborítékot.

Model Context Protocol eszközvégrehajtási felület.

Ed25519 lezárt, SHA3-256 átirat, offline ellenőrzés.

Grafikus IR bináris neurális hálózatok, JIT és értelmező.

Komponensmodell-futtatókörnyezet, WASI 0.2 Preview 2 gazdagép.

A Selvedge megbízhatatlan kódot futtat egy képességkorlátozott homokozóban, és a végrehajtást lezárt átiratban rögzíti. A korlátozás megszabja, hogy a kód mihez férhet hozzá; az átirat megmutatja, mi történt valójában, és felülvizsgálatra visszajátszható.

Model Context Protocol szerver ügynökeszközökhöz.

Hosszan futó ügynökfuttató környezet sorral.

Az ügynökeszközök, harmadik féltől származó bővítmények, Kera BNN-következtetés és szabályozott adatok feldolgozása mind ugyanazon a szabályozott határon keresztül érkezik. Minden futási környezet ugyanazt a lezárt bizonyítékborítékot állítja elő, így a telepítési változások nem változtatják meg az auditálási történetet.

megfelel a szabályozott munkaterheléseknek

Ed25519 aláírás 5-15 us, ellenőrzés 15-30 us.

A folyamat indítása benne van, 8-9x gyorsabb.

Számítási modul, szemben a 1187-1494 us vanilla-val.

A Selvedge Wasmtime 62-243x gyorsabban indul, mint a vanilla Wasmtime az API szinten. Az őszinte kompromisszum a forró út: a vanilla tartja a 22 ns ismételt hívást, és a komponensmodell, amely a transzkriptumot előállítja, lassabb ott. A Kera JIT 2x gyorsabb melegen a gráfmunka esetén. Az adatok a repó BENCHMARKS.md fájljából származnak.

Válaszd a futási környezetet a munkaterheléshez

Minden átjáró-döntés rögzítve és hash-elve.

max_execution_time_ns, külön az üzemanyagtól.

max_memory_bytes, 256 MiB alapértelmezett, 4 GiB felső határ.

max_instructions, a kimerülés tisztán leállítja a munkaterhelést.

Óra, véletlen, fájlrendszer, hálózat, környezet, stdio, folyamat, egyéni. Alapértelmezett tiltás.

Egy alapértelmezett tiltású képességkészlet kapuzza meg az összes gazdahívást nyolc WASI tartományban. Az erőforrás-korlátok a memórián, az üzemanyagon és az időn korlátozzák a szabálytalan viselkedést. Minden átjáró-döntés és erőforrás-olvasás benne van a transzkriptumban.

Kriptográfiai bizonyítékra van szükséged arról, hogy mit csinált a munkaterhelés, nem pedig bizalomra a futási környezetben.

Bízz a futási környezetben, ne a munkaterhelésben

Fájlrendszer engedélyezése, hálózat tiltása, de nincs hívásonkénti rekord az auditnaplóban.

Az FP és a falióra átszivárog. A visszajátszás megközelítőleg ugyanazt az eredményt adja, nem pontosan ugyanazt.

A homokozó megállítja a szökést. Nem bizonyítja, hogy a munkaterhelés helyesen viselkedett belül.

A hagyományos homokozók megállítják a rossz kód szökését. Nem hoznak létre rekordot arról, hogy a kód valójában mit csinált belül. Amikor egy auditor kérdez, a válasz egy állítás, nem bizonyíték.

Egy homokozó nem magyarázza meg a futtatást

A Selvedge pontosan rögzíti, hogy mi futott le, bemenettől kimenetig, minden gazdahívás lepecsételve.

A főkönyv rögzíti, mi történt egy rendszerben. A Selvedge rögzíti, milyen kód futott.

Az AION tanúsítványokat a megoldó lépéseire állít ki, nem a végrehajtási futtatásokra.

Miben különbözik a Selvedge az AION-tól és a Ledgertől

Ugyanazok a bemenetek plusz ugyanaz a boríték mindig ugyanazt a kimenetet jelentik.

Egy rögzített korszak és egy magozott ChaCha20 PRNG váltja fel a gazdagép idejét és entrópiáját.

A belső számítás, tárolás és felhalmozás bináris, egész, fixpontos vagy adaptív egész/fixpontos reprezentációt használ. A lebegőpontos csak deklarált külső határon fogadható el, és a belső munka megkezdése előtt kifejezetten átalakításra kerül; nincs belső lebegőpontos tartalék. A virtuális óra rögzített marad, így a visszajátszás ugyanazokat a bájtokat eredményezi.

Alapértelmezés szerint determinisztikus végrehajtás

A hitelesítő offline játszik vissza a modul bájtjaival és a borítékkal együtt.

ed25519 aláírás a boríték gyökerén. Nem próza.

Minden gazdagép-hívás bekerül a láncba. A szerkesztések megszakítják a láncot.

Ugyanaz a folyamat minden végrehajtáskor. A visszajátszás mechanikus.

AION bizonyíték kiállítva, ed25519 aláírva, a boríték készen áll a szállításra.

Minden gazdagép-hívás és eredmény bekerül egy SHA3-256 láncba.

A Wasmtime vagy a Kera az alapértelmezés szerint tiltó homokozóban fut.

Modul betöltve, képességek rögzítve, erőforrás-korlátok alkalmazva.

A Selvedge WASM vagy Kera kódot futtat egy alapértelmezés szerint tiltó homokozóban, minden gazdagép-hívást egy SHA3-256 átirati láncba hash-el, és az eredményt aláírt AION bizonyítékborítékba csomagolja. A boríték az eredeti homokozó nélkül is visszajátszható.

A Selvedge egy determinisztikus WebAssembly homokozó megbízhatatlan kódhoz. Az engedélymanifesztum és a lepecsételt átirat az általad ellenőrzött hardveren fut, így az üzletfél a saját gépén is visszajátszhatja a rekordot, és a vita kereséssé válik, nem pedig biztosítékkérésé.

Tartsd a kódot határok között, őrizd a feljegyzést

A Selvedge egy olyan programot futtat, amelyet nem te választottál, egy olyan környezetben, ahol nincs internet, nincs út a fájljaidhoz, és semmit sem tud meg a gépedről. Elismervényt hagy arról, hogy mi érkezett vissza, és mit tehetett a program, így később ellenőrizheted az állításokat, nem kell más szavát fogadnod.

A Selvedge olyan kódot futtat, amelyet nem te írtál, egy WebAssembly komponensgazdában, hálózat, fájlrendszer, környezeti változók és mozgó óra nélkül. Minden befejezett futtatás olyan feljegyzést ad vissza, amelyet egy másik fél újra lejátszhat, valamint egy végrehajtási jelentést arról, hogy mit tehetett a kód. Apache 2.0 licenc alatt publikálva.

Futtass nem megbízható kódot a saját hardvereden.

Egy determinisztikus WebAssembly homokozó.

A publikálás kéthetente, körökben történik. A repozitórium és a dokumentáció együtt jelenik meg.

Az Ön tulajdonában lévő számítógépeken fut

Egyetlen apró feladatot végez el, itt, és sehol máshol.

Lefagyasztva, így semmit sem lehet módosítani

Végrehajtás sikeresen befejeződött 18,4 ms alatt

szabályzat: alapértelmezés szerint tiltás

A szoba, a nyugta és a lista a teljes ígéret.

Itt listaként érkezik. Minden feladat, amely a hibás programot használta, kóddal, dátummal és egy rövid engedélylistával nevezi meg, így láthatja, mi volt érintett, és meddig terjedhetett. Ha azok, akik készítették, már nem megbízhatók, a visszavonás egy meghatározott frissítési intervallumban lép életbe, nem pedig akkor, amikor egy tanúsítvány lejár. A szoftver Apache 2.0 licenc alatt jelenik meg.

Ennek a beszélgetésnek a szokásos változata becslés. Valaki kiszámolja, hogy melyik kiadás futott valószínűleg, mely napokon, kiknek, és a válasz egy tartományként érkezik, fenntartással. Ez a javítás mértékének meghatározásához szükséges tényeket rekonstrukcióvá teszi, nem pedig feljegyzéssé. A javítás egy ellenőrizhető listával kezdődik.

Minden feladat egy rövid kódot rögzít a munkát végző pontos programhoz. Nem a nevét, nem a verziószámát, hanem magát a programot, így két azonos nevű buildnek különböző kódja van. Ha a program később hibásnak bizonyul, a kód az, ami alapján minden érintett feladat megtalálható.

Amikor valami hibásnak bizonyul, egy kód nevezi meg a programot.

A program maga minden alkalommal frissen töltődik be a saját kódjából, és a nyugta egy kódot hordoz ehhez a kódhoz, így ami ma futott, az bizonyíthatóan ugyanaz, ami múlt hónapban futott. Közben semmi sem halmozódik fel, ami miatt később aggódni kellene.

Egy új Selvedge szoba annyira kevésbe kerül, hogy feladatonként egy megfizethető, így semmit sem kell megosztani. Ha valami valóban átvitelt igényel, az szándékosan kerül átadásra, és a feljegyzésen átadottként jelenik meg.

Minden feladat új szobát kap. Az előzőből semmi nincs benne: nincs hátrahagyott jegyzet, nincs félkész munka, nincs emlék arról, hogy ki kérte. Ez nyilvánvalónak hangzik, és általában nem igaz, mert egy szoba fenntartása olcsóbb, mint egy újat építeni, ezért a legtöbb rendszer megtartja és újrahasználja a szobát.

Egy új szoba készen áll a következő feladatra.

Kimenet, eredmény és erőforrás-használat.

A semmi megtalálása gyenge bizonyíték, mert attól függ, milyen alaposan kereste valaki, és mennyi ideje volt a találkozó előtt. Egy két engedélyből álló lista erős bizonyíték, mert nem volt más, amit meg lehetett volna találni.

Ez megváltoztatja azt, ami történik, amikor később kérdést tesz fel. Ahelyett, hogy valaki átnézné, mit csinált a program, és azt jelentené, hogy nem talált semmi aggasztót, az engedélylista ott van, és rövid.

A legtöbb nyilvántartás csak azt mondja el, mit csinált egy program. A Selvedge-nyugta azt is megmutatja, hogy mit volt jogosult csinálni, ami más és hasznosabb dolog. Egy program, amely soha nem férhetett a fájljaihoz, nem is lehetett a fájljai közelében, és ez a nyilvántartásban szerepel, függetlenül attól, hogy történetesen figyelte-e valaki akkor.