How do you take your internet? I, for one, like it private and secure. Unfortunately, it does not matter what any of us think. WebAssembly, an exciting new technology that lets browsers run native, low level, code may bring an end to privacy and security on the internet as we know it.
What is WebAssembly?
WebAssembly, in short, is a runtime that lets browsers run native code. When I say native, I mean code written in low-level languages such as C, C++, Rust, etc.
This is a simplified diagram of the principles of WebAssembly. The compiler inputs code in an LLVM-compliant language and produces a binary
.wasm file is then executed by the WebAssembly runtime.
WebAssembly is now fully adopted and supported natively in all major browsers.
What can WebAssembly do?
WebAssembly offers exceptional performance. This means that your websites can work nearly as fast as regular software on your PC outside the browser. I cannot stress enough just how revolutionary this is. It lets browsers run software and games that were not available before due to performance issues. It will make complex WebVR experiences possible. WebAssembly can make Chromebooks actually useful.
One application of WebAssembly you will find very interesting is Blazor by Microsoft. What Microsoft had done, basically, is ported their whole .NET platform to WebAssembly and added a UI library on top. That means that if you are a .NET developer you just learned web app development without really doing anything.
How can it be exploited?
There are lots of ways. They are made possible due to the unreadable nature of
Secondly, the performance increase means that websites can now make better use of your hardware. Cryptocurrency mining, for example. And again, it will be notoriously hard to block.
Lastly, there are security issues. With this much power and low-level access, certain attacks (brute-force) and vulnerabilities are becoming possible. We will just hope that the open-source community will keep up.
So, the internet will definitely be not the same after the widespread adoption of WebAssembly. It is yet to see though, how nourishing or catastrophic the consequences will be. Thank you for reading and let me know in the comments what do you think about WebAssembly!