J’ai trouvé la commande de build réelle que Newton utilise pour compiler un oracle de données, et elle répond à une question que je supposais plutôt que je ne vérifiais.
jco componentize -w newton-provider.wit -o policy.wasm policy.js -d stdio random clocks http fetch-event
Ce paramètre « -d » fait vraiment le travail. Il énumère explicitement ce que le composant WASM résultant est autorisé à toucher : l’E/S standard, l’aléatoire, les horloges, le HTTP et les événements de récupération. Rien d’autre. Ce n’est pas un pare-feu d’exécution ajouté après coup — les capacités sont déclarées au moment de la compilation, incorporées dans le composant lui-même.
J’avais décrit la mise en sandbox de l’oracle de Newton comme étant « bloquée d’accéder aux IP privées », ce qui est vrai, mais cela minimise ce qui se passe réellement. Le filtrage réseau à l’exécution empêche un composant d’atteindre un endroit où il ne devrait pas aller. La déclaration de capacités au moment de la compilation est une étape en amont : le composant n’a jamais la capacité générale de faire quoi que ce soit au-delà de cette liste nommée, quelle que soit la filtration d’exécution mise par-dessus.
Deux couches, pas une seule. À connaître quand on vous dit que la sandbox de l’oracle est « sécurisée » — contre quoi, où est-ce appliqué, compte plus que l’affirmation en un seul mot.
@NewtonProtocol $NEWT #Newt
jco componentize -w newton-provider.wit -o policy.wasm policy.js -d stdio random clocks http fetch-event
Ce paramètre « -d » fait vraiment le travail. Il énumère explicitement ce que le composant WASM résultant est autorisé à toucher : l’E/S standard, l’aléatoire, les horloges, le HTTP et les événements de récupération. Rien d’autre. Ce n’est pas un pare-feu d’exécution ajouté après coup — les capacités sont déclarées au moment de la compilation, incorporées dans le composant lui-même.
J’avais décrit la mise en sandbox de l’oracle de Newton comme étant « bloquée d’accéder aux IP privées », ce qui est vrai, mais cela minimise ce qui se passe réellement. Le filtrage réseau à l’exécution empêche un composant d’atteindre un endroit où il ne devrait pas aller. La déclaration de capacités au moment de la compilation est une étape en amont : le composant n’a jamais la capacité générale de faire quoi que ce soit au-delà de cette liste nommée, quelle que soit la filtration d’exécution mise par-dessus.
Deux couches, pas une seule. À connaître quand on vous dit que la sandbox de l’oracle est « sécurisée » — contre quoi, où est-ce appliqué, compte plus que l’affirmation en un seul mot.
@NewtonProtocol $NEWT #Newt