RChain Blog

Greg Meredith’s interview with Bihu on “Types” – July 16 2020 – English translation

This article is an english translation transcript of RChain Founder Greg’s interview with CoinHu Live.
Greg: I’m glad to have the opportunity to do an AMA with all of you at CoinHu!

Let me introduce myself: I’ve been at RChain for a long time hahaha. Before RChain was founded, starting about 30 years ago, I started working as a mathematician, studying the implications for today’s Some of the technologies that are essential for RChain and RChain-based applications are now available. In fact, what I’m sharing with you today also has its origins in my work as a blogger 25 years ago. At that time a dream existed to develop software in a CBC (Correct in Construction) fashion. I remember first meeting him at a conference in Ottawa, Canada, where we were all speakers. In his talk he mentioned developing software directly from the proof of correctness (CBC) and I was immediately intrigued. RChain is born out of that vision.

He also mentioned the relationship between logic and computation in his talk. As soon as I saw this idea, I realized that it would not only change the way software is developed, but it would change our understanding of many things! . This is also the topic of my talk tonight.

It is important to clarify that the topic of today’s talk is not only RChain refactoring the Internet, but also type refactoring the Internet. For those of you who may not be familiar with types, they are actually a way of limiting the behavior of a computer program. The software developer describes information about the program’s behavior, then writes code, and the compiler checks the information and code to make sure it meets those limits.

Most languages, such as Java, simply place restrictions on the form of data, such as the Sort function, which accepts a list of integers of input and output a list of integers. Then, over the last 30 years, we’ve discovered that you can express different kinds of information in terms of types as well as having richer information about the program. information. For example, you can restrict the program’s security information by type to prevent information leakage, or you can make sure that the program passes Gossip protocol to share secrets, and so on.

The type can also provide information about activity to ensure that the program executes and does not fall into a deadlock. That is, one part waits for the result of the execution of another part, which in turn waits for the result of the execution of the first part. It’s stuck in a deadlock, and types can avoid this deadlock.

The situation becomes very interesting when you consider what this means for the Internet. The Internet is being reconfigured ,

It is inevitably moving away from the centralized network controlled by a few large companies (e.g. Google, Amazon, Facebook, etc.) Shifting to decentralized applications that serve decentralized communities, blockchain plays an important role here, but this refactoring process is Far beyond blockchain technology itself. There is no doubt that such changes will have a huge impact on society, politics, and the economy, but beyond blockchain, there are a number of technology, with which a new generation of software services will be created. This includes type systems.

It’s interesting to note that many people don’t realize that logic has been going through a revolution in what we know about logic, and the The connection between logic and other aspects of our lives is always changing. Aristotle was the first to formally introduce the concept of logic, and in the 1980s, a Jean-Yves
Girard’s people have proposed linear logic, which links logic to knowledge of resources, thus greatly expanding our understanding of logical The understanding.

These have changed our understanding of proof (proof), of chemistry, physics, quantum mechanics, etc. But the evolution of logic is far from over, and it will have broad implications for the entire digital ecosystem.

Back to code. Today’s code is like the dark matter of the internet-we think of code as datasets, stored in repositories like GitHub. But we can’t search it, like we can search relational or XML data. Instead, we need to apply metadata or social engineering, like Bob knowing that someone named Alice knows about this library…which Essentially it means that the code is opaque, it takes up a lot of storage space on the internet, but it’s hard to search.

Fifteen years ago, a team developed a system called Hoogle, and if you remember what I’ve previously given to Sort Example of a function that enters a list of integers and outputs a list of integers, which you can enter as a keyword with this integer list type Hoogle makes a query, and Hoogle returns all matching Haskell functions. But there is a problem, Sort is of the same type as Shuffle. the Sort function functions as sort, i.e. Shuffle inputs a random list of integers and outputs an ordered list. So if you do a search on Hoogle with the integer list type as a keyword, chances are that the results you get are not your own wanted. In other words, this means that the idea of searching with type as a keyword is not so useful.

