NuCypher Community Update - September 2021

Once a month we'll be putting out community updates in the format of team member interviews. September's update is an interview NuCypher's CTO, David Nuñez.

Hola NuCypherino's,

Once a month we'll be putting out community updates in the format of team member interviews. September's update is an interview NuCypher's CTO, David Nuñez.

Typically in the past, our updates have been delivered in a blog post/newsletter format so we're trying something a bit different. If the feedback is positive and the community prefers this type of content, great! We'll keep doing it.

S/O to u/Bigb0y_max for posting the Reddit poll that asked, "What would be the most beneficial for getting the word out about Nucypher?" and the results were clear for more interviews style of content. Enjoy.

TL/DR

David Nuñez and NuCypher have been working together since 2017 when David was postdoc at the Univeristy of Malaga researching Cryptography and proxy re-encryption. David is now NuCypher's CTO. He is the the author of Umbral, the underlying crpytosystem in NuCypher. The NuCypher team is working on several efforts in parallel to the Keep merger. This will add further usability to the NuCypher network and their cryptography products.

The main topics covered in this interview are:

  • DKG Alice (abiotic Alice)
  • NuCypher in the browser
  • The Threshold Network
  • NuCypher on other Layer 1s and L2s.

DKG Alice (abiotic Alice)

  • An upgrade for Alice was designed with feedback from projects scoping to use NuCypher. This will add the ability for Alice to create conditional policies. Expected launch on Q1 next year.
  • An example would be a subscription platform that wants to share content with a user. The user must pay for the content to get access. DKG Alice (the platform in this case) doesn't need to know the user(s) in advance, all Alice needs to know is if the user has paid. Right now NuCypher v1 the platform needs to know the user in advance. NuCypher v2 with DKG Alice will solve this.

NuCypher in the Browser

  • Several different efforts are underway to make our current NuCypher version a fully 100% browser experience. This includes a Rust implementation of Umbral and the use of Porter.  These efforts create a more robust developer stack for developers using NuCypher.
  • What Infura is to Ethereum, Porter is to NuCypher. Everything related to networking and node discovery (which is required by the client), P2P, and high-level requests can be done through porter (an external provider).
  • 90-95% complete, this will go live before DKG Alice.

The Threshold Network

  • One of the major events in the decentralized world being the first merger.
  • A snapshot is currently live to form the DAO and governance
  • As with all smart contracts, there are risks. Third parties have been scheduled for audits. The safety of the smart contracts won't be traded off for speed to market.
  • Trying to hit the proposed timeline of Oct. however safely merging is the top priority.

NuCypher on other Layer 1s and Layer 2s

  • An exciting prospect for the future of NuCypher.
  • It's more clear now than a few years ago how the future seems multilayered. It will be important to be as interoperable as possible.
  • Already a project working on a Polkadot bridge with a grant from the Web3 foundation (Nulink)

Transcript

Ryan: Hey everyone, welcome to a new series of developer updates, a monthly recap broken down by myself, Ryan, and with a NuCypher core team member. Today we have David Nuñez. NuCypher’s CTO, Hola David. How are you today?

David: Fine, thank you.

Ryan: Excellent, So David is joining us for Malaga right now, we appreciate the time to break it down for the community. So tell some people first about your professional journey and what led you to this point with NuCypher for those who may have not had the pleasure of knowing who you are in the company.

David: Sure, I’ve been working with NuCypher for quite a long time. I was a business student first and then a postdoc student at the University of Malaga, in Spain, where I was doing research on Cryptography and proxy re-encryption. I’m talking about 2014, 15, 16, and around this time is when NuCypher was called Zero DB, they were developing an encrypted database. They were starting to look into cryptographic solutions and one of them was Proxy Re-Encryption. They ended up using a library I wrote and open-sourced. When I found out we started talking and started to develop a relationship based on building some projects, some ideas, and some consultancy work. Over time I ended up joining the company as a cryptographer. That was in 2018 I think, and for the last 3 years I’ve been doing cryptography and a lot of engineering work, and lately, I’ve also assumed the job of CTO. It’s been a very interesting experience for me and an extremely rewarding experience for me. As I said, I was doing research on Cryptography and PRE and this is the opportunity to bring this to fruition. It’s been a great few years.

