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.

Tiomsaigh ualaí oibre Kera BNN do runtime Selvedge.

Bunús imeachtaí le slabhra hash do imeachtaí córais.

Deimhnithe cruthúnais réasúnaíochta, ní tras-scríbhinní forghníomhaithe.

Foilsíonn Selvedge sa cheathrú babhta den chlár scaoilte fondúireachta, tar éis Knot agus Ledger. Nuair a dhéanfaidh sé, cuir modúl WASM i mbosca gainimh agus athsheinn an clúdach cruthúnais tú féin.

Bosca gainimh diúltaithe de réir réamhshocraithe

Dromchla forghníomhaithe uirlisí Prótacal Comhthéacs Samhail.

Séalaithe le Ed25519, tras-scríbhinn SHA3-256, fíorú as líne.

Líonraí néaracha dénártha IR ghraif, JIT agus ateangaire.

Runtime múnla comhpháirte, óstach WASI 0.2 Réamhamharc 2.

Ritheann Selvedge cód neamhiontaofa laistigh de bhosca gainimh teoranta acmhainne agus taifeadann sé an forghníomhú i dtras-scríbhinn shéalaithe. Srianann coimeád an méid is féidir leis an gcód a bhaint amach; léiríonn an tras-scríbhinn cad a tharla i ndáiríre agus is féidir é a athsheinm le haghaidh athbhreithnithe.

Freastalaí Prótacal Comhthéacs Samhail d'uirlisí gníomhaire.

Runtime gníomhaire fadréimseach le scuaine.

tiomsaigh, fíoraigh, rith, athsheinn. CI-chairdiúil.

Nasctha isteach i d'fheidhmchlár mar chreat.

Uirlisí gníomhaire, breiseáin tríú páirtí, tátal Kera BNN, agus obair sonraí rialáilte go léir tríd an teorainn rialaithe chéanna. Táirgeann gach runtime an clúdach fianaise séalaithe céanna, mar sin ní athraíonn athruithe imlonnaithe scéal an iniúchta.

Sínigh Ed25519 5-15 us, fíoraigh 15-30 us.

Tús próisis san áireamh, 8-9x níos tapúla.

Modúl ríomha, i gcomparáid le 1187-1494 us vanilla.

Tosaíonn Selvedge Wasmtime 62 go 243x níos tapúla ná Wasmtime vanilla ag leibhéal an API. An trádáil mhacánta is ea an cosán te: coinníonn vanilla an glaoch 22 ns arís agus arís eile, agus ritheann an tsamhail chomhpháirte a tháirgeann an tras-scríbhinn níos moille ann. Tá Kera JIT 2x níos tapúla te d'obair ghraif. Tá figiúirí ó BENCHMARKS.md an stór.

Taifeadtar agus hashtar gach cinneadh geata.

max_execution_time_ns, ar leith ó bhreosla.

max_memory_bytes, 256 MiB réamhshocraithe, uasteorainn 4 GiB.

max_instructions, cuireann ídithe deireadh glan leis an ualach oibre.

Clog, randamach, córas comhad, líonra, timpeallacht, stdio, próiseas, saincheaptha. Diúltú réamhshocraithe.

Gearrann tacar cumais diúltaithe réamhshocraithe gach glaoch óstach trasna ocht réimse WASI. Ceanglaíonn caipíní acmhainní ar chuimhne, bhreosla, agus am iompar rith amach. Tá gach cinneadh geata agus léamh acmhainne sa tras-scríbhinn.

Teastaíonn fianaise chripteagrafach uait ar a rinne an t-ualach oibre, ní muinín sa runtime.

Muinín as an runtime, ní as an ualach oibre

Ceadaigh córas comhad, diúltaigh líonra, ach gan taifead in aghaidh an ghlao sa rian iniúchta.

Scaoileann FP agus am balla tríd. Táirgeann athsheinm aschur atá thart ar an gcéanna, ní go díreach.

Stopann bosca gainimh éalú. Ní chruthaíonn sé gur iompaigh an t-ualach oibre i gceart istigh.

