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 workloads за Selvedge runtime.

Hash-верижно проследяване на произхода на системни събития.

Сертификати за доказателство на разсъжденията, а не транскрипти на изпълнението.

Selvedge публикува в четвъртия кръг на програмата за основно издаване, след Knot и Ledger. След като стане, пясъчна среда за WASM модул и възпроизведи обвивката на доказателството сам.

Повърхност за изпълнение на инструменти на Model Context Protocol.

Ed25519 запечатан, SHA3-256 стенограма, офлайн проверка.

Графови IR двоични невронни мрежи, JIT и интерпретатор.

Време на изпълнение на компонентния модел, хост на WASI 0.2 Preview 2.

Selvedge изпълнява непроверен код в пясъчна среда с ограничени възможности и записва изпълнението в запечатан препис. Ограниченията определят до какво може да докосне кодът; преписът показва какво реално се е случило и може да бъде преигран за преглед.

Сървър за Model Context Protocol за инструменти на агенти.

Дълготрайна среда за изпълнение на агенти с опашка.

изграждане, проверка, изпълнение, повторение. Съвместим с CI.

Свързана във вашето приложение като crate.

Инструментите за агенти, приставките на трети страни, изводите от Kera BNN и работата с регулирани данни преминават през една и съща контролирана граница. Всяка среда за изпълнение произвежда един и същ запечатан плик с доказателства, така че промените в разгръщането не променят историята на одита.

Ed25519 подпис 5-15 µs, проверка 15-30 µs.

Включен старт на процеса, 8-9 пъти по-бързо.

Изчислителен модул, срещу 1187-1494 us стандартен.

Selvedge Wasmtime стартира 62 до 243 пъти по-бързо от стандартния Wasmtime на API ниво. Честният компромис е горещият път: стандартният задържа 22 ns повторното извикване, а компонентният модел, който произвежда транскрипта, работи по-бавно там. Kera JIT е 2 пъти по-бърз топъл за графова работа. Цифрите са от BENCHMARKS.md в хранилището.

Изберете средата за изпълнение според натоварването

Всяко решение за порта е записано и хеширано.

max_execution_time_ns, отделно от горивото.

max_memory_bytes, 256 MiB по подразбиране, таван 4 GiB.

max_instructions, изчерпването спира работата чисто.

Часовник, случайни числа, файлова система, мрежа, среда, stdio, процес, персонализирано. Отказ по подразбиране.

Набор от възможности с отказ по подразбиране ограничава всяко хост извикване в осем WASI домейна. Ограниченията на ресурсите за памет, гориво и време ограничават неконтролираното поведение. Всяко решение за порта и всяко четене на ресурси е в транскрипта.

Имате нужда от криптографско доказателство за това какво е направила работата, а не от доверие в средата за изпълнение.

Доверете се на средата за изпълнение, не на работата

Разрешете файловата система, откажете мрежата, но без запис за всяко извикване в одитната следа.

FP и стенното време изтичат. Възпроизвеждането дава приблизително същия резултат, не точно същия.

Пясъчната среда спира бягството. Тя не доказва, че работата се е държала правилно вътре.

Обичайните пясъчни среди спират лошия код да избяга. Те не създават запис за това какво е направил кодът вътре. Когато одитор попита, отговорът е твърдение, а не доказателство.

Пясъчната среда не обяснява изпълнението

Selvedge улавя точно какво е изпълнено, от вход до изход, всяко хост извикване е запечатано.

Регистърът записва какво се е случило в системата. Selvedge записва какъв код е работил.

AION издава сертификати за стъпките на решаване, а не за изпълненията.

Как Selvedge се различава от AION и Ledger

Едни и същи входове плюс една и съща обвивка означават един и същ резултат, винаги.

Фиксирана епоха и seeded ChaCha20 PRNG заменят системното време и ентропията.

Вътрешните изчисления, съхранението и натрупването използват двоични, целочислени, fixed-point или адаптивни целочислени/fixed-point представяния. Плаващата запетая се приема само на обявена външна граница и се преобразува изрично преди започване на вътрешната работа; няма вътрешен fallback с плаваща запетая. Виртуалният часовник остава фиксиран, така че възпроизвеждането произвежда същите байтове.

Детерминирано изпълнение по подразбиране

Верификаторът възпроизвежда офлайн само с байтовете на модула и обвивката.

ed25519 подпис върху корена на обвивката. Не проза.

Всяко host извикване е хеширано във веригата. Редакциите нарушават веригата.

Един и същ поток при всяко изпълнение. Възпроизвеждането е механично.

AION доказателството е издадено, ed25519 подписано, обвивката е готова за изпращане.

