Oasis Network’s Architecture — Oasis Network week #1 AMA Session with Vishwanath Raman

Ima-Abasi Pius Joseph
Oasis Foundation
Published in
13 min readAug 24, 2020

The Oasis Network “AMA Session” is a Q&A session, which happens virtually on the Oasis Network Community telegram group. This session has been designed to occasionally bring every community member up to speed on recent developments relating to the Oasis project, and also create an avenue where every member’s questions and doubts, can be addressed.

On August 12th 2020, the Oasis Protocol, conducted their first ever AMA session on the community telegram group. Vishwanath Raman, the privacy architect at Oasis, was live on this online AMA Session, to provide community members with insights on the Oasis Network’s architectural design, active projects on the network, and Oasis’ vision to build a responsible data economy.

In order to ensure clarity to my readers, this article has been divided into three segments; the first segment, provides full account of questions submitted by community members prior to the session which were compiled and asked by the moderator of this AMA session (Coincidence Jon), the second segment, provides account of the questions asked by the community members during the session, while the third segment, gives account of the questions asked by community members which were answered by other members of the Oasis Protocol Team.

SEGMENT 1

Jon’s Question — How is the Oasis Network architecture different from other blockchains?

Vishwanath — In many ways! The Oasis Network is a privacy-first and scalable blockchain network built to enable a new responsible data economy by enabling not only open finance but open data itself on a decentralized network.

We saw that blockchains today lack the ability to handle sensitive or private information, so adding cutting-edge privacy technology that allows the network to maintain end-to-end confidentiality, unlocks a broad set of new use cases and applications for blockchain in DeFi, Healthcare and more. We really see the Oasis Network as not only better enabling Open Finance, but also unlocking the ability for individuals to own and exchange their data as an asset on the blockchain. We’re calling this concept Open Data.

To achieve this, we designed the Network to support rapid growth and real-world workloads. It separates execution from consensus to give us: The Consensus Layer and the parallel runtime or ParaTime Layer. This allows it to be very fast since many parallel execution environments (we call these ParaTimes) can submit transactions to the Consensus Layer simultaneously. Having two distinct layers also allows ParaTimes to be easily customized depending on the computation needs of particular use cases for the network. This means larger more complex workloads can be processed in parallel to smaller, faster transactions without slowing down the entire network.

The Consensus Layer was similarly designed to be stable and adaptable. It has a streamlined, modular design that allows it to maintain stability and support a broad range of different ParaTimes as the network grows and evolves.

Here is a diagram that will help further –

Jon’s Question —I read in your whitepaper that you have two layers, one for execution and another for consensus. Why did you decide to use this design?

Vishwanath — Separating consensus and execution allows the network to do two things very well:

  1. Support parallel execution by having multiple runtimes processing smart contracts and submitting results to the consensus layer at the same time
  2. Allows runtimes to be configured for specific use cases in isolation of the consensus layer. For example you could have confidential runtimes, non-confidential runtimes, runtimes with more strict security models that require larger committees or more open/closed deployments pools, etc. etc.

Basically it makes the network much faster and more adaptable for a broad range of use cases (e.g. DeFi, Healthcare, Genomics).

Jon’s Question — What’s a paratime, how is it different from a parachain?

Vishwanath — ParaTimes (aka Parallel Runtimes) are replicated execution environments that process transactions on the network and execute smart contracts. In short, they do all the “computation” on the network. The Oasis Network can have many different ParaTimes all running simultaneously, each with its own unique properties and configurations.

ParaTimes and Parachains address the same problem and that is scalability. In the ParaTime model anyone can run a ParaTime on the Oasis network which then proposes blocks for inclusion in the ledger together with proofs of correctness of execution. In the Parachain model there are parallel evolving chains that eventually commit to a global ledger also known as the Relay chain. The difference is in where the state lives before an eventual commit. In our case it is in the ParaTimes that are verified before being accepted by the consensus layer. In the case of Parachains it is in the collator nodes that eventually commit after consensus with a similar Proof of Verification step.