Stopann boscaí gainimh traidisiúnta drochchód ó éalú. Ní tháirgeann siad taifead ar a rinne an cód i ndáiríre istigh. Nuair a fhiafraíonn iniúchóir, is dearbhú an freagra, ní fianaise.

Gabhrann Selvedge go díreach a ritheadh, ionchur go haschur, gach glaoch óstach séalaithe.

Is tras-scríbhinn forghníomhaithe é Selvedge

Taifeadann mórleabhar cad a tharla i gcóras. Taifeadann Selvedge cad a ritheadh cód.

Eisíonn AION deimhnithe thar chéimeanna réitithe, ní thar rithí forghníomhaithe.

Conas atá Selvedge difriúil ó AION agus Ledger

Na hionchuir chéanna móide an clúdach céanna ciallaíonn an t-aschur céanna, i gcónaí.

Eipeach sheasta agus PRNG ChaCha20 sílte in ionad am óstach agus eantrópachta.

Úsáideann ríomh inmheánach, stóráil agus carnadh ionadaíochtaí dénártha, slánuimhir, pointe sheasta nó oiriúnaitheach slánuimhir/pointe sheasta. Glactar le pointe ar snámh ach amháin ag teorainn sheachtrach fhógartha agus déantar é a thiontú go sainráite sula dtosaíonn obair inmheánach; níl aon chúlchiste pointe ar snámh inmheánach. Fanann an clog fíorúil seasta, mar sin táirgeann athsheinm na bearta céanna.

Forghníomhú cinntitheach réamhshocraithe

Athsheinneann an fíoraitheoir as líne le bearta modúil agus clúdach amháin.

Síniú ed25519 thar fhréamh an chlúdaigh. Ní prós.

Gach glao óstach hasháilte isteach sa slabhra. Briseann eagarthóireachtaí an slabhra.

Cén fáth a bhfuil an athscríbhinn difriúil ó loga

Sreabhadh céanna ar gach forghníomhú. Tá athsheinm meicniúil.

Cruthúnas AION eisithe, sínithe ed25519, clúdach réidh le seoladh.

Gach glao óstach agus toradh hasháilte isteach i slabhra SHA3-256.

Forghníomhaíonn Wasmtime nó Kera laistigh den bhosca gainimh diúltaithe réamhshocraithe.

Modúl luchtaithe, cumais pinned, teorainneacha acmhainne i bhfeidhm.

Ritheann Selvedge cód WASM nó Kera laistigh de bhosca gainimh diúltaithe réamhshocraithe, hasheann gach glao óstach isteach i slabhra athscríbhinne SHA3-256, agus cuireann sé an toradh i gclúdach cruthúnais AION sínithe. Athsheinneann an clúdach gan an bosca gainimh bunaidh.

Cad a shábhálann sé agus a laghdaíonn riosca

Is bosca gainimh WebAssembly cinntitheach é Selvedge do chód neamhiontaofa. Ritheann a mhanifest cheada agus a athscríbhinn shéalaithe ar chrua-earraí atá faoi do smacht, ionas gur féidir le contrapháirtí an taifead a athsheinm ar a mheaisín féin agus go n-éiríonn díospóid ina cuardach seachas ina iarratas dearbhaithe.

Coinnigh cód faoi theorainn, coinnigh an taifead

Cuireann Selvedge clár nár roghnaigh tú i seomra gan idirlíon, gan bealach chuig do chomhaid agus gan aon rud le foghlaim faoi do mheaisín. Fágann sé admháil ag rá cad a tháinig ar ais agus cad a bhí ceadaithe don chlár a dhéanamh, ionas gur féidir leat éileamh níos déanaí a sheiceáil seachas focal duine éigin a ghlacadh.

scríobhann sé síos gach rud a dhéanann sé

Ritheann Selvedge cód nár scríobh tú in óstach comhpháirte WebAssembly gan líonra, córas comhaid, timpeallacht ná clog gluaiseach. Tuairiscíonn gach rith críochnaithe taifead ar féidir le páirtí eile athsheinm a dhéanamh air, agus tuarascáil fhorghníomhaithe ag rá cad a bhí ceadaithe don chód a dhéanamh. Foilsithe faoi Apache 2.0.

