See Facebook's Open Finance (WIP) from the design of the Move language

Facebook has been on the official website of FBCoin and the white paper (Chinese translation). The official announcement also put a few screenshots of the wallet, which is enough to appease people's appetite. There has been a very thorough discussion1, and Binin Research's research report is highly recommended.

In addition, this time there is also a developer website, which has three Technical Papers, which are:

  • The Libra Blockchain introduces the Libra Protocol and her official implementation of Libra Core.
  • Move: A Language With Programmable Resources introduces the smart contract language tailored for Libra – the Move language.
  • State Machine Replication in the Libra Blockchain introduces the consensus algorithm running on Libra – LibraBFT.

I was thinking about the birth of FBCoin. If you want to provide new possibilities for open finance, you must see what permissions FBCoin gives developers and whether they will launch their own smart contract language. The idea is now confirmed. The language is directly named Move, like Facebook's maxim, Move Fast and Break Things, and Move also means that the essence of smart contracts is to program the transfer of user assets, which is really a pun. It.

First look at FBCoin's white paper and official website, especially the promotional video on the front page, which repeatedly switches frequently in the daily life of ordinary people – mostly from our third world countries – which makes me A very unreal feeling of crossing, it seems that the currency circle is really a place with time expansion effect. In any case, we must look for reality in this sense of unreality. These three Technical Papers contain more Good Stuff than I expected (how much Author?), in short, I am very full.

The necessity of the Move language

Li Xiaolai: Is Facebook stupid enough to design a Move language? – Babbitt, for the Facebook coin, the industry big coffee so commented

"If you're writing a program that has to work very closely with a program written in a certain language, it might be a good idea to write the new program in the same language." – Paul Graham

It's no surprise that FBCoin will launch its own smart contract language. After all, Durov had already dropped a Fift document in TON's Channel last month. Without a new language, Zuckerberg couldn’t stand it. In addition, the FB to be processed by FBCoin is different from the Blockchain we are currently encountering. 3 In Move's Technical Paper, these appeals are summarized in the following four points: – First-class assets – Flexibility – Safety – Verifiability

Safety Safety

Let me talk about security first. Like other blockchain projects with their own smart contract language 4 , a core appeal at the beginning of Move design is security. Can you imagine Billions of People being hacked by a hacker because of a flaw in a smart contract? Although I actually believe that FBCoin can be rolled back…

In particular, transferring Ether to a smart contract involving dynamic dispatch, which has led to a new class of bugs known as re-entrancy vulnerabilities [16]. High-profile exploits, such as the DAO attack [17] and the Parity Wallet hack [18], have allowed attackers to steal millions of dollars worth of cryptocurrency. — Move: A Language With Programmable Resources

Here, Move is happy to see the several Cases on Ethereum and criticize it. Move mentions that security is either resolved at compile time or during execution. Move seems to be adding a Bytecode Verifier before the execution, similar to the design in the JVM.

Verifiability

But the Bytecode Verifier layer can theoretically only check for simple bugs such as type mismatch and memory overflow. To check out all the logical bugs, it is necessary to solve the Halting Problem, and this part of the time complexity is also Will be added to the Critical Path of the consensus algorithm. The Move method is to minimize some time complexity, while some of the most critical checks are placed on the Bytecode Verifier, others are expected to be static checks under the chain.

In order to simplify the design of these static inspection tools, Move has made some necessary sacrifices at the language level, all of which are paving the way for formal verification in the future.

No dynamic dispatch

The target of each call site can be statically determined. This makes it easy for verification tools to reason precisely about the effects of a procedure call without performing a complex call graph construction analysis.

Limited mutability

Every mutation to a Move value occurs through a reference. References are temporary values ​​that must be created and destroyed within the confines of a single transaction script. Move's bytecode verifier uses a "borrow checking" scheme similar to Rust to ensure that at most one mutable In addition, the language ensures that global storage is always a tree instead of an arbitrary graph. This allows verification tools to modularize reasoning about the effects of a write operation.

Modularity

Move modules enforce data abstraction and localize critical operations on resources. The encapsulation enabled by a module combined with the protections enforced by the Move type system ensures that the properties established for a module's types can be violated by code outside the module. To enable exhaustive functional verification of important module invariants by looking at a module in isolation without considering its clients.

  • Https://doc.rust-lang.org/1.30.0/book/first-edition/mutability.html

In short, the Technical Paper of the Move language gives us a essay that criticizes Ethereum…

(TBD)

First Class Citizen First-class assets

  • https://en.wikipedia.org/wiki/First-class_citizen

(TBD)

Open financial border

(TBD)

Blockchain in FBCoin's eyes

A blockchain is a replicated state machine [4][5]. Replicators in the system are known as validators. Users of the system send transactions to validators. Each validator understands how to execute a transaction to transition its internal state machine from the current state To a new state.

It is the analysis and understanding of Bitcoin and Ethereum, leaving the crude product.

It’s just that everyone is the essence of what is ruined, but the ruin that FBCoin has abandoned is precisely what we think is the essence…

The important thing is Open Mind, &()……

    • Dai Shichao, unfortunately, Facebook will still use Libra to invade your financial freedom.
    • Jameson Lopp, Thoughts on Libra “Blockchain”
    • Binance Research, First Look: Libra
    • https://t.me/Tgram/170
    • Https://fossbytes.com/telegram-launches-fift-programming-language-for-ton-blockchain-network/
    • Https://cointelegraph.com/news/telegram-introduces-new-programming-language-for-ton-network
  1. In FBCoin's own words: The Libra mission is to enable a simple global currency and financial infrastructure that empowers billions of people.
    • The design story of the smart contract language Scilla
    • Tezos Software Architecture

Source: Andromeda Technology