RChain Blog

Rcast 98: ecovillages and RChain – OSLF (Operational Semantics in Logical Form) and RChain [Climate and Coordination] Aug 7 2020

Fri Aug 7 2020 • 59:03
Greg Meredith, Darryl Neudorf, Steve Ross Talbot

Subscribe: iTunes | Stitcher | Google Play | Spotify

Steve Ross Talbot 00:59
All right. Well, I have something that I definitely that I would quite like to talk about briefly. Yeah. So, yeah, I’ll share my screen. Okay, so what you see is that you, yeah, you see a map of the world. And you have in the top left hand corner. I think it’s British Columbia. And there’s a number three. Right? Yeah. So if we sort of move the map along, I’m moving the map along and then I’m gonna, I’m gonna then go into British Columbia.

The reason it’s three is because there’s three eco villages. And as you as you go further in, you can start to find out what they are. You can click on it. So there’s the red birds housing corporative Right, this is part of the Eco village network. Right, I’ll come back to precisely what that is and how it works. And then you can have a look at that. And we can have a look at another one. So New Earth mountain village. Right? I mean some new agey things and some aren’t. There’s the caca eco village cooperative, okay. And if I sort of move the map all the way to Scotland just because I talked about this place an awful lot. If I go all the way over here to the UK, you see there’s this little one here, and we can in Scotland, which is now sort of in the center of the map. And then I’m going to just go into that one. And then just click on this one and this is the Findhorn foundation. Ah, right. So this is Findhorn. Right.

So what you’ve got here is this map of all of the Eco villages cooperatives in almost every instance across the globe, right identified usually with a URL. I mean, some are just somebody’s got some land and a house. And they’re beginning the journey to build an eco village. Whereas some of mature what they’ve got in common is that they signed up to be part of the Eco village network. And I think why that’s relevant to us. RChain is if we’re building mechanisms for trusted collaboration, which is what we talk about a lot of the time, and we’re interested in figuring out how can we help in a tangible way. One of the things that we could think about doing is partnering for instance, becoming a member of the or a partner of the global eco village network. And not just that, but as and when RChat and RVote work, it would enable all of these organizations. There’s an awful lot of them. So then collaborate across the globe still with their local policies, they could even use it for local stuff.

And then Findhorn probably would be interested, because, you know, there’s about 1000 plus people or so but you know, the guy that’s got a house and a few acres, he doesn’t need to vote on anything other than for the with respect to the ecovillage network itself, because he’s a one man band. Just got me thinking that as and when we’ve done our, we’ve used RChat service., it would be really nice to go find your nearest eco village and have a check. Check it out in some way. Your online or otherwise Stay safe and all that. But check it out. Because if they have if they using techniques, you know some of these may eschew technology sort of, you know, the Middle Ages, but most of them don’t. But they don’t really know how they could use that technology. And I think there’s the beginnings of a relationship that we could forge with the Eco village network itself to enable all of these little organizations to collaborate.

So that’s kind of what I wanted to put in front of people for this climate coordination call because this is this would be climate coordination. in action, let alone all the other things that we could do. This is something really quite concrete. There’s quite a lot I heard Greg because I know he’s cough anyway. Yeah, there’s quite a lot in you. You probably know these ones, Greg. But there’s yeah obviously some in some in and around Seattle as I move the map, we see what there is, so there you go, there’s one. So this one is Clearwater Commons and then there’s the Songaia Cohousing Community. These are probably near you aren’t they Greg?

Greg Meredith 06:30
They do look near Yes.

Steve Ross Talbot 06:33
Yeah, I mean, I just go find it just look. If you drive past see what they are. If it’s busy, there’s lots of people you know if it looks like they’re going back to the Dark Ages probably not worth the conversation. So that was my little idea. And I thought I’d just share it graphically.

Darryl Neudorf 07:04
So, so part of what we could potentially provide is more of the “gl” part of the “Glocal” approach like we would we could, you know, potentially help build the kind of coordination technology to to kind of connect this this movement as more of a global thing.

Steve Ross Talbot 07:32
Yeah, I mean, it is there is you know, when you go to the website, you can ask about the organizational structure of the, it’s called the Global eco village network, so it is global. Okay. So what you’ve got is all of those dots. The only way they coordinate is through their membership of the global eco village network. So if we provided the global eco village network with some cool automation tools that they could use that was trusted, secure, decentralized. From an organization that has common values with, with this this global eco village network. It would therefore make sense to sort of see if we could work together.

Darryl Neudorf 08:21
Yeah, makes sense to me.