Rith cód neamhiontaofa ar chrua-earraí atá faoi do smacht.

Tá foilsiú beartaithe i mbabhtaí coicísiúla. Tagann an stór agus a dhoiciméadacht amach le chéile.

Déanann sé jab beag amháin, anseo, agus áit ar bith eile.

Séalaithe, ionas nach féidir aon rud a athrú

Críochnaíodh an forghníomhú go rathúil i 18.4ms

polasaí: diúltaigh de réir réamhshocraithe

Is é an seomra, an admháil agus an liosta an gealltanas iomlán.

Seo é ag teacht mar liosta. Ainmníonn gach post a d'úsáid an clár lochtach é de réir cóid, dáta agus liosta gearr ceadanna, ionas go bhfeiceann tú cad a raibh tionchar air agus cé chomh fada agus a d'fhéadfadh sé dul. Mura bhfuil muinín a thuilleadh as na daoine a rinne é, tagann an tarraingt siar i bhfeidhm ar eatramh athnuachana socraithe seachas nuair a théann deimhniú in éag. Foilsítear an bogearra faoi cheadúnas Apache 2.0.

Is meastachán é an gnáthleagan den chomhrá seo. Oibríonn duine éigin amach cén scaoileadh a bhí ar siúl is dócha, cé na laethanta, do cé, agus tagann an freagra mar raon le rabhadh air. Fágann sin na fíricí a theastaíonn chun ceartú a scóipeáil mar atógáil seachas mar thaifead. Tosaíonn an ceartú le liosta is féidir a sheiceáil.

Taifeadann gach post cód gearr don chlár beacht a rinne an obair. Ní a ainm, ní a uimhir leagain, an clár féin, ionas go mbeidh cóid éagsúla ag dhá thógáil a roinneann ainm. Má aimsítear níos déanaí go bhfuil an clár sin lochtach, is é an cód an bealach a aimsítear gach post a ndeachaigh sé i bhfeidhm air.

agus gach post a ndeachaigh sé i bhfeidhm air

Nuair a tharlaíonn rud éigin mícheart, ainmníonn cód amháin an clár.

Lódáiltear an clár féin go húr gach uair óna chód féin, agus iompraíonn an admháil cód don chód sin, ionas gur féidir a chruthú gurb é an rud a rith inniu an rud a rith an mhí seo caite. Ní charnaíonn aon rud idir an dá linn le bheith buartha faoi ag éinne níos déanaí.

Cosnaíonn seomra nua Selvedge chomh beag sin go bhfuil ceann in acmhainn do gach post, mar sin ní gá aon rud a roinnt. Má tá rud éigin ann a chaithfear a iompar trasna, tugtar ar láimh é d'aon ghnó agus feictear ar an taifead é mar rud a tugadh ar láimh.

Faigheann gach post seomra nua. Níl aon rud ón gceann deireanach ann: gan nótaí fágtha, gan obair leathchríochnaithe, gan chuimhne ar cé a d'iarr. Fuaimeann sin soiléir agus de ghnáth ní fíor é, mar go bhfuil sé níos saoire seomra a choinneáil ina sheasamh ná ceann nua a thógáil, mar sin coinníonn formhór na gcóras an seomra agus athúsáideann siad é.

Idir post amháin agus an chéad cheann eile

Tá seomra nua réidh don chéad phost eile.

Is fianaise lag é rud ar bith a aimsiú, mar braitheann sé ar cé chomh crua agus a d'fhéach duine éigin agus cé chomh fada agus a bhí acu roimh an gcruinniú. Is fianaise láidir é liosta de dhá chead, mar ní raibh aon rud eile ann le fáil.

Athraíonn sé cad a tharlaíonn nuair a chuireann tú ceist níos déanaí. In ionad duine éigin a bheith ag dul trí cad a rinne an clár agus ag tuairisciú ar ais nár aimsigh siad aon rud imníoch, tá an liosta ceadanna ann díreach, agus tá sé gearr.