Ryan: From paper to implementation

David: Right, from paper to implementation. To running this thing with 1000’s of nodes all over the world, it’s awesome.

Ryan: Excellent! So, there’s been a lot of community focus on T and Threshold network, and we’ll get to that. But there are several other interesting efforts happening in parallel to that with the launch this includes NuCypher in the browser which has several layers to it and what we're calling DKG or abiotic Alice and I think abiotic Alice you coined that one. Let’s start DKG or abiotic Alice and tell us a little more about that and how is that different from the way that NuCypher works today… and why do we need it.

David: We can call the current version of NuCypher version 1. It's the version that we started working on in 2017 and everything is built on the cryptosystem which is called Umbral. It works great - and to me - the power of Umbral in version 1 is that it gives the owner 100% control of their data. The owner has sole control of delegating access which is the goal of the NuCypher network. The thing is that with the new use cases we've seen in the decentralized space and the web 3 space there are many use cases where users (or Alice) are around the world, they still want to have control of their data and decisions of how they share it - but at the same time flexibility and automation about how to enforce decisions.  They don’t necessarily want to grant access directly themselves in some situations. This is clear in an example where it could be encrypted NFTs or platforms that have a subscription model and the data is encrypted where buyers or some service would get the encrypted content. From that perspective, the owner of the data, Alice, is not necessarily interested in granting access on a per case basis but she wants to grant access on a conditional basis based on, for example, has this Bob paid for the NFT or has this Bob paid for a subscription.

In the first version of NuCypher, Alice needs to know specifically who is Bob. I want to give access to my friend Bob whose public key is this one. But in this case, Alice would like to say something like, “I would like to give access to anyone that pays for the NFT”. From that perspective, proxy re-encryption involves some conditional re-encryption that needs more advanced cryptography because now (or the moment in time where delegation happens) maybe Alice or the owner is not online anymore.

So, we came up with a new cryptosystem called "Nube" which gives Alice’s the possibility to use the NuCypher network but using it in a different way. So apart from using it in the traditional way we’ve had in the past, there is an initial step where Alice can say I want some nodes in the Nu Network can act on my behalf. This is where the notion of DKG (which means Distributed Key Generation), so these nodes will engage in a ritual and protocol, where together, they create a version of Alice that can grant access to Bob based on some conditions that the original Alice stated such as, “grant access to anyone who pays”.

Ryan: Excellent! And in terms of projects that have requested this or potential projects that say, “Hey can you do this??”. Would you say that we've seen an increase in the amount of projects that are asking for this type of service?

David: Yeah! We've been engaged with projects since the beginning of NuCypher going back to 2017.  But, we've seen last year (and particularly the last six months) where it's been where most people have been asking about this feature. For example, with NFTS there's a lot of ideas around how to use them to be a medium of content or using the NFT as a subscription for some service. Both approaches are recurring ideas and from the NuCypher side they're both very similar and we can service both using the same technology which is what we plan to do with DKG.

Ryan: When do you think this would be ready??

David: It's hard to tell but we're working on that as we speak. I think that's something that we will start to have a much more clear idea next quarter and the start of next year. There's a lot of things that are already done and we have a lot on the network side. The communication of the network we already have done. Same with Our CLI client and or web application for interaction with NuCypher.  We have many of the pieces. We already have the first version of the cryptographic scheme so now it's more about designing a more efficient way of storing policies on the network and making them economically viable for users and operators. But a lot of pieces are ready so I think we will definitely see a lot of developments in the next quarter.

Ryan: Awesome that's so exciting, and assuming the Threshold merger goes (mostly) according to plan is this something that people could expect their node to handle if they are running one on the Threshold Network?

