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 също показва какво ѝ е било разрешено да направи, което е различно и по-полезно нещо. Програма, на която никога не е било позволявано да се доближава до вашите файлове, не е можела да бъде близо до тях, и това е записано, независимо дали някой случайно е наблюдавал по това време.
Кодът не е копие на програмата; той назовава точното нещо, което е било изпълнено.