Jon’s Question — I’ve heard Oasis talk a lot about privacy. How does the network achieve this? Is it using a particular kind of technology like Homomorphic Encryption?

Vishwanath — There are many ways to achieve confidentiality. Using Trusted Execution Environments (TEEs) is one way. This is what we do. In effect, we provide end to end confidentiality for transactions where state and payload is encrypted at rest, in motion, and more important in compute. Homomorphic Encryption (HE) is another technique for confidentiality. At this time anyone can build a runtime that uses Homomorphic Encryption (HE) to provide confidentiality. We are not prescriptive.

One more thing is privacy and confidentiality are not equivalent. Privacy implies confidentiality and not the other way around. We can get into more details here later. For privacy there are techniques such as differential privacy.

Jon’s Question — Could you run Ethereum Smart Contracts powering some of the DeFi protocols on Oasis to add privacy to them (such as exchanges utilizing Oasis). Or if not directly run Smart Contracts, could you bridge between Ethereum ERC-20 assets and Oasis?

Vishwanath — A lot of good questions in there! In short, yes! The Oasis network supports EVM compatible ParaTimes which will support DeFi applications. For bridging, we are eager to implement an IBC after mainnet. Also, we are having an AMA on DeFi next week. So, this will be handled more thoroughly in that AMA. Please stay tuned!

Jon’s Question — How will Oasis Network choose companies for cooperation in the future? And what are the benefits many good projects from cooperated with Oasis?

Vishwanath — Anyone can engage in the network. If you have a privacy-focused project, or a project that benefits the network, you can apply for a token grant on the Oasis Foundation website, and folks will get in touch with you. We’ve already got a bunch of exciting projects in that program, and we hope to see more.

Jon’s Question — In Cosmos eco, what is the role of Oasis protocol ? From my understanding in Cosmos, Terra is stable coin, Kava for lending, Band for Oracle Service. How about Oasis Protocol?

Vishwanath — Great Question! We are very close to the Cosmos team. In fact many of the validators on their network are also running on ours. Beyond that, we use the open-source Tendermint code as the consensus backend for the consensus layer. Our consensus layer has its own API, and a unique set of services with support for confidential ParaTimes.

You can learn more in the oasis-core docs on our website.

Jon’s Question — Any chance Oasis help DeFi?

Vishwanath — Please stay tuned for our next AMA, which is specifically on DeFi!

SEGMENT 2

Question — I‘m curious about storage. I read it storage agnostic. But I’m not sure how it connects to regular storage like EC2 or IPFS.

Vishwanath — This is something that is left up to the runtimes really. There is a clear separation of concerns between consensus and ParaTimes. The paratimes have a lot of leeway in managing storage. For instance, the ParaTime that Oasis runs can suppor

Question — Why does Oasis think privacy is so important for blockchain?

Vishwanath — This is a great Question. Privacy is critical to unlocking the full potential of blockchains for many different use-cases. For instance one wouldn’t want to put personal information such as a social security number on a blockchain that is entirely public. But this is invaluable for select applications.

Beyond just simple use cases like in the DeFi one above, we believe that combining privacy technology with the immutability and auditability of the blockchain tech can allow users to truly own their data on the web, tokenize it even, and monetize it.

Question — Since there will be infinite amount of data being stored/used/altered, will there be any external blockchain/protocols being used to facilitate easier/faster/secured access to the said data or can Oasis handle all this on its own? Or is Oasis only facilitating the key/lock on the stored data and if so, could Oasis interact with any and every source of data?

Vishwanath — Great Question! The way this is designed, we have a lot of flexibility in the runtime layer (ParaTimes). The runtimes can choose to implement bridges to existing data sources. In effect nothing precludes which data sources a given runtime may choose to bridge to and operate with.

Question — There don’t seem to be any public SGX nodes yet at all.

Vishwanath — Not yet. We have consensus nodes alone at this time. It is up to a ParaTime to use SGX if that is the way they want to provide confidentiality.