David: I think because we want to deliver as soon as possible on the merger the focus on that side is to be ready as soon as possible. We most likely will go with version one because it's already there and working.  From the perspective of setting up version 2 for the Threshold network it's simple. In parallel we’ll keep working on DKG Alice and once it's ready we’ll integrate directly with Threshold Network.

Ryan: Great that's exciting for all the potential Threshold node operators. Let's switch gears and talk a little bit about NuCypher in the browser. How did this come about? Why NuCypher in the browser? and where do you see it going?

David: Right, so "NuCypher in the browser" is something that fixes holes in the NuCypher stack. The Nucypher stack was thought from the perspective that users would be running a NuCypher client directly. That works great in many types of applications but we've seen in the last years explosive growth of DeFi and NFT how users most likely only use the browser. For example, people who run an Infura Node. People would prefer to not run an Ethereum node and just use an external provider so knowing that and seeing that there are some difficulties to integrate with the current stack we have done several different efforts to accommodate our current NuCypher version to a fully 100% browser experience.

There are several parts here. From the start, there is something we knew we would not compromise in any case, the cryptography part. It needs to run in the most secure way and always abiding by the end-to-end principle. This is why we’re working on the Rust implementation on the Umbral cryptosystem using web assembly you can get it on the browser. This solves the question of how to encrypt and decrypt data directly in the browser but there are still two other questions about how to use NuCypher solely from the browser. One of them was, in order to interact with NuCypher the client needs to know about the network and needs to discover what are the nodes on the network, who is online, who is not, etc. So that’s why we had a NuCypher client for users to run. But since we can't assume that's the case anymore or all the time we have started with something called Porter.

Porter is like the infura but for NuCypher. Everything related to networking and discovery and P2P, and high-level requestions can be instead of routed through your local node (which was the previous approach) you can now do it through an external provider. The external provider can be some third party or can be you or it can be some NuCypher client running externally. Maybe you don't have it running in your computer, you can run it externally, and then you can do the same request you did from your local node but now you do it through this outsourced service provider. In combination with rust, in combination with some intermediary JavaScript layer, you have all pieces to replicate the whole NuCypher experience but in the browser.

Ryan: How how did this come about? Why put development effort into this? Was it potential customer requests? Potential projects? The feedback we've been getting?

David: We try to talk regularly with adopters of NuCypher, and always been a main area of feedback. It would be great to only use the browser. A lot of requests for this.

Ryan: I gotta go back to the question on timing, when do we expect this to go live and people can start using it?

David: This is going to be way soon, many of the pieces are done to a 90- 95%. The cryptographic scheme is done except for some very minor details that need to be decided and the same with Porter. They're done and merged to the main developer branch. I think this can be ready soon than DGK service.

Ryan: I’m sure all the hackathons we attended with all the builders in hackers would appreciate this improvement.

David: It’s mostly about what stack will developers who want to use NuCupher will need. Before it was a Python-based stack so they had to run our client that uses Python or they use the Python API but now they just need to use JavaScript so we'll have a library for doing that and will be easier to integrate with browser-based D apps.

Ryan: The last thing and sort of the biggest focus the community has been on is T or Threshold. Do you want to give us a quick rundown on what to expect and what excites you most about Threshold merger with Keep?

David: I think the merger with Keep is going to be one of the major events in the decentralized world. This is the first time something like this happens with two major projects with very established communities. It's very interesting to see and participate. It's also quite challenging, we’ve been working on trying to do this right. We don't want this it feels rushed or something that could be a risk to the community or project so we're taking this very seriously and thinking very deeply on the design of how to do this merger. We’ve had a lot of great brainstorm discussions and joint sessions with both communities. Not only directly with the team but also with the communities and that's something that's very rewarding about both projects is that we have good communities behind it from people that are not necessarily developers, but they have important opinions, they voiced concerns and things that matter for them. That can be challenging because you need to take everything into consideration but at the same time it's very rewarding and once that is done, I think the joint network is going to be great in the sense that both communities will have the benefits of two big projects.  For the last year, we were thinking about how to leverage our position to run a platform for wrapped assets and similar things, the merger presented us with a great opportunity to do this without the need to develop it ourselves. There is tBTC which is a great approach to do this in a real decentralized way why compete when we can join forces. In my opinion, this is a very clever solution to this. I’m also very happy that Keep community will get to use PRE and any new developments. Hopefully, this also ignites some new ideas and services that can leverage the new network.