Всяко host извикване и резултат са хеширани в SHA3-256 верига.

Wasmtime или Kera се изпълнява в пясъчната среда с отказ по подразбиране.

Модулът е зареден, капацитетите са фиксирани, ресурсните ограничения са приложени.

Selvedge изпълнява WASM или Kera код в пясъчна среда с отказ по подразбиране, хешира всяко host извикване в SHA3-256 транскриптна верига и обвива резултата в подписана AION доказателствена обвивка. Обвивката се възпроизвежда без оригиналната пясъчна среда.

Selvedge е детерминирана WebAssembly пясъчна среда за ненадежден код. Нейният манифест за разрешения и запечатан транскрипт се изпълняват на хардуер, който контролирате, така че насрещната страна може да възпроизведе записа на собствената си машина и спорът се превръща в справка, а не в искане за уверение.

Selvedge поставя програма, която не си избрал, в стая без интернет, без път до файловете ти и без нищо, което да научи за машината ти. Оставя разписка, която казва какво се е върнало и какво е било позволено на програмата да прави, за да можеш да провериш по-късно твърдение, вместо да вярваш на някого на дума.

Selvedge изпълнява код, който не си написал, в WebAssembly компонентен хост без мрежа, файлова система, среда или движещ се часовник. Всяко завършено изпълнение връща запис, който друга страна може да възпроизведе, и отчет за изпълнението, който казва какво е било позволено на кода да прави. Публикуван под Apache 2.0.

Изпълнявай недоверен код на хардуер, който контролираш.

Детерминирана WebAssembly пясъчна среда.

Публикуването е планирано на двуседмични кръгове. Хранилището и документацията му излизат заедно.

Той върши една малка работа, тук, и никъде другаде.

Запечатано, така че нищо не може да бъде променено

Стаята, разписката и списъкът са цялото обещание.

Тук пристига като списък. Всяка задача, използвала дефектната програма, я назовава с код, дата и кратък списък с разрешения, така че да видите какво е засегнато и докъде е могло да стигне. Ако хората, които са я създали, вече не са доверени, оттеглянето влиза в сила на зададен интервал на опресняване, а не когато изтече сертификат. Софтуерът е публикуван под лиценза Apache 2.0.

Обичайната версия на този разговор е оценка. Някой изчислява коя версия вероятно е работила, в кои дни, за кои хора, и отговорът идва като диапазон с уговорка. Това оставя фактите, необходими за определяне на обхвата на корекция, като реконструкция, а не като запис. Корекцията започва със списък, който може да бъде проверен.

Всяка задача записва кратък код за точната програма, която е свършила работата. Не нейното име, не нейният номер на версия, а самата програма, така че две версии, които споделят име, все пак имат различни кодове. Ако по-късно тази програма се окаже дефектна, кодът е начинът, по който се открива всяка задача, която е засегнала.

Когато нещо се окаже грешно, един код назовава програмата.

Самата програма се зарежда наново всеки път от собствения си код, а разписката носи код за този код, така че нещото, което е работило днес, е доказуемо същото, което е работило миналия месец. Нищо не се натрупва междувременно, за което някой да се тревожи по-късно.

Нова стая на Selvedge струва толкова малко, че една на задача е достъпна, така че нищо не трябва да се споделя. Ако нещо наистина трябва да се пренесе, то се предава нарочно и се появява в записа като нещо, което е било предадено.

Всяка задача получава нова стая. Нищо от предишната не е в нея: никакви останали бележки, никаква незавършена работа, никакъв спомен за това кой е поискал. Това звучи очевидно и обикновено не е вярно, защото поддържането на стая е по-евтино от построяването на нова, така че повечето системи запазват стаята и я използват отново.

Нова стая е готова за следващата задача.

Изход, резултат и използване на ресурси.

Намирането на нищо е слабо доказателство, защото зависи от това колко усърдно е търсил някой и колко време е имал преди срещата. Списък от две разрешения е силно доказателство, защото там не е имало нищо друго за намиране.

Това променя какво се случва, когато зададете въпрос по-късно. Вместо някой да преглежда какво е направила програмата и да докладва, че не е намерил нищо тревожно, списъкът с разрешения е точно там и е кратък.

Повечето записи ви казват какво е направила една програма. Разписката от Selvedge също показва какво ѝ е било разрешено да направи, което е различно и по-полезно нещо. Програма, на която никога не е било позволявано да се доближава до вашите файлове, не е можела да бъде близо до тях, и това е записано, независимо дали някой случайно е наблюдавал по това време.

Кодът не е копие на програмата; той назовава точното нещо, което е било изпълнено.