5 ms·
Wasm is exciting because not only is it a clean, elegant instruction set that has learned a lot from the design warts of JVM and .NET, it also has formal verifi
by gandalfgeek 6y ago
Wasm is exciting because not only is it a clean, elegant instruction set that has learned a lot from the design warts of JVM and .NET, it also has formal verification as a first-class design goal. This makes it interesting for high-trust environments outside the web context as well.
I made a couple of short explainer videos on it:
- design goals and instruction set:https://youtu.be/VOaSaShAYb0 https://youtu.be/VOaSaShAYb0
- mechanizing safety proofs for wasm: https://youtu.be/zsPVbmEPTlA https://youtu.be/zsPVbmEPTlA
- nerdponx 6y agoHow "web-specific" is WebAssembly? This all sounds like an enticing feature set a general-purpose VM for writing desktop and server applications, not just making fancy stuff in a web browser. Is there any chance we'll see something like Node-but-it's-Wasm at some point?
- ghayes 6y agoAs far as I've seen, not very web specific at all. Everything that you might fear being included is actually linked in and is not part of the VM at all (e.g. all Web APIs).
- tmarsden 6y agoAbsolutely, check out WASI (Webassembly system interface) https://wasi.dev/ https://wasi.dev/ “...provides access to several operating-system-like features, including files and filesystems, Berkeley sockets, clocks, and random numbers, that we'll be proposing for standardization. It's designed to be independent of browsers, so it doesn't depend on Web APIs or JS, and isn't limited by the need to be compatible with JS.”
- vinkelhake 6y agoBoth node and deno can run Wasm. Also see WASI that the sibling mentioned.
- ampdepolymerase 6y agoSome of the data layouts are optimized for web compatibility rather than (purely) ease of hardware implementation.
- outside2344 6y agoIts not web specific. For example, there are projects to run WebAssembly instead of containers on Kubernetes: https://krustlet.dev/ https://krustlet.dev/
- dane-pgp 6y agoMaybe in a few years, WASM is going to be retconned or backronymed to "World Assembly".
- pjmlp 6y agoAnd yet, "Usenix Security '20-Everything Old Is New Again: Binary Security of WebAssembly" https://www.youtube.com/watch?v=glL__xjviro https://www.youtube.com/watch?v=glL__xjviro
- infogulch 6y agoThis came across HN before. [1] My conclusion then: > Notably, they don't appear to even try to break the WA-host memory barrier, which I actually find to be a validation of the core design goal of WebAssembly: isolate the damage a vulnerable program can inflict to the memory space (and thus also output) of that program. Protect the host from the program, but not the program from itself. Also, maybe don't dump WA output you can't validate directly into DOM. [1]: https://news.ycombinator.com/item?id=24216764 https://news.ycombinator.com/item?id=24216764
- pjmlp 6y agoRegardless, WebAssembly just got one security group doing research against it, I expect plenty more to switch their attention into it, as WebAssemly slowly starts to gather more market share. > Protect the host from the program, but not the program from itself. All nice and dandy, except that the goal of WebAssembly is to extend the host, and have the host be dependant on the program behaviour. A host unaware that the program is compromised can be led to take decisions that it wouldn't otherwise do, like allow a basic user to acquire admin credentials, that were supposedly correctly validated by the program. I am really eager to see the amount of CVE's on WebAssembly to start poping up, then the whole WebAssembly advocates can tell the world why we had to ditch PNaCL and CrossBridge, 10 years of regress, and get the same outcome in the end.
- afiori 6y agoIn this context the security guarantees are geared toward the attack threath the web faces: sandboxing untrusted code. You could say that this is the most web-specific aspect of Web Assebly
- 6y ago