Question — But there are no publicly run SGX nodes currently on this network. Right? The computations seem to still be done by Oasis centrally

Vishwanath — Anyone can run a ParaTime. For instance, SecondState is launching a Ethereum compatible ParaTime. They plan to add confidentiality support soon. This would be using SGX for TEEs.

At this time SGX is used by the Oasis runtime to provide confidentiality. Further, our Eth/Wasi runtime (which is open-sourced) is a reference implementation of a confidential runtime. While we do not want to be prescriptive in the way ParaTimes are built, our reference implementation can be used as the basis to launch ParaTimes. Anyone can run ParaTimes.. and we are not prescriptive.

Question — Would you consider the network faster than other networks like Ethereum?

Vishwanath — Yes. While speed can be measured in many different ways, the amount of transactions that the network can process per second is much higher than Ethereum, and many other Networks for that matter. This largely due to its ability to process transactions in parallel, and it’s light-weight consensus layer.

To continue to improve performance, and to really start to expand the scope of the Oasis Network we’ll need more folks like you running ParaTimes and getting involved in the network. You can visit our website oasisprotocol.org to learn more about how to get involved.

Question — I think it’s going to make for a very complex and fragmented node running community. But it will still get the job done.

Vishwanath — It drives quality for decentralized networks. In that we are all working towards a common decentralization goal. So, it is almost like nature and nurture. We enable developers to choose between networks and see which ones satisfy their needs best.

Question — Can Oasis interact with decentralized storages?

Vishwanath — It would be up to the runtimes. The Oasis runtime is capable of interacting with decentralized storage (IPFS)

Question — What does this (Interchain Adapter) look like from application developer perspective? For example if someone build an app and wants to use IPFS. (e.g. do they have specify this in their smart contract?)

Vishwanath — This would be up to the runtime; this would be on how SecondState may address this. We mentioned this earlier, but Second State is building an EVM compatible ParaTime. We’re actually just announcing this today, and wanted to share it exclusively with our community here on telegram. Second State has been a fantastic partner for the Foundation. They’ll be building an EVM compatible ParaTime that will launch in Q3. Their goal is to enable all existing Ethereum smart contracts and DApps, including DeFi and DEX apps, to run on the Oasis Network.

You can see it in a blog that we’ll be publishing later today.

We plan to keep announcing big news and updates in our AMAs so stay tuned over the next few weeks as we continue to do this.

Question — Can a particular runtime be reinforced in any given time if the workload on this particular one gets overloaded? If, say, a certain runtime gets momentarily overloaded or gets an exponential increase of usage because of certain interests in the network?

Vishwanath — If there is increasing demand then we could do either multiple instances of the ParaTime or this would be an incentive for more compute capacity to be added to that ParaTime.

Question — Are there any plans for a Machine Learning runtime? Presently, I believe the flow is to deploy prebuilt ML models and call these from a smart contract (please correct me if I’m wrong). I’m particularly interested in a Federated Learning use case.

Vishwanath — This is very interesting. We have always had demanding use-cases such as ML training in our minds when we designed our network. There are two use-cases around ML as you cite. One is using prebuilt models and the other is training. We expect training specific ParaTimes as a possibility. Given the flexibility of our architecture this is something that can be easily supported. The Oasis runtime at this time enables these use-cases.

We strongly encourage folks to build their own runtimes. If use-cases such as ML or any others for that matter require a purpose-built runtime please get in touch with us and we can support you.

Question — So then the ParaTimes would have to implement the environment where these model would be trained, correct?

Vishwanath — Correct!

Question — Are Oasis Cleanrooms essentially akin to Enigma secret contracts?

Vishwanath — A cleanroom can mean different things. We have an interpretation that we would like to enable in our runtime. In effect, this is to support data providers and data consumers to participate in specific forms of sharing.

Question — How did you find the process of implementing the Rosetta gateway into the oasis code? I saw coinbase gave you great reviews!

