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.
本文为RChain创始人Greg做客币乎直播间访谈实录
Greg:很高兴有机会和大家一起在币乎做AMA!
我先自我介绍一下: 我在RChain已经工作了很长时间了,哈哈哈哈。 RChain还没有成立之前,大概30年前开始,我就开始作为数学家,研究对今天的RChain以及基于RChain的应用必不可少的一些技术了。实际上,今天和大家分享的内容,也起源于25年前我的博导工作。那时候存在一个梦想,就是以CBC(构造中正确)的方式开发软件。我记得第一次见到他的时候,是在加拿大渥太华的一场会议上,我们都是讲者。他在演讲中提到了从软件正确性的证明中(CBC)直接开发软件,我立刻就受到了吸引。RChain就是脱胎于这个愿景。
他在演讲中还提到了逻辑和计算之间的关系。我一看到这个想法,就意识到,它不仅仅会改变软件开发方式,还会改变我们对很多事物的理解 。 这也是今晚我演讲的主题。
必须澄清,今天的演讲主题不仅是RChain重构互联网,还是类型重构互联网。有些人可能对类型不是很熟悉,它实际上是一种限制计算机程序的方式。软件开发者描述程序行为的信息,然后写代码,编译器检查信息和代码,确保其符合这些限制。
大多数语言,比如Java,只是对数据的形态进行限制,比如Sort函数,接受一个整数列表的输入,并输出一个整数列表。然后,在过去30年间,我们发现,你可以用类型表达不同种类的信息以及有关于程序更丰富的信息。比如你可以用类型对程序的安全信息进行限制,阻止信息泄漏,也可以确保程序通过Gossip协议分享秘密,诸如此类。
类型也可以提供有关活性的信息,以确保程序执行,不会陷入死锁。也就是一个部分等待另一个部分的执行结果,而这个部分反过来又在等待第一部分的执行结果,陷入了一个死循环,类型也可以避免这种死锁。
如果考虑一下这对于互联网的意义,情况就变得非常有意思了。互联网正在被重构,
它正不可避免地从少数几个大公司(如谷歌、亚马逊、Facebook等)控制的中心化网络转为为去中心化社区服务的去中心化应用,区块链在此扮演重要的角色,但是这个重构的过程却远远超越区块链技术本身。毫无疑问,这样的变化将对社会、政治、经济都产生巨大的影响,但是除了区块链之外,还有一些技术,将与其一道创建新一代的软件服务。其中就包括类型系统。
有意思的一点在于,很多人都没有意识到,逻辑一直在经历一场革命,我们对逻辑的认知,以及逻辑与我们生活中其它方面之间的联系一直在发生变化。亚里士多德是最先正式提出逻辑这一概念的人,20世纪80年代,一位名叫Jean-Yves
Girard的人提出了线性逻辑,将逻辑与对资源的认识联系起来,从而大大拓展了我们对逻辑的理解。
这些都改变了我们对证明(proof)的理解,改变了我们对化学、物理、量子力学等的理解,但是逻辑的演化还远未结束,它将为整个的数字生态带来广泛的影响。
回到代码。今天的代码就像是互联网里的暗物质,我们将代码看作数据集,存储在GitHub这样的库里,但是我们无法搜索它,就像是搜索关系型数据或是XML数据一样。相反,我们需要应用元数据或社会工程,比如Bob知道一个名为Alice的人知道这个库…这本质上意味着代码是不透明的,它占据了互联网的大量存储空间,但是却难以搜索。
15年前,有个团队开发了一个名为Hoogle的系统,如果大家还记得我之前给的Sort函数的例子,输入整数列表,并输出整数列表,你可以将这个整数列表类型作为关键词,输入Hoogle进行查询,Hoogle就会返回所有匹配的Haskell函数。但是有一个问题,Sort的类型和Shuffle是一样的。Sort函数的功能是排序,也即输入随机的整数列表并输出有序的列表,而Shuffle的输入和输出都是随机的整数列表。因此如果你在Hoogle上以整数列表类型作为关键词进行搜索,有可能得到的结果并不是自己想要的。换言之,这意味着用类型作为关键词搜索这个想法,也就没那么有用了。
但是我此前提到的,逻辑革命,不仅仅是线性逻辑,也包括逻辑的其他方面和其它类型的逻辑,允许我们对于类型系统进行定义。事实上,存在一个思路,将类型和逻辑挂钩,并将程序与证明挂钩。因此逻辑的革命必然带来类型的革命,实际上这场类型的革命允许我们基于代码的功能和结构进行搜索。尤其是,我们可以搜索单线程、多线程、分享秘密和死锁等各类代码。
基于代码的功能和结构去搜索代码带来的一个结果就是,它允许编译器检查代码里的新型错误。比如:搜索多线程代码就转变成检查正在编译的代码是否存在资源竞争,换言之,它是否能非确定性地(non-derministic)响应不同的输入。搜索分享秘密的代码就转变成检查正在编译的代码是否存在安全漏洞。 诸如此类的例子。大家会在Rholang的类型系统里找到上述提到的种种功能。而检查出资源竞争的能力就可以避免DAO漏洞以及以太坊智能合约上已经出现的许多昂贵的攻击。
但是它的影响远不止于代码搜索,它也会影响代码生成,尤其是,它会强化我们利用人工智能生成和整合代码的能力。
1993年,我还在一家研究机构工作,和英国电信的一个团队合作。我就提出了一个人工智能算法,可以利用类型搜索散布于全网各个库里的代码碎片,比如现在还可以搜索智能合约和区块链碎片并整合,返回一个满足用户需求的程序。这样一来,人工智能就能合成代码,并实现一系列的功能。
但是这场革命不仅限于代码,它也适用于一系列其它的领域,比如几何推理。RChain开发的这个逻辑形式操作语义算法,就是从不同类型的计算框架,包括几何代数中生成类型系统和查询语言。
除此之外,它还可以应用于无人车、制药、蛋白质折叠等一系列领域。以制药为例,这个算法应用于动态系统,大家可以认为计算机系统是一种动态系统,细胞信号转导机制也是(因此也适用)。我们可以将类型系统生成应用于这些动态系统的建模上。其中一种可能的查询,在类型系统算法出现之前无法做到,就是寻找细胞里某个特定的小分子浓度,并识别其与某种特定的细胞信号转导机制之间的关系,从而进行干预,避免细胞信号转导机制达到某个状态。
这些就是RChain尤其是RChain的逻辑形式操作语义算法能帮助实现的。
此外,等区块链的扩容性足够强大,囊括所有的公共领域数据后,比如地理位置数据,像人、物联网、传感器的位置,或者是医疗或其它的敏感数据,RChain基于这些数据的结构或功能搜索的算法就会更有用,更有价值。
但是也可以想象,这样的搜索能力、一个全球计算机和一个全球的数据库,绝不能仅由一小部分人掌握,必须是归属于全人类。
这就是今天我演讲的主要内容。
以下是对Greg的问答:
1. REV对RChain网络有哪些作用?
答:REV在提供网络安全方面发挥两大重要作用。第一是防止DDoS攻击。因为RChain想要打造的一个全球计算机和一个全球存储系统,任何能连上互联网的人都可以访问,这意味着,恶意的攻击者是可以拒绝他人的访问的,比如说提交永续运行的Rholang程序,并占用无限的资源,如果不加阻止,其他人就无法访问。REV可以避免这一点,因为每一步的计算和每一个存储单元都需要一定的REV开销, 如果说你的程序永续运行,那就意味着,你需要承担无限的REV开销。
第二点:REV在共识机制中扮演核心角色。因为RChain是PoS网络,REV就确保了验证人遵循共识协议规则。如果可以提供加密学证据证明有验证人没有遵循协议规则,他们的保证金(stake)就会被罚没,因此长期来看,只有遵循规则的验证人才会留在网络里。
2. Greg你好,能介绍一下RChain的Staking机制、参与门槛及如何参与吗?
答:Staking机制与证明(justification)机制直接相关。区块链的结构意味着所有的区块都带有证明,这样的证明机制允许我们审查验证人发起新的区块时,是否是诚实的。一旦发现不诚实的验证人,比如发起双花或其它攻击,网络就可以罚没其保证金。这就是RChain的Staking机制。
就参与门槛而言,如果考虑经济模型的话,RChain希望的是允许尽可能多的验证人参与,使得RChain 网络的通胀率在所有的PoS网络中最低,同时验证人依然能获得最大程度的奖励。
我们也发布一些Staking的介绍,包括我们的铸币系统,以及大额Staking的折扣机制,这样的设计允许我们实现通胀率最低的同时,验证人获得最大程度的奖励。
3. RChain的Casper和ETH 2.0的Casper有什么区别?
答:二者之间存在很多的区别。我仅就其中一点进行说明。
实际上,Casper是没有活性的,这一点已经得到了证明。也就是程序会卡住,无法继续执行。要解决这个问题,必须设计一定的同步约束(Synchronization Constraints),这个同步约束规定,要提出新的提案(proposal),这个提案里必须包含其他验证人提案(proposal)的多少信息, 然后才能提出。也就是说RChain的同步约束不是通过世界时钟实现的,因为这一点技术难度非常大,尤其是在去中心化的网络中,它也意味着你需要信任一个中心化的时钟。但是证明(justification)机制却可以用来保证这个同步约束。
除此之外,Casper还有其他的问题,比如公平性。Casper本身是不公平的,你需要添加其它的属性才能保证公平。一种思考同步约束和公平性的方法,就是想象一只摇滚乐队,其中一个成员只顾自己演奏,不管和其它成员的配合(同步),那么演奏的效果就非常差。因此同步约束就意味着,这个成员必须要听其他成员的演奏,而且要证明他听了,才能够继续演奏自己的部分。
这些就是RChain和ETH 2.0的Casper之间的一些区别。
4. 为什么一定要去中心化的平台 ,听到您刚才讲的功能在中心化平台上似乎也可以实现,而且中心化的效率更高?
答:中心化往往更高效,如果你看一下大自然,大自然始终是在中心化和去中心化之间做一个平衡。比如细胞,细胞有细胞质、细胞核等各类资源,一个细胞对内部资源的掌控是中心化的。但是另一方面,细胞又在无限地复制。如果细胞不复制,而是将所有的资源都集中在一个巨大的细胞里,那么一旦这个细胞出了问题,整个系统也会出问题。因此,始终要在中心化的效率和危险之间做一个权衡。
当然没有任何一个解决方案可以放之四海而皆准,你要做的就是去寻找平衡。RChain就是不断地去寻找平衡点,这样一方面通过本地化的资源,尽可能实现效率,另一方面又保证珍贵的资源不会仅为少数几个人掌握。
5. Greg好,从技术的角度,也许是可以重构互联网的,但是如何吸引普通人来使用这个新技术呢?
答:这个问题问得很好。我自己经常使用的一个技巧就是通过无可否认的用途,人们自然而然地会注意到。比如说,当这个技术首次用于优化无人车的算法,或是首次用于寻找治愈某种疾病的疗法,人们立刻就会注意到。哪怕只是改变了搜索代码的方式,开发者社区也会立刻注意到这种新的搜索算法。然后其他人也会注意到。这就是我吸引普通人使用这个新技术的方式。
我十几岁的时候,有一个夏天去市场上卖草莓,我做的就是一大早去挑选最好看的草莓,简简单单的铺在摊位上,大家立刻就会注意到,阳光下闪着诱人光泽的草莓,我不需要多加兜售。
道理是类似的。你开发的技术有用,能满足人们的某个需求,他们就会注意到,并主动去探究这项技术。
6. Rholang的解释器很慢,有优化的计划么?
答:有很多的优化计划。大约15–20年前,一位计算机科学家提出了一种将某种结构的解释器,比如Rholang解释器变成虚拟机(抽象机器Abstract Machine)的方法。然后就可以很容易将这样的抽象机器变成一个基于字节码的机器,实现编译。因此我们会依据这个方法的一种变体对Rholang进行优化,从而使它更高效。
第二步就是从JVM的架构变成原生(Native)的架构,因为JVM也导致了一定程度的速度变慢,因此放弃JVM而转向原生硬件,也可以提高速度。比如说Haskell的编译方式,我们也会这么做。
第三步就是Rholang芯片-一个专门用途的芯片。因为现代芯片的指令集不太适合RChain想做的并发执行,因此在Rholang的蓝图里也提出了设计更适合并发执行的芯片。
总结来说,这是一个三步走的计划,第一步是从解释器转变为编译形式,第二步是放弃JVM,第三步就是芯片。
7. RChain有进入DeFi领域的计划么?
答:我们确实有进入DeFi的计划。但是如果我们要做去中心化的金融工具,还需要从更基础的层面去思考。今天的DeFi更像是一个流行词而非坚实的技术。我认为区块链技术目前还不够可靠,无法支持真正的DeFi,尤其是考虑到各大主流区块链已经报道出来的关键漏洞。因此目前不适合将关键的代码放到区块链上。
更好的选择是做低风险、高吞吐量的事情。这也是我们从互联网的发展中获得的启示。以谷歌为例,一开始谷歌只是一个单一的搜索界面,如果返回的搜索结果不对,不会有人因此丧失性命或损失大量的金钱,至少是就搜索论文、图片、视频而言。随着系统的成熟,你可以实现更复杂的功能,这也是Web 2.0过去15–20年间的发展历程。
8. RChain主网已经上线一段时间,为什么还是不能完全放开REV的交易?
答:这其实和监管有关。美国的监管意味着我们必须要谨慎考虑,是否将REV作为一个证劵型代币。但是REV也已经上线了抹茶等交易所,在中国和一些其它市场可以交易,但是由于监管的原因,它并不能在所有的市场交易。随着监管的成熟,这一点未来或许会发生变化。
9. RChain会重点关注哪些类型的Dapp?
答:这个问题也问得很好。它和我对于DeFi的看法是直接相关的。我们首先想做的是高吞吐量、低风险的Dapp。思考一下比特币和以太坊上的吞吐量,和Facebook或者是交易所的流量相比,是非常非常低的。
社交媒体和娱乐应用就属于风险非常低的,看不到别人发的帖子,也不会有人丧生,或者遭受财务损失。但是另一方面,人们又认为社交媒体能提供的人与人之间的联结,对他们的生活至关重要。
因此这就是我们想要关注的Dapp,高吞吐量、低风险。RChat就是一个例子,我们将开源的Zulip与RChain的后端整合,这样就有了链上的聊天室,这对于像链的治理的通信是非常重要的,因为它保证了通信信息不可篡改。
10. RChain目前的技术进展如何?似乎RChain的Twitter也不是很活跃?
答:技术开发和社交媒体的活跃是存在差别的。如果你想要看技术开发的活跃度,去Github上查看Pull Request,你就会发现RChain的活跃度在所有的区块链项目中都是居于前列的。开发热度非常高。
就社交媒体而言,我们刚刚重整旗鼓,因此未来RChain的社交媒体活跃度也会大大提高。
我们也举办很多的电话会议,比如每周五我们都会讨论 RChain在气候变化中的应用。另外我们也有RCast(播客)。所以我们会有自己的传播方式,内容非常的丰富,但是这些确实没有被翻译成中文。或许这也是为什么我们看起来在社交媒体上不是很活跃。
11. 0.9.26版本何时发布?
答:我无法给出一个具体的发布时间。但是已经非常靠近发布了,我们想要确保在沙盒里将所有功能都测试完毕再发布。
12. 团队有财政问题么?
答:疫情期间,相信所有人都不好过。但是RChain想做的事情非常多,而且有很多人愿意投入RChain的开发,这一点更重要。
就财政而言,我们有足够的资金发布新的release,一直支持到块合并及后续开发,再之后我们也会开启新的融资。
13. 是否有计划和IPFS结合?
答:我们没有任何的计划和IPFS结合。我认识Juan
Benet,也很尊重他,他的技术实力很强大,也很投入。但是IPFS的解决问题的路径是错的,如果要做存储,必须要认真思考查询(query)和交易(transactions)。做文件系统也需要仔细思考查询,最终IPFS还是要考虑交易边界(transactional boundary)。IPFS一开始没有思考这些基本的问题,而是决定先搁置,因此它们的架构非常笨重。但是RChain一开始就明白,做搜索必须要考虑查询,要有一个好的查询系统,并且要对交易有相当的理解。这个交易不是指金融交易,不是转币,而是数据库层面的 。我们对于这些概念都有相当的理解,因此二者的架构是很不一样的。
作者郑重申明:截至发文时,作者与文中提及项目存在利益关系,特此告知。利益关系包括但不限于下述情况:本人为项目团队成员、本人是项目团队成员的直系亲属或配偶、参与投资该项目、持有该项目发行的股份或通证、参与做空或做多该项目、收取回报进行有偿撰文等。