Newton がデータオラクルをコンパイルするために実際に使っているビルドコマンドを見つけて、それが(私が確認せずに)前提にしていた質問への答えだったと分かりました。

jco componentize -w newton-provider.wit -o policy.wasm policy.js -d stdio random clocks http fetch-event

この -d フラグが本当に重要な役割を果たしています。生成される WASM コンポーネントが触れてよいものを、明示的に列挙しています。標準入出力、乱数、クロック、HTTP、フェッチイベント。ほかは何もありません。これは、後から取り付けた「実行時のファイアウォール」ではありません。能力はビルド時に宣言され、コンポーネント自身に組み込まれています。

私は Newton のオラクルのサンドボックスを「プライベート IP に到達できないようにブロックされている」と説明してきました。これは確かに正しいのですが、実際に起きていることを過小評価しています。実行時のネットワークフィルタリングは、到達してはいけない場所へアクセスしようとするコンポーネントを止めます。ビルド時の能力宣言は、その一段前のことです。コンポーネントは、上に存在する実行時フィルタリングがどうであれ、この名前付きリスト以外のことを行う一般的な能力を最初から持ちません。

層が2つあって、1つではない。誰かが「オラクルのサンドボックスは“安全”だ」と言ってきたとき、その“安全”が何に対してなのか、どこで強制されるのかが、一語の主張以上に重要であることを知っておく価値があります。

@NewtonProtocol $NEWT #Newt