Ryan: What stage are we currently at? We have a snapshot coming out and there are some audit schedules, so again, we don't want this to be rushed but why don’t you give us a quick two seconds on the proposed timeline and where we’re at now, subject to change

David: The core part that needs to be done right now is everything that has to do with the smart contracts. Development of the smart contracts is a very challenging area. A single error can cost you millions and we are very aware of that. Thankfully both Keep and NuCypher have very good experience with smart contract development and we are very aware of this. As usual, it's important to have third parties looking at them as well. We have started with things that are the core of the merger which would be contracts for the new token, contracts for the migration of tokens, and now we're working on the contracts from staking on the new system. It may seem simple from the outside but there are many technical challenges here. We have stakers that are lock in the NuCypher contract and stakers locked in the Keep contract and we want them to be part of the Threshold network from day 1.  There are some challenges there, nothing that can’t be solved and we’re working on that, but we want to do it right from the start. So we're iterating right now about how to do this staking part in is taking a little more time but once that's done, (and this part includes how to embed governance in the system) Once that's done that means the on-chain rules for the network will be ready. I think we will definitely see a lot of developments and tasks finished between September and October and hopefully, we can more or less comply with the early timelines set for October.

Ryan: And just to reiterate, I think doing this safely is the most important thing. As we’ve seen other projects get attacked and funds drained and people get rugged pulled that always leaves a nasty stain on the project. It’s best to avoid that and do things right the first time. We’ve seen some questions pop up in discord and telegram people asking would NuCypher ever go on to another L1 or type of chain. I'd be interested to hear your thoughts on that and is this something that is currently being worked on or thought about. What are your thoughts on NuCypher going on say, a Solona, or a Polkadot, or a Matic/Polygon, or Arbitrum.

David: That's another area that's really exciting for me particularly. We are currently an ethereum based project and I love ethereum but I know it can be very expensive to use. So for a service like NuCypher Ethereum is not the best especially from an adoption point of view, if the service is expensive it's difficult to gain traction.  From that perspective, yes, I'm sure it would work and it would be possible to create a data-sharing policy from other networks. That’s something we've been working terms on high-level terms but the current priority has been the merger and browser experience and DKG but this is definitely on our radar. I think it's more clear now than a few years ago how the future seems definitely multilayered. There will be things living on different chains on layer 1s and layer 2 and it will be important to be as interoperable as possible. I was talking before about DKG Alice how to incorporate a lot of new things that would change in version two of NuCypher and interoperability with other chains would one of the major requirements for the design.

Ryan: So excited I’m sure a lot of people would be happy to hear that. If I’m not mistaken someone is already working on a Polkadot bridge.

David: They are trying to use an existing bridge from ethereum to Polkadot building a policy model for the user side in Polkadot. This project is called NuLink. And they are working on this and I think they have a grant from the Web3 foundation and it seems like they're doing good things, it’s exciting!

Ryan: Thank you…. now I’m going to babbling on for a bit about why we did this as an interview style. We’ll be doing this once a month

Links from Conversation:

3:25 https://github.com/nucypher/nucypher/...

3:40 https://github.com/nucypher/nucypher/...

5:55 https://www.masterfile.co/

15:21 https://github.com/nucypher/rust-umbral/

16:15 https://github.com/nucypher/nucypher/...

23:54 https://snapshot.org/#/nudao.eth/prop...

24:19 https://github.com/threshold-network/

25:40 https://snapshot.org/#/nudao.eth/prop...

30:00 https://www.nulink.org/