Steve Ross Talbot 08:24
Given that we’ve got to do the voting and the deliberation stuff. And we are indeed doing it. We even have, you know, kind of a target application. That might work.

Darryl Neudorf 08:37
Yeah, I was thinking that I was trying to envision you know, how it would be manifested. And I guess it would, at first at least kind of center around but what we’re building with RChat. Yeah.

Greg Meredith 08:49
Do we not have Nora today?

Darryl Neudorf 08:51
Uh, no, Nora is sick. she emailed us this morning and said she

Greg Meredith 08:58
Oh, I’m so sorry.

Darryl Neudorf 09:00
Yeah. See, she said she wasn’t feeling well. So she couldn’t she couldn’t make it.

Greg Meredith 09:07
All right, well, I’ll send her some. well wishes were have we already? I guess you’ve already begun the call. So

Darryl Neudorf 09:18
Yeah, it’s not it doesn’t have the fancy Nora introduction. But yeah, we got started. Yeah, so one thing that Nora wanted to bring to the table was this article about Microsoft. The headline is “Microsoft’s astonishing climate change goals explained.” The company plans to wipe out all of its carbon emissions and keep going. So their plan is to be completely carbon neutral. Looking for the date when can’t remember exactly. You can’t see it here….2030. So, so they want to, you know, all their data centers worldwide everything, carbon neutral by 2030. And then their plan is to go further than that and go carbon negative so that they can attempt to reverse the damage that they’ve done up until then. It’s a very ambitious plan. It goes through the various steps and stages of how they’re planning on doing this.

Greg Meredith 10:36
It’s great news. I don’t know how they go carbon negative, but I’d like to hear about that.

Darryl Neudorf 10:45
Yeah, I don’t know either. Just kind of reading through it here. But yeah, I mean, to me, it’s just yet another example of the massive amount of investment that is being put into the next Industrial Revolution. And I was just kind of commenting to Steve, how in Jeremy Rifkin’s book which he released last year, the information is already out of date in that he wasn’t aggressive enough with his predictions about when peak oil demand would arrive. He claimed that it would be 2028. And it appears that it’s 2020 when peak oil demand has arrived, so like the shift to the next economy has already happened and to me, this article is just yet another example.

Greg Meredith 12:03
Yeah, I completely agree. I think your assessment is exactly right.

Darryl Neudorf 12:07
So I have some some questions that I would like to ask, kind of centered around an interview that you did, Greg back on June 25, with Blockchain Blueprint. And it’s kind of connected to what you were basically trying to describe to him, you know, what makes us unique and what what our focus is. And I was just wondering whether I could just kind of bounce some thoughts off of you about what you said.

Greg Meredith 12:51

Darryl Neudorf 12:52
Okay. So, um, so I’ll just read some quotes from what you said. So, you said that our focus is about self organization by building a digital asset management platform.

And I quote, “if you look at the last 20 years of the internet, it’s all been about digital asset management, Facebook, Google, Spotify. If you want to build out a decentralized coordination infrastructure around self organization, then essentially you must build a digital asset management platform. So that also uniquely identifies us. Bitcoin is a payments network. Ethereum would like to be more than a payments network, but it can’t scale. So it’s essentially a payments network. Neither of them are scalable enough to be a real payments network like visa, but even if they could get up to scaling to be a good payments network, if you think about it, right. Does the payments network have what it takes to be a digital asset management platform? Not really. But if you were to start from a digital asset management platform, then build a payments network. That’s easy. Digital Asset Management is much more complex than just payments. So our aim to provide coordination infrastructure dictates the markets that we go after first, and the architecture that supports those markets and makes us unique in that way. Essentially think of our chain as a decentralized database. It is more than that, because it’s also a decentralized computer. But it’s essentially a decentralized storage and compute mechanism. And as such, you focus on different things. So Rholang is really the next generation SQL query language, as much as it is a coordination language, so that that makes our architecture very different than a lot of other architectures.”

So that’s, I just love that little kind of chunk there. It really, to me, it really kind of explained it quite well, but it also kind of gave me more questions.

Greg Meredith 15:06
Oh, good.

Darryl Neudorf 15:07
So one question is a thing that’s unique about us, as I understand it, is that we are literally putting assets on chain. So I’m just wondering whether you can explain a bit more about how that works. Is it similar to p2p systems like BitTorrent in that the actual files are being stored and accessed in bits on all the computers connected to the network?

