 Eu sunt Figuore Rosu și eu sunt profesor de science computer și Universitatea FreeNoisa Turbană-Shampei, și alsoi president și CEO de Verificată Front-Time, un company startup care înseamnă research and development în semantic, specificăție și verificăție de language și software. Întotdeaților, când a fost colaborația cu IOHK la măr, avem multe tecnologii care au utilită context de mâință și sistemă criticății, cu mâință de NSF, NASA, Boeing, DARPA, Toyota, Denso și soare. Dar acum, dacă fie încât IOHK's entuziație, mă înțelegi să evoluez multe research și tecnologii pentru blockchain, am fost foarte interesant în extenție de aplicabilitatea de tecnici și tecnici în acest lucru. Projecțile care are colaborație cu IOHK au rețet de despre design și development de mâință virtual și language pentru blockchain. Părăția de context. Conținților, cu mâință IOHK studiuni și mâință colaborații, avem găsit frământ sematic pentru a defini programării language și virtuali mâință în un mâință sematic foarte greu, care se zic frământul K. Dacă îți defini un language, oameni, în K, frământul îți găsită tecnologii pentru ea, ceeași interpretele, interpretele, compaidele, explorării, cecării moduri și eveni deductive programă verificății. În importanța cruciă, acestui mâințări sunt toate coarcează cu construcție. Trebuie several attempts by other programming languages and formal methods groups to develop such frameworks, dar K is the first that demonstrated that this is indeed possible and feasible. Indeed, we and others have formalized in K real life languages like C, Java, JavaScript, Python, and PHP, and the tools that K generates automatically from these language semantics are comparable in features and performance with existing tools specifically crafted for such languages. The 15 years of research and development work on K have made it possible to do what many thought couldn't be done. We can automatically generate a correct by construction virtual machine from its formal specification, which is fast enough to run real programs. And we have done it twice. First, for the Ethereum virtual machine EVM, as part of the K EVM project, and second, for a new VM, called ELM. So what is KVM? KVM is a correct by construction Ethereum client based on the most prominent formal mathematical specification of the EVM. The formal specification of the EVM has been developed using the K framework in a joint effort with my research lab at UIUC, the formal system laboratory. Besides generating an executable VM, the K formal EVM specification can also be used, as is, for formal verification of smart contracts. We are grateful to IOHK for funding the KVM project and for their firm belief in the generation of correct by construction VMs from formal specifications. Sounds like a dream, but not anymore. In a collaborative effort with IOHK, KVM will be deployed on a testnet soon, before ELM. KVM will be deployed first because the fact that it is built on top of an already established language and test infrastructure means that it will be more quickly brought up to professional industrial quality. This will also allow us to test and mature the network and communication infrastructure, which will also be used by ELM. The plan is to define the network and communication infrastructure to a point where we can simply plug and play a new VM. Now, what is ELM? In a nutshell, ELM is a human readable blockchain low level language meant to serve as a foundation for the third generation of blockchains. We are currently working on deploying it on the Cardano blockchain together with a wonderful team of experts at IOHK. ELM was designed using state-of-the-art formal methods to address security and correctness concerns in Ethereum, while simultaneously enabling the similar mathematically-legal as former proofs of smart contract correctness that KVM brings to Ethereum. Let me elaborate a bit. People often craft formal specifications for languages so they can find weaknesses in these languages. So it is not surprising that when we wrote our formal specification for EVM, it showed us ways to improve it. We used that knowledge to design ELM. ELM is therefore the next step in the evolution of our correct by construction automatically generated implementation concept. It was completely designed and defined as a formal semantics and executable code were generated automatically from the formal specification. So there is nothing to prove about the correctness of the ELMVM with respect to its formal specification because it is correct by construction. ELM a first improved security guarantees over and above what EVM provides, making it easier to write contracts which do not leak or block funds. Inspired from both ELLVM and EVM, ELM is built to become the foundation of an entire compiler back-and-by-back, eventually allowing robust gas optimization and bycode of contracts written in any high-level language which has ELM as a compilation target, including Solidity and Plutus. The plan is to deploy ELM on the Cardano blockchain in a few months, so we are very busy testing it and developing a little ecosystem of tools around it. Is it easy to write or read ELM programs? The ELM language uses an ELLVM-style textual representation that is designed to be human readable and at the same time to capture all the available ELM features. It is pretty easy to even manually write smart contracts straight in ELM. For example, we manually wrote a NERC-20 token in only a couple of hours. It has about 150 lines of ELL code, each function is clearly visible and it is quite easy to map the ERC-20 specification to the ELL code. But we are going to also provide a Solidity compiler to ELL, so one can execute existing smart contracts written in Solidity that also far only executing on Ethereum or new contracts to test the capabilities of ELL. Will the Solidity compiler to ELL generate more secure code than on EVM? The Solidity compiler takes advantage of the strong security guarantees offered by ELL to generate more secure code than its EVM counterpart. Additionally, the compiler is designed to facilitate easy inclusion of static analysis and optimization passes, same like ELLVM, that will hopefully also increase security. Are all the Solidity features going to be supported right away? The Solidity compiler will support all Solidity features that aren't exposing low-level EVM functionality. Features like inline EVM assembly and low-level ABI exposing calls will not be supported as they aren't meaningful for ELL backend. Features like delegate call that are known to introduce security concerns in EVM are also excluded since ELL provides safer alternatives. What is the role of the forthcoming KVM and ELL test nets? So the test nets are designed to allow developers to experiment with KVM and ELL in a production-like environment to write and deploy their production smart contracts and test that they provide a functionality expected of them without bugs or security vulnerabilities. Users can use KVM and ELL to compare the relative performance of a smart contract on both EVM and ELL but by comparing the same Solidity codes to both targets. Running it on both chain and seeing for themselves which one is faster or uses less gas. But the ultimate goal is to get the ELL EVM ready for deployment on the Cardano blockchain. This is the first time a formerly semantically defined and completely automatically generated VM is using production. So it is a huge step for the entire former methods community. Your help, support, feedback and criticisms are immensely useful. What we expect from KVM and ELL in terms of performance. So first recall that these VMs are automatically generated from their performance specifications. A fact which introduces some performance penalty over and above existing Ethereum clients. We are in the process of generating a new compiler for K which is intended to be at least as fast as the human written interpreters in existing Ethereum clients. But it will not be but it will not be ready until the full production launch. Developers should still expect a performance of KVM to be tolerable and report excessive performance penalties. For example, stalling indefinitly on a transaction and so on. So please report such excessive performance penalties to developers as bugs to be fixed. Because the performance is intended to only be within a single order of magnitude slower. Yet, on the other hand has been designed also with performance in mind. So we do not expect any major performance glitches in Ethereum.