But as I mentioned earlier, the logic revolution, not just linear logic, but other aspects of logic and other types of logic as well. Allows us to define the type system. In fact, there is an idea to link types to logic and to link programs to proofs. So the revolution in logic inevitably leads to a revolution in types, and in fact this revolution in types allows us to define types based on the function and structure of the code. Search. In particular, we can search for single-threaded, multi-threaded, secret-sharing and deadlocked code of all kinds.

One consequence of searching code based on its functionality and structure is that it allows the compiler to check for new types of errors in the code. For example, searching for multi-threaded code turns into checking whether the code being compiled is competing for resources, in other words, whether it can be non deterministically (non-derministic) in response to different inputs. Searching for code that shares secrets turns into checking the code being compiled for security vulnerabilities. And so on. You will find all the above-mentioned features in Rholang’s type system. The ability to check out resource contention would have prevented the DAO vulnerability and many of the costly attacks already seen on ethereum smart contracts! .

But its impact goes beyond code search; it also affects code generation, and in particular, it reinforces the idea that we use artificial intelligence to generate and the ability to integrate code.

In 1993, I was still working at a research institute, with a team from British Telecom. I came up with an artificial intelligence algorithm that could use types to search for pieces of code scattered across various libraries across the network, such as the one that is still Smart contracts and blockchain pieces can be searched and integrated to return a program that meets the user’s needs. In this way, the AI can synthesize code and perform a range of functions.

But this revolution isn’t just limited to code; it applies to a range of other domains as well, such as geometric reasoning.RChain developed the This logical form operates semantic algorithms by generating type systems from different types of computational frameworks, including geometric algebra and Query Language.

In addition, it can be applied to a range of fields such as unmanned vehicles, pharmaceuticals, protein folding, etc. In pharma, for example, this algorithm is applied to dynamic systems, which you can think of as computer systems, cell signaling mechanisms as well (and therefore applicable). We can apply type system generation to the modeling of these dynamic systems. One of the possible queries, which could not be done before the advent of type system algorithms, is to find the concentration of a particular small molecule in the cell and identify the relationship between it and a particular cell signaling mechanism so that intervention can be made to avoid cell signaling mechanisms reach a certain state.

These are what RChain in particular can help achieve with its logical form-operating semantic algorithms.

Moreover, when the blockchain is sufficiently scalable to encompass all public domain data, such as geolocation data, like people, objects Networking, sensor location, or medical or other sensitive data, RChain’s structure or functionality based on this data The search algorithms would be much more useful and valuable.

But it is also conceivable that such a search capability, a global computer and a global database, must not be left to a small group of people. Mastery must be ascribed to all humanity.

That’s the main point of my talk today.

The following is a Q&A with Greg.

 1. What is the role of REV for RChain networks?   

A: REV plays two important roles in providing network security. The first is to prevent DDoS attacks. Because RChain wants to create a global computer and a global storage system, anyone who can connect to the Internet can access, which means that a malicious attacker can deny access to others, such as by submitting a perpetually running Rholang program and takes up unlimited resources that no one else can access if they are not blocked.REV avoids this because every One step of computation and every memory cell requires some REV overhead, and if your program runs forever, that means , you need to take on unlimited REV overhead.

The second point: REV plays a central role in the consensus mechanism. Since RChain is a PoS network, the REV ensures that the verifier follows the consensus protocol rules. If cryptographic evidence can be provided that a verifier did not follow the protocol rules, their take is taken. Forfeit, so in the long run, only validators who follow the rules will stay in the network.

 2. Hi Greg, can you tell us about RChain's Staking mechanism,
thresholds for participation and how to get involved?    

A: The staking mechanism is directly related to the justification mechanism. The structure of the blockchain means that all blocks have a proof, and such a proof mechanism allows us to review when a verifier initiates a new block. whether it is honest. Once a dishonest verifier is found, such as launching a double flower or other attack, the network can forfeit its margin. This is RChain’s Staking mechanism.

In terms of participation thresholds, what RChain wants is to allow as many validators to participate as possible, if you consider the economic model. allowing the RChain network to have the lowest inflation rate of any PoS network, while still allowing the verifier to get the most out of the Rewards.