Greg Meredith 15:37
Yes, they’re the actual files are actually being stored on all copies of the files are being stored on all the computers that are participating in the shard. All the validators have local copies.

Darryl Neudorf 15:51
Okay, and then would a user access those files in a similar way as BitTorrent in little tiny chunks scattered around all the computers and then assembled later, or, or does it happen? Do we have to download the file? We’re

Greg Meredith 16:08
not we’re not we don’t bittorrent, I think it’s largely more of a routing protocol. Right? So it’s, it’s what it’s trying to do is to hide certain things. So, you can compose those two functionalities. So for example, you could run RChain through BitTorrent, which is a very reasonable thing and something that is ultimately on our roadmap, but you know, that that problem has already been solved, to a certain extent. So we’re tackling the other problems that haven’t been solved.

Darryl Neudorf 16:44
Okay, and, and so, so the other problems that haven’t been solved are what?

Greg Meredith 16:50
Well, scalable consensus for example, right. A coordination transactions semantics, for example, right? All of the things that that, you know, are right front and center in our architecture, right. So as I talked about, so rholang , if you ignore all the data transmission stuff looks remarkably like a coordination language. Right? So it’s, it’s, it’s saying, you know, these events happen in this order. But these events can run in parallel, right. And that’s how agents within the smart contracts which represent computational agents coordinate with with each other within the network. But once you add the data transmission bit, now you have this ability to not only put complex data up onto the chain, the the storage mechanisms, but you also have the ability to query the data on the basis of its shape. You’re saying, right. And so then when you have an agent that is putting data up on the chain and an agent that’s searching for data that has a particular shape, and when those two events line up when they meet, right, then you have the notion of transaction. Right? In the sense that data goes from one, one name, one storage location to another. Right, and that is the sort of next gen next gen notion of what a transaction is. And when I’m talking about transaction, I’m not talking about a financial transaction. I’m talking about what people measure when they when they do these TPCC benchmarks. Right. The kinds of transactions that have the notion of transaction that got Jim Gray that the Turing Award, that’s the notion of transaction that I’m that I’m talking about and measuring. Does that make sense? It’s much bigger than money. Yeah, yeah. It’s all about the data.

Darryl Neudorf 19:03
Yeah. Okay. So you’re kind of getting getting into another area that I was going to ask about. So also in that in that above talk, the interview. When talking about rholang versus solidity, you talked about how rholang provides a query system for code, so that you can search code, not only for how it is shaped, but for what it does. It can generate query systems that will allow you to create code based on its structure and function.

Greg Meredith 19:34
That’s not rholang. That’s operational semantics in logical form.

Darryl Neudorf 19:39
Ah, okay. Okay, great. So, what is the distinction between rholang and operational semantics and logical form?

Greg Meredith 19:49
Okay, so, so rholang is effectively it’s a programming language, right? So it’s built on different foundations than a lot of other programming languages but it’s essentially a programming language. Operational semantics and logical form is the next level up. It eats programming languages and produces a type system. And then you can use the type system to do these kinds of queries. So, what types do is they classify whatever the domain that they’re built on top of, right? So in the case that they’re built on top of a programming language, they classify programs, since they classify programs, you can use types to say, “Hey, give me all the programs that are in this bucket in this class. Right. And now, it turns out that this classification scheme, this way of, you know, sorting through programs includes information about how the program is structured and how the program behaves, which is new kind of informations not not the way type systems that you find in Haskell or Scala or, or Java or any language like that function today, but it is a notion of typing that has been under development for at least 30 years. Does that making sense?

Darryl Neudorf 21:23
I think so. I’m just a little confused about how, how rholang integrates with I actually have a I’m trying to, whenever I write “Operational Semantics in Logical Form” on a piece of paper, which I’ve been doing a lot lately. I abbreviate it to OpSeLF. Oh, small p, capital S, small E. LF, just so that I have an acronym.

Greg Meredith 21:55
Okay. All right. All right. So understood

Darryl Neudorf 21:59
Yeah, so so so I’m just trying to understand exactly how rolling integrates with OpSeLF, or how the two of them if they’re not, if not, if OpSeLF isn’t Rholang, how the two integrate.

Greg Meredith 22:20
Okay, so you can take this algorithm, Operational Semantics in Logical Form, I’ll call it OSLF. Okay, you can take OSLF and you can feed Rholang into it. And then you can get a classification system for Rholang progress.

Darryl Neudorf 22:40
Okay, so you can you could feed