Vishwanath — It was great! It is a very good tool. You should check it out. We are excited we were able to do it.

Question — What is the most exciting application you see your work at Oasis resulting in?

Vishwanath — There are very many fascinating use-cases that we are enabling at this time. Here are just a couple -

  1. A direct-to-consumer genomics company is leveraging our network to provide their customers complete control over their fully sequenced genomes. They provide interpretations on that data without ever getting direct access to it in its raw form. They plan to launch later this year.
  2. We are working with a large Healthcare company to enable them to store and share sensitive PII and healthcare data with select partners. They are using Oasis to provide transparency to end users on their individual data journeys

There are a number of other projects that you can read about in our blogs from the foundation web page.

SEGMENT 3

Question — There don’t seem to be any public SGX nodes yet at all.

Peter Gilbert (Oasis Director of Engineering) — ParaTimes can choose to use SGX for confidential execution. All related code and instructions for running a node with SGX enabled are publicly available at Oasis Protocol Github

Question — Can Oasis Interract with decentralized storages?

Nick Hynes (Top Developer at Oasis) — You’d need an interchain adapter. Filecoin, for instance.

Question — What does this (Interchain Adapter) look like from application developer perspective? For example if someone build an app and wants to use IPFS. (e.g. do they have specify this in their smart contract?)

Nick Hynes (Top Developer at Oasis) — Ideally, the language binding would have something that looks like an async/await. On the backend (the paratime), that’d end up suspending the “smart contract,” making a cross-chain call to, say, Filecoin, awaiting consensus, and then resuming the contract, that is. kind of like Scilla

Question — I love the Oasis Gateway from UX perspective. But, but can you elaborate on the security tradeoffs between the gateway and a Web3 gateway?

Nick Hynes (Top Developer at Oasis) — Great question! So the “Developer Gateway” is essentially a proxy for the web3 gateway that signs sealed (signed + encrypted) transactions from the client. The trust model from the perspective of the client is thus similar, but the app needs to attach some out-of-band identity information (e.g., OAuth token) so that the runtime can trust the callee. The runtime can verify the token itself, or have an oracle do so.

Question — Can a particular runtime be reinforced in any given time if the workload on this particular one gets overloaded? If, say, a certain runtime gets momentarily overloaded or gets an exponential increase of usage because of certain interests in the network?

Michael Yuan (Open source dev & entrepreneur at Second State) — Yes. ParaTime nodes enforce their own access policies and choose who / how they want to provide services to. That is also why they can be “confidential”.

Question — What does this (Interchain Adapter) look like from application developer perspective? For example if someone build an app and wants to use IPFS. (e.g. do they have specify this in their smart contract?)

Michael Yuan (Open source dev & entrepreneur at Second State) — Oasis gives a ton of flexibly for people to develop their own runtimes. So, you can build a runtime just for a particular task — you can use any software as long as nodes running the same software will produce the same result as your node.

In our work, we aim to bring generic Ethereum runtimes in both EVM and Ewasm to Oasis. This way, developers can run Ethereum smart contracts without change on our ParaTime.

So in short, if you are an ETH smart contract / dapp developer, you will have the exact same tools you use today. But if you want to do your own custom app in a different language, you can write your own ParaTime

Question — Are there any partnerships you guys can announce that are current/future/possible prospects? In ANY way that could make Oasis function better or facilitate a better and more efficient endgoal: Monetization and privacy on data. A list of those would be nice to have.

Anne Fauvre Willis (Community Moderator/ Contributor)— Yes many partnerships already announced and many more to come! including an entirely new program TOMORROW and more being added weekly!

For more information and resources, visit:

Second State Paratime by Michael Yuan

Rosetta Gateway

Oasis implementation

Oasis Official website

Oasis Blog

Oasis Telegram Community

Oasis Twitter

--

--

Ima-Abasi Pius Joseph
Oasis Foundation

Research Writer ǀ Web3 Marketer ǀ Petroleum Engineering Graduate ǀ Part-time Journalist