We also post some Staking introductions, including our minting system, and discounts on big Staking! The mechanism is designed in such a way that allows us to achieve the lowest rate of inflation while the verifier gets the maximum reward.

 3. What is the difference between RChain's Casper and ETH 2.0's Casper?    

A: There are many differences between the two. I will explain just one of them.

In fact, it has been proven that Casper is inactive. That is, the program gets stuck and cannot continue executing. To solve this problem, you have to design some kind of Synchronization constraint (Synchronization Constraints), this synchronization constraint states that a new proposal is to be made, this The proposal must contain as much information as the other validator’s proposal before it can be submitted. This means that RChain’s synchronization constraint is not implemented by world clock, as this is very technically difficult, especially since the In a decentralized network, it also means that you need to trust a centralized clock. But the proof (justification) mechanism can be used to ensure this synchronization constraint.

There are other problems with Casper, such as fairness, and Casper itself is not fair. Adding other properties to ensure fairness. One way to think about synchronization constraints and fairness is to imagine a rock band in which one member plays only by himself, regardless of and The other members cooperate (synchronize), then the playing is very poor. So the synchronization constraint means that the member must listen to the other members and prove that he did before he can continue to play Own section.

These are some of the differences between RChain and ETH 2.0’s Casper.

4. Why does it have to be a decentralized platform , 
hearing the features you just talked about seem to 
be possible on a centralized platform, 
and Is it more efficient to be centralized?   

A: Centralization tends to be more efficient, and if you look at nature, nature is always a balance between centralization and decentralization . Cells, for example, have various resources such as cytoplasm and nucleus, and a cell has centralized control over its internal resources. But on the other hand, the cell is replicating infinitely. If instead of replicating, the cell concentrates all its resources in one huge cell, then if something goes wrong with that cell. The whole system can also go wrong. Therefore, there is always a trade-off between the efficiency and danger of centralization.

Of course no one solution is universally applicable, all you have to do is to find the balance. rchain is the We are constantly looking for a balance, so that on the one hand we can be as efficient as possible through localized resources, and on the other hand we can guarantee precious Resources will not be held by only a few.

 5. Greg Well, from a technical standpoint, 
it may be possible to reconfigure the Internet, 
but how do you attract ordinary people to use this new technology?  

A: That’s a great question. One of the techniques I use a lot myself is that people naturally notice through undeniable uses. For example, when this technology is first used to optimize an algorithm for an unmanned vehicle, or when it’s first used to find a cure for a certain disease, people Immediately notice it. Even if it’s just a change in the way the search code is done, the developer community will immediately take notice of this new search algorithm. And then others will notice it too. That’s how I’ve attracted regular people to this new technology.

When I was a teenager, I went to the market one summer to sell strawberries, and all I did was go early in the morning and pick the best-looking strawberries, and simply The laying out of the stalls, people immediately notice the strawberries that glisten invitingly in the sun, and I don’t need to peddle more.

The reasoning is similar. You develop a technology that is useful and fulfills a certain need, and people will take notice and take the initiative to explore that technology.

 6. Rholang's interpreter is slow, is there a plan to optimize it?

A: There are many optimization schemes. About 15-20 years ago, a computer scientist proposed an interpreter of a certain structure, such as Rholang method of turning an interpreter into a virtual machine (Abstract Machine). Such an abstract machine can then easily be turned into a bytecode-basedA: There are many optimization schemes. About 15-20 years ago, a computer scientist proposed a way to turn an interpreter of some kind of structure, such as the Rholang interpreter, into a virtual machine (Abstract Machine Abstract Machine). Such an abstract machine could then easily be turned into a bytecode-based machine that could be compiled. So we will optimize Rholang based on a variant of this method to make it more efficient.

The second step is to go from a JVM architecture to a native (native) architecture, as the JVM also causes some degree of slowdown, so abandoning the JVM in favor of native hardware can also increase speed. For example, we would do the same with the way Haskell compiles.

The third step is the Rholang chip – a purpose-built chip. Since the instruction set of modern chips is not well suited to the kind of concurrent execution that RChain wants to do, the Rholang blueprint also proposes designing a chip that is better suited to concurrent execution.