Steve Ross Talbot 22:43
Yeah, think of it like, so in functional programming, right? A simple thing about functions is your function has an input. And a function has an output. So we write, we might write a function f that returns an integer and that takes an integer, we might write it as something like int arrow int, because that denotes the types involved. So it basically int arrow int just means there’s a function. And the type of the function is it takes an int, and it returns another int. Right? So you can think of what Greg just said, as being a function. And it the type of thing that it takes, it takes a Rholang program. And the thing that it emits that it gives back is a type system.

Greg Meredith 23:34
It doesn’t it doesn’t take a Rholang program, it takes all of Rholang. It takes the specification of Rholang. A spec for Rholang. Yes, right. So, so,

Steve Ross Talbot 23:45
Which in in effect is taking all known all possible Rholang programs, because the spec is the set of all possible rolling programs.

Greg Meredith 23:58
So It is a little complicated, Darryl, for a couple of reasons. One is because it’s, this is happening at a level that most people are not used to thinking about. They’re not used to thinking about something that takes a whole programming language and produces information about the whole programming language. They’re used to things that, that take programs or, or things even smaller than programs. So this is this is a larger thing. But the interesting thing is because it’s an algorithm, we can code the algorithm either in Rholang or, or something that Rholang can call and what that means is that you can now enrich Rholang with new query semantics. So it starts off with its own built in query semantics. All right. So it knows how to how to, you know eat data have certain shapes and emit data of certain shapes, but then with Operational Semantics in Logical Form, you’ve increased its ability, its capacity to, to understand the shape of data. Right? Because Operational Semantics in Logical Form is an algorithm that allows you to teach Rholang about the shape of data such as all JavaScript programs, and then how to classify all JavaScript programs so that programmers can now use Rholang to search JavaScript programs on the basis of how they’re structured and how they behave. Does that make sense?

Darryl Neudorf 25:43
It’s a little above my head but I’m still trying to wrap my head around how people would apply it like so people wouldn’t be wouldn’t have to. People aren’t bound to Rholang In order to apply OSL F,

Greg Meredith 26:03
No, they don’t. It’s an algorithm. And because it’s an algorithm, they could implement it in lots of different frameworks. And this was by design, right? I wanted it to be above any specific, programming language, but but here’s what I’m saying. If you were to implement the algorithm in such a way that it was accessible to Rholang, you could now use rolling to query GitHub and search for programs in GitHub that do that behave according to some specification, like, is this a bubble sort? Is this a Is this a FIFO queue, that kind of thing. And you can you could also Use Rholang to query geometrical data, like, find me a route in this map that has no left turns, that goes from a to b.

Darryl Neudorf 27:20
I’m just trying to figure out how? How does an algorithm create that kind of like, incredible

Greg Meredith 27:33
power? Okay, right. Because think about like, the way machine learning works, right? Machine learning takes in a bunch of data and produces classification schemes for the data. That’s essentially what it does, whether you’re using clustering analysis or neural nets, your effectively coming up with categories, you know, that have significance about the data? Right? That’s that’s what they do, right? So a machine learning algorithm eats a bunch of behavior, a bunch of data, like pictures and says, Oh, this is a picture of a dog. So it’s a classification scheme, or that’s a picture of a cat: classification scheme. You see what I’m saying? Yeah. Right. So it turns out that models of computation have a lot more built in structure than the kind of structure you might find in a data set of pictures. Right now, we would, we would love to discover that, you know, data sets of pictures have structure but we don’t know what that is a priori. But if someone is saying I got a programming language or I have a virtual machine, then we know for a fact that that that has a lot of intrinsic structure because of the meaning of the words a programming language or a virtual machine and all such things any programming language any virtual machine and a wide class of other things have to share this common intrinsic structure. And the the OS lF knows how to eat that structure and turn it into a very powerful classification scheme. A classification scheme that that that can recognize the structure that programs have, because you had to say that up front in order to say you have a programming language and knows how to recognize the evolution of programs because you had to say that in order to have a programming language, so it can it can it can use the existing information to build a classification scheme. And once you have the classification scheme, Then you can use it to go and query the programs in that programming language. Does that make sense?

Darryl Neudorf 30:07
Yeah, I’m starting to slowly understand it.

Steve Ross Talbot 30:11
The difference is Is that you, as programmers today, with the GitHub example, right, you can search Github, you could put in some words, bubble sort, blah blah blah, but it relies on the author of the program, having named it correctly. Well, what happens if they name their bubble sort algorithm, but they call it something else. You would never know.

Greg Meredith 30:36
Darryl Sort, hehe.

