 Okay, so let me start today's my talk. What can WebAssembly do for your application security and extensibility? I'm Takaya Saeki from Tetris.io Inc. And today's my topic, sorry, today's my talk has two topics. So the first topic is why WebAssembly is gaining presence in the cloud-based world. And the second topic is the impact of WebAssembly on application extensibility and security. So before getting started, let me introduce myself on Tetris a little. I'm Takaya Saeki, a software engineer at Tetris.io from Tokyo, Japan. I love programming. Here's the list of my favorite projects. And about Tetris. Tetris is a sub-smash company. We are making the application I will not work in. And Tetris is also a big OSS contributor. Tetris is one of the top Android computer contributors in the world. Tetris is the biggest contributor to Android after Google. And Tetris is also one of the top Android contributors in the world. Okay, let me get down to the main topic. So WebAssembly has many applications in the cloud-based world today. So here I pasted the schedule of today's WebAssembly day. As you can see, there are many applications of WebAssembly. For example, Wazzy or Edge Cloud computing with WebAssembly and proxy version, or cloud-based runtime for service function with WebAssembly, or so on and so on. So why WebAssembly is gaining presence in the cloud-based world? To reflect on that, let's get back to the basic property of WebAssembly. So WebAssembly is safe, portable, and low-level binary instruction format. And its design spec lists certain design goals. For example, first, a safe, open, and language independent, and portable, and much more. And in today's talk, I want to focus on those four properties, so safe, open, language independent, and portable. So WebAssembly has those four properties. So WebAssembly is safe. WebAssembly can safely run untrusted codes in sandbox environment. And the WebAssembly is open. By the way, let me call this open property as envisable property sometimes to make it easier to understand what open does mean. And it means WebAssembly has customizable interface with external environment. For example, WebAssembly has external environments such as Wazzy where WebAssembly can run on abstracted operating system platform or proxy version. In proxy version, WebAssembly module communicates with external proxy applications to manipulate or handle traffic such as HTTP or UDP traffic or TCP, of course. And WebAssembly is portable, it's architecture independent, and it's portable. WebAssembly can be compiled from many programming languages. However, if you think about each properties, actually, there are other great solutions for similar goals. So, for example, Knuckle is Google's great software fault isolation solution. It's safe, envisable, and portable. It runs untrusted codes by some software fault isolation technique, but it lacks portability because Knuckle is based on the native binary. And the ABPF is safe, envisable, and portable program, but because it's language, it's not portable, of course. And the Lula is prominent envisable script language, but it's not prominent either. And native library format is, of course, envisable, but because it's native library, it has no safety nor portability. And Java is a great language that runs anywhere, but isolation is not Java's first-class season. So, existing solutions have similar goals, but none of them satisfies all the goals at the same time. However, WebAssembly is a new solution which aims to meet those goals simultaneously. So, this diagram shows the versioning of WebAssembly. As you can see, WebAssembly is open, portable, safe, and portable at the same time. So, wasn't realized multiple goals that were not covered simultaneously before. And as you can see, other existing solutions lack some aspects of those properties. For example, a native library is open and portable, but it's not portable, not safe. And Lula is portable, safe, and open, but because it's language, Lula is not portable. In other words, WebAssembly is as portable as Java, and WebAssembly is as safe as Naco or Zcomp, and as endable as Lula, and as portable as native library. So, that's the strength of WebAssembly, and why WebAssembly is gaining presence in the cloud-based world. And because fast, because being fast is a basic property of WebAssembly, of course, if you put a fast property in the diagram, the diagram will look like this. So, that's why WebAssembly is gaining presence in the cloud-based world. So, let me talk about its impact on extensibility and security request. So, because was is an object format just like F, what WebAssembly module can actually do is defined by external vast embedding interface. So, wasm embedding interface defines functions and other symbols that wasm module imports and exports. This gives the variety of actual interfaces for wasm. And I pick up two examples here. It's proxy wasm and wasi. I pick up these examples because I think these two examples are very fundamental examples of vast embedding interfaces. So, and today I focus on proxy wasm because it's an embedded interface. So, why WebAssembly and why embedding WebAssembly in some application is important? It's because a WebAssembly can provide secure extensibility mechanisms for applications. So, application and wasm modules connect through bi-directional API and API. And thanks to wasm, users of an application can make extension security portable and in any languages. And proxy wasm is an example of such secure extension mechanism. So, proxy wasm is an extensibility interface for proxy servers for WebAssembly. And embo is a reference implementation of that. It provides secure and portable way to manipulate proxy traffic. And here is how proxy wasm involves embo's extensibility mechanism. So, before wasm, emboi offers static C++ library as its extension mechanism. So, it has no isolation and C++ is the only support language. And they're updating extension regarding the build. However, after the adoption wasm, now emboi extension runs in an isolated environment securely and it's language independent and dynamic load of extensions are supported. So, like in that example, WebAssembly brings secure extensibility mechanism to the cloud native applications. And emboi is still provides such secure extensibility mechanism for application message by proxy wasm. You will be able to write your emboi extension by wasm, for example, custom authorization and custom authentication logging. So, proxy wasm is an important example for secure extensibility mechanism for WebAssembly. So, here is my talk summary. So, the emboi, safe, portable and portable properties wasm gives rise to a variety of wasm interfaces. And the secure extensibility mechanism is a typical interface and such interface I mean, and the proxy wasm is an extensibility mechanism for proxy. And the wasm will continue to bring new secure extensibility mechanisms to the cloud native world applications. Thanks.