To summarize, it’s a three-step plan, with the first step being to move from interpreter to compiled form, the second step being to abandon the JVM, and the third step being the chip.

 7. Does RChain have any plans to enter the DeFi space?

A: We do have plans to get into DeFi. But if we’re going to be a decentralized financial tool, we need to think about it at a more fundamental level. DeFi today is more of a buzzword than a solid technology. I don’t think blockchain technology is currently reliable enough to support a true DeFi, especially given the critical vulnerabilities that have been reported by the major mainstream blockchains. Therefore it’s not appropriate to put critical code on the blockchain at this time.

The better option is to do low risk, high throughput things. That’s what we’ve learned from the evolution of the Internet. Using Google as an example, Google started out as a single search interface, and if it returned the wrong search results, no one would lose their life or lose a lot of money, at least as far as searching for papers, images, and videos. As the system matures, you can implement more complex functionality, which is how Web 2.0 has evolved over the last 15-20 years.

8. The main RChain network has been online for some time, 
why is it still not possible to fully liberalize REV trading?

A: This is actually related to regulation. Regulation in the U.S. means we have to carefully consider whether to use REV as a security-based token. But REV has also gone live on exchanges such as Matcha and can be traded in China and some other markets, but for regulatory reasons it is not traded in all markets. This may change in the future as regulation matures.

9. What types of Dapp will RChain focus on?

A: That’s a good question too. It’s directly related to my view of DeFi. The first thing we want to do is high throughput, low risk Dapp. think about the throughput on Bitcoin and Ethereum, which is very, very low compared to the traffic on Facebook or an exchange.

Social media and entertainment applications fall into the category of very low risk, where no one can see what others post and no one loses their life or suffers financial loss. But on the other hand, people see the human connection that social media can provide as vital to their lives.

So that’s what we want to focus on with Dapp, high throughput, low risk.RChat is an example of this, where we integrate the open source Zulip with the RChain backend so that we have chat rooms on the chain, which is very important for communications like the governance of the chain because it ensures that the communication information is not tampered with.

10. What are the current technological advances in RChain? 
Seems RChain's Twitter feed isn't very active either?

A: There is a difference between technical development and social media activity. If you want to see tech development activity, go to Pull Request on Github and you’ll see that RChain has one of the highest activity levels of any blockchain project. The development fever is very high.

As far as social media is concerned, we have just regrouped, so RChain’s social media activity will be much higher in the future.

We also host a lot of conference calls, like every Friday we talk about RChain’s application in climate change. Also we have RCast (podcast). So we’ll have our own communications that are very informative, but these really aren’t translated into Chinese. Maybe that’s why we don’t seem to be very active on social media.

11. When will version 0.9.26 be released?

A: I can’t give a specific release date. But it’s very close to release and we want to make sure that we test all the features in the sandbox before we release it.

12. Does the team have financial problems?

A: During the epidemic, I’m sure everyone was having a hard time. But there is so much RChain wants to do and so many people who are willing to invest in the development of RChain that it’s even more important.

Financially, we have enough money to release a new release and support it until the block merger and subsequent development, after which we will also open new financing.

13. Is there a plan to integrate with IPFS?

A: We don’t have any plans to combine with IPFS. I know Juan
Benet, and I respect him, is very technically strong and committed. But the IPFS problem-solving path is wrong, and if you want to do storage, you have to think carefully about queries and transactions. IPFS didn’t start out by thinking about these basic issues, but decided to set them aside, and as a result their architecture is very clunky. But RChain understood from the start that doing search had to be about queries, having a good query system, and having a good understanding of transactions. The transaction is not a financial transaction, not a currency transfer, but at the database level. We have a pretty good understanding of these concepts, so the architecture of the two is very different.



The author hereby declares that he has an interest in the project mentioned in the article as of the time of writing. Such interests include, but are not limited to, being a member of the project team, being an immediate family member or spouse of a member of the project team, investing in the project, holding shares or passes issued by the project, participating in a short or long position in the project, or writing for a fee in return.

Leave a Reply

Your email address will not be published. Required fields are marked *