Steve Ross Talbot 30:38
Right so, whereas with this, I could say what I’m interested in is things that behave as a bubble sort should, regardless of what their names are, and it will tell me. So way back in, I don’t know 20 – 30 years ago in computer science, there was a lot of work on reuse. And reuse was responsible for lots of misuse, as it turns out, but reuse was the sort of Holy Grail because then if you can reuse code, then you know, that’s a line of code, you don’t have to write again, you just write it once, and it gets used lots of places. And so reuse was everything everyone wanted. And, and most of the reuse was around largely naming things. The problem was, was that if all that code was made available, as it is now in GitHub, nobody knows how to search it semantically for what the behaviours are. So, you know, the promise of reuse was always missing a step. And the step that was missing is the identification of the behaviour of something. So being able to say, I really want things that behave like a bubble sort. Notice the use of the word “behave”, because that’s really the only way you know it’s a bubble sort, is if its behaviour is the same as a bubble sort.

Darryl Neudorf 32:10
So it just sounds like you’re just talking about how standards weren’t formed so people had

Steve Ross Talbot 32:17
No, no, it’s not standard it’s not no standards are things that we as human beings impose on things and other people so that we can share a dialogue – common discourse, this is actually mathematics This is not this is not by common consent or agreement in a standards body. This is just – it is.

Greg Meredith 32:40
So you calculate, you can calculate. So like if you took if you took a bubble sort program, and you renamed all the variables to just machine generated strings, then the program would still then the using the type that represents bubble sort you would still be able to detect that it is bubblesort even though all the names have been changed,

Darryl Neudorf 33:13
okay, so so the algorithm, the OSLF algorithm, is capable of detecting or identifying enough of the characteristics of something in order to say it is what it thinks it is.

Steve Ross Talbot 33:33
Yeah, in order to determine its behavior.

Greg Meredith 33:35
Yeah. Now, now, the important thing here is that, it’s not looking for specific behaviors, right? The input to the system is a type, which can be thought of as a query, find me all the programs that look like this. Right so that’s the one thing that machine learning people don’t have. Right. They have to come with a built in Category like dog or cat or happy face or sad face or whatever it is, right? So, we produce a query language in which you can write down a bunch of interesting queries, not just one, in fact, an infinite number of interesting and fascinating queries. Now the subtlety to this is that sometimes you can write just just like you can write down programs that that that go forever. You can absolutely write down queries, which it would take forever to decide. But But it turns out that there are interesting sweet spots where you can detect interesting facts about programs and lots of other things that you can detect interesting facts about these programs. And it still takes finite time in order to do this.

Darryl Neudorf 34:57
And so those kind of those, those Interesting correlations or whatever, are what are being identified in the OSLF algorithm?

Greg Meredith 35:07
The OSLF algorithm generates the query language and the execution engine for running the query

Darryl Neudorf 35:14
generates the query language and execution engine. For – what was the rest of that sentence?

Greg Meredith 35:21
for running the query.

Darryl Neudorf 35:22
for running the query.

Greg Meredith 35:24
So think about it like this, like SQL is done by hand. There’s one query language, okay, SQL. And there is one algorithm for checking whether you know, a particular group of tables or elements satisfies the SQL query. What we’re saying is: you give us a model of computation, and we’ll give you back a query language. So it’s not one query language, it is one per model of computation. And that query language, we also generate the mechanism by which you can run it against a source of programs. So it’s a level up from SQL. Go ahead, see?

Steve Ross Talbot 36:14
Yeah, so you know, in one embodiment, it takes something and out the back it generates, oddly enough SQL. So it’s generated the SQL language. Right? But what Greg’s saying is, it doesn’t just stop there, it generates the thing that eats the SQL that enacts the query, the SQL engine.

Darryl Neudorf 36:42
So, okay, so now I’m trying to wrap my head around how OSLF applies to RChain? Is it a separate project outside of RChain and if so, Does RChain have perhaps like first first player advantage, because we are going to be utilizing OSLF?

Greg Meredith 37:12
So it can be made separate. But here’s the reason why you want to put it inside a blockchain project. Actually there are multiple reasons. As soon as you have OSLF, then a bunch of data sources which had, you know, significant value suddenly become a lot more valuable. So, like Swiss-prot, which is a massive database of proteins suddenly becomes a lot more valuable because you can get much more information out of that database. Geo location. Let me just finish

Darryl Neudorf 37:53
Okay, okay, sorry. Sorry.

Greg Meredith 37:54
All right. So a lot of that data become so valuable that it starts to identify people and information about people in a way that you would not want to be under the control of one corporation or one government.

Darryl Neudorf 38:17
Okay, yeah. Because like, when you as you guys have been talking, I’ve been kind of thinking about how it would apply to almost like accelerating AI capabilities.

Greg Meredith 38:28
Oh, it was certainly it can certainly accelerate AI. But even if you take AI out of the picture, yeah, it suddenly makes……. So if you were to wed it to a blockchain and you started putting important information, public information on that blockchain, because the information should be on a public data source, right, then that thing could potentially become much more valuable. Okay. Yeah. Because now you can create in a way that you’ve never been able to create before, and so you can learn things about the public that you’ve never been able to learn before.

Darryl Neudorf 39:07
Radical transparency on steroids.

Greg Meredith 39:10
That’s exactly right. And so you want it to be not in the hands of one party, but in a decentralized setting where everybody has it. Yeah, that’s why you join it with RChain. Does that makes sense?

Darryl Neudorf 39:31
Yeah. Okay. Um, but I guess if if you were cardano you could still potentially utilize OSLF, or could you? It’s the architectural structure of RChain…

Greg Meredith 39:54
All of this is made open source. I’m doing my level best to make sure that everyone access to the information. There’s no way anyone in hell can put a patent together on this, because I can point to over a decade of prior art saying, Nope, sorry, we reported on this here, here, here, here. You can’t hold that patent.

Darryl Neudorf 40:19
So is there something unique about Rholang and RChain that allows us to utilize OSLF in a way that other blockchains couldn’t?

Greg Meredith 40:32
Yes. And that is concurrency. As soon as you have something like this, you now dramatically increase the number of data sources that you might want to coordinate against. Like, I want to, not just that I want to coordinate against that geolocation and that geolocation database. But I want to coordinate against that geolocation database and that supply of work records, for example. And as soon as you have that kind of situation, concurrency is at the fore, you now must coordinate in the concurrent fashion, or you’re screwed.

Steve Ross Talbot 41:13
So there’s some little observations that are interesting that result from all of this, particularly with concurrency, right? So you might have two programs that are running concurrently, right? Different threads on the same machine with multiple processes or indeed different physical machines. And if you don’t know what their behaviors are, mathematically, if you can’t put a bounding box around the behaviors, you don’t know whether they need to interact with each other or not. Right, and you don’t know whether the interactions that they have are actually the right ones.

So you’re in a position in a distributed system, which is most of the web today, where you don’t really know for sure, when two things run, that one doesn’t tread on the other, or that they don’t get into some sort of deadly embrace, and nothing can carry on and you have to reboot your machine. Right, you just don’t know, the way that we tend to deploy software.

In a world that’s inexact like that is we try to test the hell out of it. But testing, as Dykstra said, doesn’t show the absence of defects of these issues. It just shows the presence of them and then you go get rid of those presences by fixing the bugs. Right. So if you have a stronger notion of type, that’s behavioral, then you can start to see where things can execute concurrently, and where things need to synchronize and what is good synchronization.

You can make judgments about that, automatically, it’s not like people have to inspect the code, the type systems will sort that out. They inspect the code. So to do this, this is kind of, you know, Robin Milner, always wanted a world that was exactly like that was much more predictable, there are still things that are unpredictable. But, you know, he wanted he wanted to make sure that types really were at the fore, I mean he used to say tighter types of the length and breadth of computer science.

And what Greg has sort of done here is, elevate the debate as to how you can deal with behaviors and what you can do with behaviors that would enable people to write programs, different parts of the globe, that actually could coordinate and not only that, correct by construction, and the prior work, there’s all sorts of prior work. You know, there’s interesting prior work. I was listening to Simon Peyton Jones, talk about Haskell, and the journey of Haskell, which is quite an interesting YouTube talk. I mean, I guess you worked with Simon Gregg, I would presume. And all of that stuff in functional programming that’s kind of like trendy these days, had its roots way back when. And a lot of what’s gone into theoretical computer science, and now new languages, including JavaScript and others, has its roots in some of that work.

So formalization, and the mathematics of it, you can’t do computing without it. It’s a shame. I think it was Dykstra again, I think the talked about the software crisis in like the late 60s. Which was simply that the number of requirements coming in exceeded the ability of programmers to actually deliver. And so you get this gap between what people need from technology and what people can have, any one time and, and that’s never slowed down as you know, as technology’s got more available, you know, smartphones and the like and IoT devices.

So that demand has risen, but nobody really at a commercial level, nobody really bothered much about you know, doing it properly. It’s like the Wild West you know, they designed languages by committee. That’s a really bad move. Lang. You know, I think PL1, the specification versus a specification of Rholang for instance, PL1 is in I don’t know 20 volumes of huge big books designed by committee. I’d rather trust, you know, if you go and have an operation, you don’t have a committee of neurosurgeons all clustered around, one of them’s actually given the job. Right.

And in the same way, you don’t have a committee of computer scientists come up with a language, you kind of want it to be really small number, right? It might be more than one. But the more people involved often the more things get added, for no good reason. People often just do that with languages, which is why Java has got so big and things like that. So I think having a new language, like Rholang brings that forward a step and then having the ability to extract interesting properties from not just Rholang programs but other programs.

It would be very useful. For instance, you could ask the question in GitHub, you know, give me all programs that do some sort of behavior, this bias towards something we know that we can do in Rholang really easily. And then you could see all of the other ones in other languages that do the same thing.

Darryl Neudorf 47:19
So I’m seeing that like, OSLF, I’m starting to understand the importance of it and how vital it could be in helping us coordinate quicker as a species.

Greg Meredith 47:35
Yes, that’s that’s the idea. It gives us a view into the data that we’ve never had before. That’s why in 2000… I can’t remember 2009 or 2010… the talk that I gave was “4 Impossible Queries”, things you just can’t even write down in an existing database, let alone, consider executed. So that’s the point.

So, as an example, here’s the query I can write down in a system that has employed OSLF. So I start with a framework for expressing geometric information: Clifford algebras. I run OSLF on Clifford algebras. And I get a query language that allows me to look at terms and expressions in a Clifford algebra. Right and expressions in a Clifford algebra represent geometric information. So they’re talking about where things are in space. And the kinds of transformations that they might undergo like twisting or other kinds of deformation. So using using that, that, that system where I’ve run OSLF on Clifford algebras, I can write down a query like: “Find me all the wires that run from the nose and the airplane to the midsection that are likely to undergo a twist.” Right? That means that, you know, I’m looking for wires that might be stressed. And if the fuselage flexes, they might be stressed to a point where they snap or, or become dysfunctional. Think about what that kind of query would do for airplane engineering, or submarine engineering, or bridge building, or house construction, or…. you see what I’m getting at?

Darryl Neudorf 49:35
Yeah, but but in order to get that kind of data back, wouldn’t it have to be kind of entered in the right way in the beginning?

Greg Meredith 49:44
That was the whole point of making it an algorithm. I don’t have to insist on a particular format. You tell me the format that you’re representing your information in, I generate a query language for that format.

Darryl Neudorf 49:57
So OSLF, is it done? Like, is it the algorythm complete? Or is it something that’s continually ongoing? I just I’ve never made an algorithm. So I don’t understand how it works.

Greg Meredith 50:14
So we, we believe that we have the algorithm as with with anything of this level of complexity and abstraction, it takes a long time. Right. But we, what we’ve been doing now is testing what we’ve got against very, very high standards of quality. So for example, we know that bisimulation which is the notion of equivalence that underlies all notions of equivalence put forward and concurrency theory and other notions of equivalence of programs. So it’s effectively the gold standard notions of equivalence, right?

So we are testing that the logical equivalence that we get from OSLF matches up with bisimulation. And there’s we have a very interesting theorem. We’re making sure that we’ve got the proof of that, but we have a very interesting theorem that shows how to do this extremely generically. Alright, so we’ve had to come up with a new notion of bisimulation we’ve had to come up with… reformulate or, yeah, I didn’t even have an expansion of the notion of Lebeer (SP?) theories.

So all of this is groundbreaking mathematics. And, you know, so it’s going to take the community, bashing on our results and saying, “Wait, what, what does this mean? What’s that mean? Oh, I’m not sure I believe this step” right. That process has to go on, but we believe that we have the construction and now what we’re going through is the process of quality assurance, we tell our resolve, first of all, as in the same way that you’ve had these kinds of questions. Everyone has these kinds of questions. Right? What the hell are you talking about? What level is this? You know, and then there’s all kinds of level slipping as you as you as you go through the conversation when people keep slipping back down to a more familiar level, and so on. And so down

Darryl Neudorf 52:23
Yah I am way down there, hehe.

Greg Meredith 52:25
Well, no, it’s very common, right? I mean, even Mike and I, we would constantly be engaged in level slipping mistakes. So it doesn’t say anything even about your experience. This is a new way of thinking. But the point is that the process requires a certain amount of engagement and investment and takes a certain amount of time. Just yesterday on Twitter, I had this long conversation long thread with Connor McBride is one of the most well known type theorists on the planet. Right? And just getting up to speed to talk about these things takes a long time, right? He doesn’t know me from Adam. Right? He’s, you know, he’s not going to trust that I know what I’m talking about. And so it takes this long sort of dance before we can get to substantive discussion. Right. So I’m just trying to be transparent. This is where we are. We believe we have the constructions. We know what the theorems are that we’re putting forward and now we have to get the community to make sure that we’ve we haven’t screwed up.

Darryl Neudorf 53:48
So how much of RChain’s short term success is dependent on OSLF.

Greg Meredith 53:57
None. I have carefully constructed the whole business model and architecture and everything. So RChain can just deliver. Yeah. Right. Like even if OSLF doesn’t work at all namespace logic does work. And so we still get the behavioral types just for Rholang. OSLF is like raising the game much, much higher.

Darryl Neudorf 54:22
What would be the ultimate fantasy goal of OSLF? Like, would it be as accepted as a, I still don’t know. It’s an algorithm, not a protocol. Right? It’s, it’s an algorithm that anyone can use. So, so yes.

Greg Meredith 54:40
So what we what we want is like many, many implementations of this. Many many people using it, right? But we want it protected in such a way that no one gets to claim ownership of the algorithm. The best they can do is claim an ownership of an implementation.

Darryl Neudorf 55:11
Thank you so much for that journey. I really appreciate it.

Greg Meredith 55:15
No, I appreciate it as well. And I appreciate Steve’s elucidations along the way. It’s gonna take a lot of people understanding what’s going on. And putting forward you know, it’s like with with all of these ideas, right. You know, even even now, there’s still a large community that doesn’t understand the value of concurrency. Even just in blockchain, there’s a large community that doesn’t understand the value of concurrency and how hard concurrency is. Right?

Darryl Neudorf 55:48
Yeah, yeah, like you were saying before, like, millions and millions of dollars being spent on something that just cannot

Greg Meredith 55:55
Can’t work. Can’t scale like, you can just look at it with five minutes and go That won’t work, right? And then and then you get more forward like, like Rick Dudley is a fairly forward thinking guy, right? He’s one of the brightest minds within the Ethereum community. Right. But his level of experience gets him exposure just to the actor model. Right. Like before Rick Dudley was born, I had already built one of the most high performance actor model systems on the planet. Right. And I spent 10 years while Rick Dudley was going to primary school. I spent 10 years using high performance actor based systems to build industry scale solutions. And that’s how I that’s how I discovered: You know what? I used to be an actor bigot, but I’m not anymore. There’s a lot of problems with the actor model. And I can list them I can tell you exactly what they are. Right. So so the dissemination of information is slow going, it’s very difficult. And likewise, after I sort of embraced the mobile process calculator and became a PI calculus bigot, you know, I built one of the most high performance pi calculus based systems on the planet. And then I used it in real business applications. And then I discovered “oh, there are a lot of problems with the PI calculus too, when it comes to real world applications.” And I had all of this because of my experience. And, you know, it’s like, so very few people have that experience. And that’s where the shape of Rholang comes.

Darryl Neudorf 57:38
Yeah, yeah. Oh, man. Okay, so sorry, go ahead.

Greg Meredith 57:42
No, we’re late for the staff meeting. But I’m just like, like getting across even that like, like, OSLF is like, you know, light years past all of that.

Darryl Neudorf 57:58
Wow, yeah, so maybe in another call. I want to ask more about your history. And where you could identify where the birth of Rholang happened in your mind. Like I just, I’d like to know how, if that can if that could possibly be maybe it was when you were three. I would just love to kind of hear more about the history of how you got here. I think it’d be a fascinating several stories.

Greg Meredith 58:28
Sure, we might do those as RCasts.

Darryl Neudorf 58:31
Yeah, that’d be great. Cool.

Greg Meredith 58:35
Well, thanks. Thanks to everyone. We’re late for the staff meeting officially so maybe we should close it out here. Darryl, you want to you want to give be the Nora proxy. It’s hard to compete with Nora No, I can’t

Darryl Neudorf 58:48
I’m not even gonna try. I’m just gonna say Nora, please come back next week. Be well

Greg Meredith 58:54
be well, we missed you. Well, yeah.

Darryl Neudorf 58:59
Take care. Thanks, everybody.

Greg Meredith 59:00
Thanks everyone. Thank you