Leonard Tan & Yong Zhen Yu: The Decentralized Key Management and Login System for Web3 #B003
18 Dec 2020 · 1:15:08
Epicenter host Sebastien Couture talks with Torus founders Yong Zhen Yu and Leonard Tan about their decentralized key management and login system for Web3. They explain how Torus uses distributed key generation built on Shamir's Secret Sharing to power social logins through providers like Google and Facebook, how the Torus Wallet lets users send crypto to social media handles before a wallet exists, and how the tKey two factor system adds a second layer of account recovery.
Speakers
Topics
Transcript
hi and welcome to epicenter after shock these aftershock podcasts are wholly sponsored which means that everyone you hear on this edition of the show paid to be here but that's okay because we have some amazing sponsors if you're looking for the regular edition of epicenter just look for the numbered episodes in your podcast player today my guests are zen huang and leonard tan of taurus taurus is a flexible decentralized key management system designed to be accessible to everyone at the core of the torah stack is the taurus network and its function is to generate cryptographic key shares using shamir secret sharing people can use the web to services they know like email and social media accounts to log into web3 services and defy apps
this promotes a user-centric key management environment without sacrificing usability taurus provides web and mobile native support and unlike other solutions which try to solve the ux complexities of key management well it's blockchain agnostic in fact it's compatible with non-blockchain applications as well what's great about taurus is that it's easily accessible for developers and integrating tourists into your web3 app takes just a few minutes from the applications perspective taurus is just another web3 provider and adding it to your app means that you simply have to import the library and pass it as a parameter to the web3 object have a look at docs.tor.us for the
quickstart guide once it's integrated your users will be able to create a crypto wallet by logging into google facebook twitter or about a dozen other services they support there are a few things i really appreciated about this company and what they built first well they built a company that combines a sas business model and blockchain infrastructure which i think is really cool they're focused on providing a core key management infrastructure layer which combined with other solutions can create a highly secure yet easily usable system for key recovery and finally this infrastructure is useful not only for web 3 apps but any use case which might leverage public private key infrastructure this extends to things like encrypted data storage encrypted email
and so on and any progress in terms of facilitating access to these types of applications i think is positive we're seeing more and more applications which leverage cryptography as a means to protect people's data and privacy and i can see a future where these apps could simply allow users to bring their own keys much like we've seen in the crypto space and having access to a public good like the tourist network makes it a lot easier for folks to have a higher level of sovereignty over their keys so with that here's my conversation with zen huang and leonard 10. i'm here with zen wong and leonard 10 of the tourist team and today we're going to be talking about taurus and the products that they've built to
help people manage their keys so taurus is a universal decentralized key management system it's designed to be accessible to everyone it uses like really advanced threshold cryptography and it's being used by hundreds of applications and you know hundreds of thousands of users per month and they're helping make it easier for people to manage their keys in crypto and we know that this is um well a big problem uh it's always been sort of the crux of the crypto problem it's like how do you manage your keys and we've come a long way from having air gap laptops uh you know seven or eight years ago to now having really user-friendly and mature solutions uh
for people to manage your corporate so zen and leonard thanks for joining me today no thanks so much for the introduction um thanks for having us uh it's actually a pleasure to be on this show we've been big fans of it for a while exactly that's good yeah yeah so it's great to finally um like kind of talk um yeah and uh it's it's uh it we we we're just excited for this to happen yeah cool so tell me a little bit about your background and how you guys uh became involved in crypto so that was for me actually uh the first my first involvement of crypto was uh with dogecoin i'm not sure if you remember um the reddit community they had amazed
an amazing trailer um i think it was like dogecoin to the moon where dog would be fly i mean if you guys haven't watched it uh you guys should definitely watch it it's it's a piece of art it's a classic it was it was my first foray into uh cryptocurrencies back then bitcoin was interesting to me and i mined a little bit but um it wasn't until a theorem came about when i really really got hooked i actually managed to chance upon um vitalik whilst i was working at a vc uh back way back then and um and he just gave a talk and he did it and you know everybody else was in a fintech convention and um they were in like suits and all but he was in a unicorn shirt
and but he was so eloquent and he has his own charisma all around him and um from then on it was just kind of like a rabbit hole and downhill from there just full cripped all the way so yeah uh so i used to work on uh previous uh plasma research and all right um and uh leonard used that's kind of why i met zen also like we were school mates but we only really got to meet each other like when i was working at um on this plaster or a piece bridge right there yes so for me um i started a lot later actually like 20 early 2017 um and then i was working on a psych project my friends and we only just found out ethereum back in the day there was no infuria
so in order to do any querying at all you had to run your own ethereum node and um which cost you 500 a month so i i got we got this spun up we wrote this quick project to like prevent ticket re-scalping and all that ran in a bunch of problems and at that point i was pretty much hooked i mean it's like once you get into the ecosystem there's a lot to explore and there's a lot of like like things that i want to learn um and also um i i majored in finance and economics and i'm a i was just it was just like a good crossroads right because finance economics and software engineering that's pretty much what crypto is all about so i did that and then um i went on to do a corporate
job at visa and then meanwhile um i was still exploring this thing and when the opportunity came i decided to go for it and start doing um more blockchain work and this was also part of consensus and then after that i did taurus together with zen while we were doing something so taurus really started off as a side project yeah exactly yeah um we were trying to explore um it was actually ring signatures yes so the name comes you know it's actually a chip yeah it comes from a ring so we were trying to explain uh so we're trying to do um a private information marketplace so back in the day when we were exploring this this technology we realized the potential
for it to be able to um for for information reselling and one of the problems with information is that it suffers from the problems of a public good in the sense that once you sell it once you can't resell it and that can be solved with things like designated verifier signatures five ring signatures signature uh but we quickly really realized that uh you know ring signatures basically require for everybody to have public keys and nobody had pgp keys nobody had any keys at all there was no way to identify users at all even if you wanted to so we just went back and back and tried to solve each problem and we uh we kind of chanced upon like the tourist infrastructure and architecture at that point in time and we really felt that it would be a great way to kind of
uh make public key infrastructure accessible to everybody and usable by everybody and that just became our mission and vision and what we tried to solve in the ecosystem as well as time moved on um so the rest is yeah the rest we got funding for finance and then uh we just kind of just pretty much just came up for us trying to solve the like the developer tooling problem that didn't exist back then time really flies it's been two years yeah it certainly does in fact i was just uh we were talking earlier that zen we met at ecc last year tell us what uh what have you been able to accomplish in the last year since uh well i guess almost a year like nine months or so uh what what uh
what has come about in in the taurus uh product line since then at the start of the year we launched a new product called our way of integrating taurus called direct auth so for those viewers who don't know us out there um go check out app.tor.us it's really a lot easier for you guys to check it out and feel the experience for yourselves and what you get from a application that integrates either the taurus wallet or taurus key management in general any one of the sdks is you get a web to experience via google facebook reddit or even passwordless logins uh on a webtree application and uh this is and we we launched earlier in
the year a different way to integrate um the taurus key management we basically uh we made it directly embedded into applications we also uh launched in this year a a key match from architecture called tiki which um is another abstraction over the taurus network and i'll go a little bit more into uh though further down the line but uh it's uh we've just basically been busy listening to developers they ask us oh would this be possible and then we go oh yeah yeah yeah yeah we put it for them and let's see how much yeah so uh it's been it's been so direct off has been great
uh we've really managed to come a long way with both the director of and taurus wall integrations as well as tiki um to date we are directly integrated into over 250 applications we are seeing over 100k monthly active users with hundreds of thousands of authentications uh we're really happy with where we've come today we're really excited to uh to for what's coming in the future as well so taurus is is a a bunch of different things right so like there's the tourist network which we'll talk about uh there's the taurus wallet um there is this direct auth product and there's there's t key so let's let's talk about the taurus network there what is the taurus network and what or that maybe it makes sense
right so the base is exactly as you said the base layer is the taurus network everything else are like wrappers around it like the toro's wallet is a wrapper around the taurus network so that you have a user user interface to actually use the ethereum blockchain and that comes with a bunch of things like showing what tokens you have what cryptokitties or what your c721s you have so that's that's one of the products direct auth is an sdk that allows you to integrate it and then t key is yet another abstraction layer on top of taurus network which we'll cover later so starting with the base layer um it is basically this thing called dkg so it's distributed key generation and for those that are unfamiliar um the idea is
basically a group of servers and or nodes come together they all generate a key jointly they participate in this dkg process and they generate a key at no point is the key ever reconstructed and at the end of this process you get shares of these keys on each one of these nodes and you need a threshold number of them so majority of these servers to be able to reconstruct the key and we run this process this dkg on the torus network in parallel to a separate uh layer which is which does the mapping so this dkg layer does um this key generation and then this mapping layer allows users to tie their social
accounts or any type of login really that has a unique id to one of these keys and and so it's generic yeah we support basically any jwt login or um we also support in specific the oauth2 standard and um this is a standard that if people aren't familiar with it's what like google or facebook wechat all of your different uh login solutions that allow other people to log in it's a specification by web uh yeah it's a specification that uh is widely used in the web 2 space yeah so this is uh you know the log in with your google account or log in with your facebook account that
every website uses these days yeah exactly so the combination of this allows basically for a network to store assign generate and allow people to retrieve these public private key pairs via these modes of authentication so this is the base layer during its day-to-day operation but there are other things that that you need to solve before this is actually usable and secure so you need to solve issues around replay attacks how do you prevent a somebody from taking your google token and replaying it to get your key you need to solve things like migration so let's say one of the servers decides to call it quits i don't want to run a node anymore so you want to migrate to a different set
of servers how do that do that without losing people's keys how do you do that so you don't even reuse the same shares so there's a protocol for that called share refresh and we've also implemented that um you also have to think about issues like asynchronicity like how do you make sure that a single server isn't able to delay a login for very long so these are all problems that the taurus network solves and interested readers can just go find out more it's based off cashion's paper from 2002 so the taurus network is really the the base layer that powers all of these user applications on top and the way i like to think of the taurus network is it's a distributed system that does key share generation like that that's kind
of its only function it's just generate keys and store those keys for later retrieval and if you think of that level if you kind of abstract away the applications it's kind of a nice public utility to have because you can use this for all kinds of applications beyond crypto i mean like if we think about um wanting people to or encouraging people or to to encrypt like their data on cloud storage or to encrypt their email like this is a really good public utility to have at the disposal all kinds of applications that could potentially benefit from from having this kind of like key generation system is this something that
you think about when exploring what perhaps like taurus network could become in terms of like a utility do you do you think about other types of applications we actually just like that yeah um and basically direct authentic taurus wall and all are just different ways of integrating with the taurus network and direct off is allows any application to directly um assign store and retrieve keys and we really see the taurus network as kind of like a decentralized amazon cognito for example or a decentralized google firebase if you are off xero it's like it's like that back end which uh which you can interact with to store and do your user authentication and all
that but um but it's instead of it being one centralized entity aws or something like that it's distributed and decentralized um out uh into a node set um so the tourist network generates shares uh of keys that are uh generating using schumer's secret sharing um i'm not an expert on cryptography but i i've got the basics about how how this stuff works and i know that there are different ways in which you can generate key shares so shimmer secret sharing is one there's also the ecdsa threshold signature algorithm that other systems use i think like zengo uses this for their facial recognition key generation system and then of course
there's other methods like the you know if you look at um argent or gnosis safe you know they uh they do key generation uh using a smart contract talk about the process which led you to use shamir secret sharing and you know did you explore some of these other methods uh why why choose this particular technology so one of the main benefits of using a crypto primitive social media secret sharing is a crypto primitive in that it sits on the same level the end result of shimmer's secret sharing is always a primitive private key and um the the main one of the big reasons we evaluated
the going like the smart contract wallet style we also evaluated our different forms of secret sharing so other forms of secret sharing of shimmy's secret sharing um and um ultimately our main goal at that point in time was to bridge web 2 to web 3 and it continues to be uh that moving forward we we want to make uh public key infrastructure universal to everybody um and one and when specifically comparing the like uh public private key pairs and um something like to smart contract wallets public private key pairs have the power of uh like for example some of the things you take for granted
for example like signatures like representation um like composability across different systems it can be used to encrypt decrypt these things are possible with a public private key pair which aren't possible with a smart contract wallet so how like for us the way to phrase it and i'm going to phrase it would be like uh you can't really use a smart controller to sign a transaction from blockchain um that's one problem the other thing is also um keys are off chain so they don't take gas to deploy and they can potentially be private so if you do any of this um this we share reconstruction off-chain um if you have separate hierarchies or different other systems not necessarily using taurus but using another different system to do it
you could keep it completely offline so no one even knows that your key is split into how many pieces and that could be useful like for like let's say it's not gonna coerce you right and if you hand me your device you cannot say okay you can have my device but they don't know that your keys actually split across three devices for example so i mean so these are some of the benefits um the other big one i think is also cross chain compatibility smart contract wallets are only a theorem and ethereum has a bunch of applications but there are also other chains right like like bitcoins of chain beyond chains right so uh we also want to like public key infrastructure is not supported just in exactly the general mainstream applications and use cases today
and you've seen certain applications i'm not sure if you've tried the messenger like signal or back in the day uh key basically uh key base yeah um so these guys are also trying to proliferate public key infrastructure and we share the same ideal admission of them it's just to make it mainstream and make it accessible and applications just beyond blockchain as well right okay so with secret sharing by generating keys that are cryptographic primitives you open up potentially you know all kinds of other applications outside of crypto but also just generally like these keys are compatible with any crypto any blockchain exactly one more correction about threshold signatures and
strumming sql sharing facial signatures actually require xiaomi secret sharing so special signatures already they they assume that you already have your keys split to shares and then you can use that to do some protocol called threshold signature protocol and then use that to generate a normal uh signature so if you want to support threshold signatures you already need to do xiaomi secret sharing yeah what are some of the pitfalls of um of shamir secret sharing so i i i'm curious if there's any security or sort of like threat model disadvantages of using this particular technology and if you've thought about ways to mitigate those like i
i think there's something i'm not sure about this and maybe you'll correct me on this but i believe that with shamir secret sharing there's necessarily the presence of a master key that is derived and so they're like am i correct there is there is there sort of like a master key generation process and from which the shares are derived or is it a more horizontal process it's there's no master key the best way to explain it is actually visually so um imagine if you draw a line right a straight line and you have three points on the line right if you only have one of those points you can't you can't get back your line because any number of lines can go through a single point but with two points you can and this is basically a two out of three sharper
secret sharing and um this is true for higher power true for higher power so far three squared you need three points x cubed you need four points and so on and you can do this this is charming secret sharing at its core and you can do this multiple times and the reason why you want to do this is if you have just one line the person who do the line knows the line right and that's kind of maybe where you read about like a master secret or that like there's a dealer that's the official cryptographic term the dealer knows the secret yes so the problem that's the problem with trying my secret sharing and dkg's distributor key generation solves that by running n rounds of charming secret sharing
so everybody creates their own line and if you sum up all the points across these multiple different lines you get something that is still a shamanic secret share but nobody knows the line because everyone contributed randomness to it so that's the dependency behind the original lines because you have to add up all these different values together exactly everyone has to has to have so i mean show me a secret sharing itself because it's a primitive form doesn't really it's hard to find like i mean that it allows you to split it into a threshold manner but a lot of the problems arise when you try to use shamir secret sharing in a in a in a usable form exactly so for example it's more usability so it's more it's more like um like
how just like how what leonard just mentioned we want to generate in a distributed manner how do we do that and that's how what dkg solved but it's also like oh um we uh we have shares now right but what if we want to revoke the share what if we want to what if we lost our phone and one of our shots are there and we don't want it anymore so revocability what if um our devices are offline how do we refresh shares how do we ensure that our key hasn't been stolen before and isn't compromised exactly so it's yeah it's those usability problems that kind of kind of creep in and start building features around it they get more complicated and uh there's some things that are harder to achieve with
xiaomi's secret shares than with something like a smart contract well and the small contract ball is really easy right just remove the key and and that's it goes to no that's about it and um with sharma secret sharing it's slightly harder you also need to solve other problems like incentive compatibility um on on when updating the structure i guess on a technical level it's also a little bit more complex than that um so this is just evaluating terms in terms of like uh do you want to build a smart contract what do you want to build nothing that smart contract will work is easy by all means smart control wall it's complicated it's hard you require audits and all but um cryptographically uh cryptographically uh you have to
understand the primitives a lot more and you're a bit more constricted to some of those primitives relative to smart contract walls which have that general computation one benefit though that smart contract wallets have is the easy access to a term state so that's useful in a bunch of ways like for example if you want to do uh daily spending limits it's going to be quite hard on a xiaomi secret share you have to do it something like locally but with smart contract wallets you can enforce it on the ethereum blockchain so that's that one wouldn't be prevented from using a key generated with taurus to access a smart contract quality that's the thing with using this primitive is that you're you it's basically it's it's your key you can then go do whatever you want with it
exactly i don't i don't want it in your nose actually and actually and actually we so via direct off right uh we've had actually some several wallets integrate us doing exactly just that skyrim so nose is safe naturally just makes it accessible to everybody sky weaver um i'm not sure if you've heard of horizon games uh um but they were like the projects invested by reddit they've also built a wallet called sequence which also integrates direct off so it's tourist key management to a smart contract wallet or to like a multi-sig so these abstractions are always entirely possible because if you're playing with just a just a graphic primitive yeah keys can do a bunch of things right so okay that's really cool um let's uh let's talk a little bit more about the
higher levels of abstraction uh in the kind of tourist stack um well let's maybe let's maybe dive into uh the the wallet and the direct auth so on top of this key management infrastructure there's there's a wallet which logically like allows people to store funds and you know interact with with with the ethereum blockchain what what does these what are these products look like and i think maybe a a good way to segue into the your experience aspect is to walk us through what the process of creating your key looks like like what does a login look like for a user and you know in the in the background what's
happening when uh when someone creates an account using taurus can we share our screen for this one or does it not record go for it yeah i mean so uh for those of you listening uh on the audio podcast uh you can always um check out the youtube video which will be uh in the links um for this episode and you can check out this um screen share so for um a returning user and as well as a new user uh the login process is as you're logging in google verifies that you're logged in correctly and returns to you a signed jwt token this token is then
sent to all the taurus network nodes they verify independently against google and them is valid they return their shares to you and then in the front end your key is reconstructed and so that's where your key is going to stay it's not going to leave the front end once you close the tab it's gone and this is the taurus wallet uh if you log into app.us but you often see us integrated on different sites and the apps and over there we are running this entire process with an iframe which then communicates with the external data allows them to do metamask like transactions where like like uh confirmations and signatures so an example is on ave who has integrated us and uh you can see that the taurus wall here
essentially this is the experience on another application with the taurus wall so describe describe what you're what we're seeing here so what we're seeing here is ave in ave basically integrates a um an sdk called uh tourism bed um and this loads up an iframe that runs in the background iframes are protected by the domain security model when i log in this iframe presents this model and when i uh when i interact with this i'm basically interacting with the taurus domain and app.talk to us and thereby also the torus okay so this model window shows log in with google log in with facebook log in with you know the different service providers that you
support uh you've clicked on login with google now you're you're picking your uh your your user account basically it's a one-click login into your rv application and the user can immediately start interacting with the application he or she wants to do be it like trade be it uh like buy variable uh items so important point to note about the domain security model uh is that your key is kept uh on app.us domain so rv.com can't directly access the private key uh in if you're using the taurus wallet in this way via this integration so it's interacting with the web three with the web3 api so exactly there's a provider that routes these requests to
the iframe and then it's signed there and returned back out so this way your key is kept safe so if you use the taurus wallet on like a less trusted site it's still okay it's the same domain security model that uh for example chrome extensions like metamask and all use it's the exact same it's a browser it's what the web is built on yep um so this is the taurus wall integration and uh with this integration we're integrated in most of the top d5 applications out there uh you can get started here we also have a chrome extension which is a little bit less known uh but because users asked for it we just basically have a chrome extension that users can download and use to interact with different applications as well
um we uh and this is more of like the the front ends that taurus provides and the developer experience for this right is they get a web tree provider that's that's that's the way this integration works right so a lot of it is really just be around simplifying the developer integration for for them so we could in theory with just the taurus network return a private key and then have these developers do everything but that'll be extremely developer friendly so we built this ui this nice interface that mimics all of these things they're already used to with known web3 providers like dynamos however uh we also had a lot of requests for people wanting to directly interact with tourist network
without a pre-built ui yeah they wanted full control of the user experience they wanted to either build a wallet for themselves or have it very customized and tailored to their uh application um as such direct off was created and direct auth really just abstracts all of the interactions so that key assignment that you saw uh the the the retrieval of shares um the reconstruction all of it happens in the direct auth sdk on the application's front end itself and any application can basically emulate that exactly same experience by in uh by integrating this so you have the wallet which which you've built which is sort of like the the base layer in terms
of user experience right so like any application can integrate taurus it's transparent to the user that they're using tourists they can always go check their taurus wallet you know on the taurus website access the funds there etc but for those who want a more custom experience and something that's maybe a little bit more white labeled and don't necessarily want uh to have like taurus kind of you know as part of this as it is experience they can build their own wallet on top of uh basically this sdk that abstracts away all the user experience aspects you mentioned imagine a tourist wallet and remove all the ui that's basically what direct office yeah uh and so it's important also to note that direct off is also secured via
like the similar same domain security model so applications if you integrate direct off it's not like they're getting your your taurus yeah it's a different key it's a different key specific topic yeah so do these then are these different i want i'm thinking about them in sort of like namespace terms right so perhaps some some app uses the direct auth uh sdk and users are able to retrieve their funds using you know that specific their specific wallet can they then log in say with tourists or some other service provider and still access their funds or are they kind of like locked in some name space so for direct off it's namespace
and the reason for that is security right because um if they were if a user logging in on any random integration with dire auth could access all of their keys elsewhere then our security is basically the weakest link which is the weakest the most insecure that that users start off which is so pretty insecure which can be pretty insecure so um we for direct it's actually namespace the private keys are completely separate for each application but i mean in terms of like the ecosystem and whether or not they can leave the ecosystem of course we we give back the public private key pair so as long as the wallet integrating direct off or even via the taurus wallet keys are
always exportable you can always take it away um you can all import keys into taurus as well if you want to do so and people have decided to do and that actually is what facilitates our account link ability flows that a lot of users in the web 2 space i use for example in the web 2 space i can connect um if i let's say if i log in and start playing some game i can connect both my facebook account and google account to it and uh you can do so you can implement these flows by the taurus network as well so this is one of the things i wanted to ask you about is kind of portability with this key uh this key generation method that uses shamir secret sharing what you get in the end is a private key the combination of those shares
you know populates or generates a private key that you can then export and go plug into metamask or plug into whatever wallet you want so your i like this because with other solutions that do this kind of threshold thing or or you know arjun for example that use a smart contract you're you're kind of locked in it's i think it's it's more difficult to take your entire account in your account history and like bring it somewhere else you'd have to transfer the funds um and i like the fact that with taurus you can just take the private key if you want to leave and you can bring it somewhere else and manage it through another interface or even just have like two interfaces from which you're managing your
your funds you might want to have like i don't know like on on some secure system like have your private key there where you can also have a backup or something like that so i i like that portability aspect and i think it's important because i i would hate to see you know crypto end up in this space where all these different solutions aren't necessarily compatible with each other and you know some some of them are less compatible i'd say like smart contract wallets it's harder to move away from that my my view is that there's two ways to make uh like portability happen right like one way is use established standards so examples established standards are like web3 providers
seat phrases private keys right and if you implement your solution in a way essentially it natively relies on that then it's obviously possible to migrate your keys and that's kind of what we do we try to make it just private key so you can use the privacy elsewhere and then the other way is try and push a standard it's a lot harder but it is possible and we've seen some standards be pushed for for these kind of things but yeah but it's a lot harder that's definitely tough it's a lot tougher um uh yeah and i mean we definitely resonate with with with that statement that you just made and that like interoperability is definitely very important in particular what we feel as well with regards to portability is the way we've kind of thought about oh maybe it should be developer facing
maybe developers should choose where the keys go maybe it should be all but ultimately i think it all boils down and this is the same in the web 2 space it all boils down i think to uh to to it should be user sovereign and user controlled basically if a user so chooses to be on a particular platform he or she ultimately the end version that we have is he or she can choose to migrate um when he or she wants to on as a holocaust and uh yeah as and with minimal resistance possible as as you as you feel the same um one of the things i also that i thought here and i don't know if this is something that you guys do already or planning to do but because
you're integrating with all of these web 2 platforms how how easy is it then for someone to send funds using an email address or a twitter handle is that something that you that you orchestrate for the user or is that kind of a an added user experience layer on top of source that someone would have to build like kind of on in their app so you can already do that um in our wallet today you can already send to twitter actually you can send it twitter in fact our latest campaign uh the charity campaign bitcoin tuesday yeah with the giving block is using that so you can send directly to the handles um and these are by the way
so if you guys want to uh if you guys want to donate i've been looking to donate some crypto for a while it's a booming market it's always a good time to give back christmas right there yeah check out check out uh the giving block and a bitcoin tuesday and donate via the taurus wallet yeah um and it's totally possible and not only do we do it via toro's wallet direct off also has this functionality so allows you to just look up a key based on a known user id so there are a few caveats though there are a few caveats the first caveat is that not all not all social logins support this and um for example one example and this may be surprising to some is
facebook facebook doesn't allow you to do this because facebook is actually really privacy conscious with their sdks and if a user has not logged in to taurus before there's no way to know what id they have and the ids are also app scoped so this way you can't actually send to a facebook user so this is another question then if if i send crypto using taurus to some random twitter account do they need to have a taurus wallet already or is that something that they can do a posteriori and and like create that wallet later they can create a wallet later so how that works kind of kind of uh to go a bit into technical details right because it sounds it sounds impossible
right how do you do that yeah how is the key how is the key known if it's not yet generated so as part of the dkg generation process they're commitments made to the shares so commitments are almost like uh um the hierarchy works something like this private keys have public keys right and shares have commitments they're kind of kind of like on the same same the relationship between private key and the public key is the same relationship between share and a commitment and as part of the dkg process you have to publish commitments otherwise you could just send bogus information to other servers by reconstructing um these commitments in a certain way
in the same way almost as high reconstructive shares you can actually get the public key because the relationship is the same and this is a known result that's already used in other dkg so you guys are free to check out on the one called dkg in the wild by anna kitkid who is our advisor and um that kind of allows us to get the keys the public keys of unassigned keys and then remember back at the start of this podcast i mentioned that there are two parallel systems right there's a dkg key generator system and then a mapping system yeah so what we do is the mapping system assigns you a new user who has never logged in before assigns the user to an unused dkg setting and dkg right and then that has a corresponding public
key so we do that and because it's completely parallel there is no reliance on this this dkg setup it is possible to center this public key first and then later on when the user logs in he can reconstruct key the public key is generated first and then the dkg will kind of construct the private keys from the different shares is that right so as part of the construction of the shares the public key is already known it's already constructable i wouldn't say it is constructed because the actual protocol doesn't require to construct it but it is already possible because the decade is done it's already possible to get the public key from the commitments the funds are actually transferred then on the blockchain
because the key is already known so it's not like it's just sitting in your system waiting for this yes yes yes yes yes it's actually recent you can see your ether scan and and that's kind of um and it basically can only it it makes because the keys are assignable you you it allows for sending ahead of time and you can basically retrieve it afterwards whenever you like yeah as long as you have authentication so there's some caveats there's some copyrights right so so the covet is uh you like i said facebook doesn't like look up um some systems also uh uh are are harder like for example there are some which are which gives you back random ids so same problem as facebook and the last thing is also you have to remember that
this is a threshold lookup so you're sending it and the servers are reconstructing your keys so these are some of the caveats but overall it works almost the same as taurus i'm thinking here could you do like pgp style uh email like could you do this with pgp where you say okay i've sent you an encrypted email if you want to decrypt it log in with with taurus yes on some email client that would implement taurus yes yeah you could and that's exactly how uh schizo works today uh we have an application you can download the chrome extension chrome store uh as in not our chrome our application is something built by direct auth um that's how it works exactly today they basically uh generate your key
ahead of time they use your public key to encrypt uh an email attachment that you want to receive and we send and you send it to that and then when you log in you get back the key and you decrypt that yeah exactly wow that's really interesting that i think i think that's super powerful to be able to say to someone or yeah and just like send an encrypted email without them having to generate any kind of like even knowing about pgp and then telling them hey you can unencrypt this email by using you know this application and i think that's super powerful yeah yeah um that that's cool i mean that that unlocks all kinds of use cases
that i like um i'd like to talk about tiki uh we haven't we haven't talked about that yet and so if we kind of recap so the the tourist network generates these key shares um a user can can log in to a wallet um using uh either the the wallet you've generated or a third-party application's wallet but essentially those keys are kind of only secured by the taurus network and what you've built is you've built like another layer on top called tiki that allows for um as i'd like to call i call it like a two-factor
authentication on top of that where one either has to provide a password or uh do some kind of like browser cookie thing and maybe we can talk a little bit about like those different types of second factor but essentially it's like an added layer of security describe for our listeners what what this does and how it improves on the security model that you've already built in with with this with this secret sharing you've you've very aptly described this about um uh so it is kind of like a form of 2fa and really it's for basically users who right now who who want to detach even more from the taurus network assumptions
or more more less of the taurus network and more of the assumptions with regards to let's say your account being pegged to your google account for example so with um with the taurus network if your google account is accessed and compromised right um because we use these faucets of authentication to validate and retrieve your public private key pair uh you also your your key gets compromised and uh that that makes that's basically a central point of failure that we wanted to definitely um address with future i mean we've had people want it and as we as well as we wanted to provide a solution that allows you to do there are multiple ways to address it
right you could do it in a centralized way we could just send you an sms code right or we can we can do other things as well you can do like a smart contract wallet and use more more keys to secure and all that but we want to stay true to our our vision of just providing private keys primitive private keys that are usable in any use case not necessarily even on blockchain so on the technical level what this looks like right is you know the shamir secret key that you get uh the key that you get back from the torus network that actually the shares to that key are actually just private keys as well and similarly that private key
can be another share to another hierarchy of chameleon secret sharing so taurus network provides one key right now but instead of using it as a key use it as another share as a share yeah as a share and then your browser also holds a share and then you have some user encrypted share as well via password or secret questions and it's base flow is basically 123. these two fa these ways that you manage the shares are basically flexible to the end exactly and ultimately the base flow that we propose is one of the taurus network one stored on the user's device be it browser or a mobile application can start natively and the last one being kind of like a recovery share being pegged to a
password or something like that uh but this recovery share could go above and beyond and because what you're sharing on this share is i mean what you're securing is one share and not the whole key you're allowed to basically do uh security questions on top of that you could do 2fa solutions which mainstream users are more familiar with like sending it to a recovery email for example uh sending it to a sms phone number um so your your we still retain a base flow that is convenient at the same time offer a higher level of security and better guarantees to the end user and to kind of like to just walk through it like imagine if you're a user on t
key and you had a share on your device one on taurus network and a recovery share that starts somewhere and protected by a password if you're using it day to day you wouldn't use the recovery share because you were on an existing device right so you already have one of the shares you log into the taurus network and then you're done because you already have two or three and if let's say your google account gets compromised right the hacker tries to access your account your tt account but he doesn't have a device so that attack is also blocked and if you lose your recovery share let's say you lose and people lose these things all the time right like who actually keeps a piece of paper in a safe right so people lose this all the time
if you do lose it as long as you didn't also lose your device at the same on the same day you're able to generate because you're two out of three you still have two or three the taurus network any device you can generate another recovery share so you can throw away the one that you lost and create a recreate your recovery share this gives you some form of redundancy and it's actually a very popular way that um existing enterprise facing uh security companies uh like bitco and all that use so already do something like this yeah and um additionally it's really designed so most users today have more than one device right we have our laptops or our desktop and
and then we have a phone right users using tiki tiki is designed to be flexible to the end user and use device-based security and to that end when you use let's say if you try logging in if uh end users you guys can try login via your phone and your desktop um you can actually create like you create a two hour for sharing so you have one chair stored in your laptop one shirt stored in your phone and then you have like a share up on the tourist network and a recovery share and that automatically uh improves the amount of redundancies unlikely you lose your phone and laptop at the same day could it be that you have say one share kind of attached to a a google
account and one share attached to maybe your twitter account or is it or is it uh necessarily you know the kind of like tourist stack on one side and then like a password or another device or something like that so you can do that but we advise not to do that because uh you you don't okay so the reason for that is is twofold right so a lot of people's facebook accounts actually are tied to their google accounts already right right so so it's a hacker just needs to access a google account and he can get a google share and reset your facebook account so you you're still like basically having only one factor that's one problem one problem the other problem is also by just relying on taurus network
shares you are still subjecting yourself to the threshold assumptions of taurus network and you could you could very easily avoid that by having just a device share and and we want if you're going to go through trouble of actually having more factors authentication why not go ahead and give yourself even better security guarantees well i mean if you're okay with it but if you like it yeah sure just don't use the same email yeah yeah um and yeah uh and we also enable for so for people who want an even higher level of security you can actually increase this threshold yeah so right now it's like two or three or twelve four right but you could very easily increment this threshold to three out of
four for example yeah and that makes it more like a 2fa experience where a user has to i mean very similar to your banking accounts you log into your banking account you need to access your phone and tap something for us it's you log in with your desktop you log into google you need to tap your phone on your phone something and and to sign a transaction for example so this all sounds pretty complicated but we've already simplified the entire flow such that a user can just use it today and it's already live on auto yeah i signed up for it yesterday and uh i did the uh well i did create like my first kind of taurus uh wallet and then it prompted me to do this the t key which i was surprised but i guess i
understand now it actually creates a second wallet and that's normal because you're generating a new key set essentially exactly and the options i had so there i need two out of three one is the taurus network the other is a cookie that's stored in my browser so this is like the device authentication that you mentioned earlier and the third is like a password i suppose there's other on your roadmap you probably have other forms of second factor authentication that you're planning to roll out browser cookies seem like a bad place to store a second share because i like personally delete those like once a week uh what what kind of things are is on are you on your roadmap to make this process a little bit more yeah maybe like having two devices or something
like that yeah so definitely let's just mention the two devices um mobile application or mobile application is that one actually is already rolling out as well uh two devices if you try logging in on a different device it will prompt you to use that as a recovery factor okay in the browser yes yeah in the browser okay and use it we're also planning to use secondary uh secondary email for this we naturally have all the style of also you can copy and paste it today but we'll be offering it that in the onboarding ui as well now you can do it in settings but we'll be offering that an onboarding ui um you can send it to your email a recovery email address so we recommend something separate from your existing google account and you can send a share there
um as well as a phone number sms uh and really if you have any other ideas yeah let us know if it's implemented yeah yeah so something we've also been uh contemplating is uh touch id yes exactly um and we've been working towards that um i don't know whether we we want to segue into that uh next or should we yeah sure i mean let's uh let's talk more about the the kind of ux challenges here um yeah what kind of what kind of things are you thinking about in terms of building touch id where would those keys be stored and i think most importantly how are they backed up in such a way that like if i lose my phone i can still access the key but it's not like unencrypted somewhere on my cloud
exactly exactly so um there is this standard this that has been around for years i think it's like three or more years it's crazy uh called web often so web often it's become recently more popular because it's finally made it into mainstream browsers and properly supported and that's how long it takes for whatever yeah that's how long it takes for these standards to actually make it um to mainstream but what often basically allows you to use things like touch id to sign sign assign information to sign in and its purpose is for for in the web browser in the web browser yes yeah i think i think my bank recently told me to kind of really prompted me to
do this yeah it is being used by quite a few yeah like security conscious companies in the mainstream right now mainly it's being used as a 2fa solution exactly yes so they use it additionally on top of a password login for example or they use it with a ubi key i'm not sure i'm not sure yeah so like a security external key um but really this is actually the reasons why this is doing so they're doing so is because um they are trying to comply with legacy systems right and if you think of uh if you think of a login system from first principles up you can actually create a completely user nameless experience yes why do i even need like an email to log in if the touch id alone has some kind of public key that i
can use to anonymous mercilessly sign it right so that's uh and it will be a much better user experience as well there's no need to remember any credentials i can just touch and get in so that's kind of like what we've been working towards but at the same time you also mentioned a great problem which is that what happens if you lose a device right if you lose a device because the authenticator and touch id is on your device then that means your only logging is gone which means you need to solve challenges around how do you link it it's actually right and and basically we've solved we we solved that on a daily basis because this is actually public private keepers this is metamask yes this is like argent on your phone for example yeah um
and we use very similar flows as well as potential social recovery flows um so basically it's all about account linkability it's about using your account on different phones it's about linking it up to your social account as well google facebook or whatever it's actually the same concept yeah we're glad that we can reuse a lot of the work we've already done for tk as well as taurus wallet yeah no this is this is really cool i i i like the flexibility that you guys have built into the kind of base layer infrastructure where you're thinking of all the different ways in which people can construct you know their their own security um model around their keys i i guess but i
wonder though in terms of user experience what responsibility do you think you have in educating users i guess primarily on to what extent they should be securing their keys based on things like how much money is in their account right so like if i open a t if i open an account using taurus and i've got like maybe 100 bucks in there i'm like i don't know buying some nfts or something the risk of losing my keys and like catastrophic loss of my my crypto is fairly low so maybe i'm not going to enable tiki but like if i start using this to store lots of money lots of crypto investments et cetera then you know i i i would think that
those users would want to secure their accounts in more meaningful ways what kind of things are you doing to educate users or kind of help them along the way to say hey you know there's a lot of money in this account or there's lots being secured here you might want to think about implementing a second factor or you might want to think about like i don't know things like encrypting your hard drive on your computer if you haven't done so already because even if you lose your computer well someone could have access to your account by the simple fact that a there's a cookie in your browser and b you know your your google account is already logged in like just kind of simple education around personal operational security so one of the benefits here is
there are a lot of large companies who are a lot further along along this road map of like educating users for security than we are and and we already prompt users to use 2fa or further google and that's really important because that attack you just mentioned actually wouldn't work if the user if the the person who stole your device is on a different wi-fi right because then google will probably 2fa and what you would do actually if you lose a device is you would sign up from all google devices right that's often what a lot of people do if they lose like your android phone you would say sign up from all my devices and now to re-login they will have to somehow hack your account yep um so that's that's one way to kind of use these
already pre-existing solutions to do it the other way is uh more native to tiki and we do prompt users when the account in the taurus wallet exceeds a certain threshold but we don't do that as part of taurus network and one of the reasons is exactly as you said um in order to keep the network flexible and as useful as possible to a bunch of applications it makes sense to limit functionality to what it's good at and the taurus network is good at holding and holding generating retrieving and sharing private keys not necessarily prompting users when they are amount on a specific blockchain exceeds a certain usd equivalent that's going to be quite hard to do from a network's perspective
instead we leave it to front-end implementations to do this and we have recommended guidelines for exactly like when to do it but we i would say it's definitely use case dependent ultimately these recommended guidelines are really dependent on audience as well exactly yeah particular users to users if you are a game maybe ultimately so much yeah if you're a game yeah well i mean it depends on how much you're spending how much investment of your time but essentially it's like if it's going to hurt if you expect if if you expect your audience like if if your account gets lost nothing happens then well you don't really need much at all but once uh it once it starts maybe once it's uh kind of goes like maybe ouch
that's an inconvenience then maybe you might want to start adding uh maybe one to fa or maybe ensuring that you have redundancy out there and then uh and then once you basically it's it's really gonna cost a lot that's when you start using t key with higher levels of authentication um most of external tools to allow you to do this so you can do this natively in the taurus wall already you can implement in import existing shares and keys but we're trying to build external tools such that a user can completely export each of your shares on let's say you have two devices and shares on each one of them we want our users to use these external tools that they can run locally to reconstruct their keys so not only
this is important because not only do they actually back it up securely they also fully understand the model they're in they understand that this is what i'm doing these are how the thresholds work and they can choose what they will with it what they want to do with it and ultimately this is a very ongoing process for us to be interested it's um we we kind of we go through user testings we uh we constantly kind of ask what these thresholds are we think about the guarantees that we need to offer and then we think about whether we're the right people to do it yeah another thing another thing i think that's important is you know oftentimes if you create an account you might secure it in the beginning
maybe you know you've got like a secondary device or something and then you get rid of that device not remembering that you had one of your shares of your keys there yep i think one of the things i've seen companies do like signal does this uh signal has a second layer of of security on top of the key which is a pin code and like every couple of weeks or whatever it reminds you it's like what's your pin code like just to kind of keep you um aware that there's this thing securing that that device or securing the data in in this case and i think like reminding users constantly reminding them like once every couple of weeks say hey by the way you know you've got a there's a security key that's on this device you know
you just re-authenticate it or just recheck it to make sure everything's working to and that helps i think keeping that system kind of top of mind for people and remembering that they have you know maybe like lots of funds like stored and if they lose this device then they would kind of lose access to it it helps them remember their pin as well i've seen that i've seen that being used as well in like authy or like the authenticator app offi so they also have like this this uh master password backup and they remind you frequently and if it doesn't matter if you forget it uh you just have to remember to reset it before you lose your device so that's kind of how they do it as well yeah i i got a couple of extra questions here on you mentioned this briefly you talked
about people reconstructing their their shares what happens if tourists disappears uh if the company disappears and what assurances do we have that the network will continue to provide you know the shares uh key shares for their users what's the incentive for that model to continue uh to live on that's actually a great question but um but i mean initially we can talk about this is done now initially initially right now with tk right uh that's the reason why we always advocate a two hour three flow where a user is always in control of two shares um in the event where taurus is taurus leaves and all the users always kind of secured via him being
able to reconstruct his or her share locally and it's always accessible and always possible for a user to do so and this is this attack is more there are things that could happen that could make this attack possible and it might not even be us just just disappearing it could be maybe um your country decides to ban the total us domain yeah right and then because of dns lookup and all that there is it's going to be really difficult for you to get access to the site um it could even be just maybe google just thinks uh this is a bad idea and then they decided to block all kinds of things that are like taurus um or any kind of crypto application that could also happen so i mean yeah so there are a lot
of these potential events um and uh basically that's how tiki kind of solves it but we also are constantly thinking about how taurus v2 solves yes and actually there's a lot of things in taurus that already solved this yeah like for example our network isn't run by just us it's run by a bunch of new operators and our code is completely open source so anyone can just fork the code and run their own network right now the state of the network is it is right now the torus network exists as a permission network and um this it exists is how it launched about a year and a half ago when we first launched uh to the public um and the reason why we kind of launched it that way is because we're kind of like a team that progressively decentralizes
we wanted to provide value from day one we didn't want to be one of those back in that you know 2017 period it was like you know all the shirley projects the tokens and all that we really didn't want to be one of those projects at a point in time um so we kind of went this route and we uh we provided we launched our solution um we and we launched the taurus v1 and today it exists with nine node operators in a federated set up um inclu which are all large ecosystem stakeholders uh these include uh you talk about who some of these some stakeholders are uh name service etherscan finance uh tendermint core um silica the the list goes on here uh there are
nine nodes in total and uh we run one of them um users can check this out at status. node and for developers you can actually check the network calls that happening in your browser when the sdk logs in they actually go to these different servers like they're owned by silica or binance and you can see why it's returning yeah so i mean right now it's a permission network but we are constantly thinking and we are actually an active development of um shifting this permission setup uh slow to become more decentralized yeah so the first step of that uh naturally is with um a uh kind of introducing governance
into the the system itself right now it's it's fully permissioned we choose who knows who the nodes are um it's governed via a smart contract on the theorem and the first step there would basically be making it such that participants of the network including applications users as well as uh different like the nodes themselves can opt to choose who can uh who can basically run nodes um and this helps and this can't work because our node set is dynamic uh that's tough with dkgs itself yeah uh we've put a lot of work there so just thought to mention that but anyways um and shortly after we're actually shifting to basically a completely permissionless setup um and part of the
challenges there is also like incentives right how do you incentivize these servers to participate um how do you kind of like make sure that being offline has like a penalty so you have to be able to slash them for not responding so we've thought about it um we actually have a pretty working model already so we're thinking about like exactly what's the right way to kind of make that happen and very likely what's gonna happen is uh a large a large part of this will run this initial test net and then we'll see uh how to make that work first and run it the end vision the end version ultimately is a uh naturally uh all of your participants being incentivized
very similarly to how the ecosystem is incentivized today mm-hmm with token economics etc like you know these yeah so yeah yeah yeah so it's like a utility token i mean we charge a service as a a software as a service fee today uh specifically to validate that applications would pay for this on the user's behalf and that's similarly how we foresee um kind of like the ecosystem fees and incentives ultimately what we're aiming for is a decentralized key management system that is competitive with centralized systems today so it's very similar to i guess you would call it filecoin and saya whereas they are for competing with dropbox for us it's a decentralized permissioner setup anybody
can run a node anybody can offer their services um anybody can be part of the dkg setup and the things that we replace are centralized solutions like amazon cognito off xero or google firebase that exists in the ecosystem today and there are a lot of challenges that we are trying to solve along along the way as well like for example the of2 standard is by design very centralized and it actually leaks information about the user like for example their email or their name and if you're in a decentralized setup with a permissionless setting where anybody can join leave you kind of send these tokens everywhere then you'll be like violating the privacy of law users and we are actually doing an ongoing research
grant as well with weightier who is doing um a way to such a valid to validate all of two tokens um using zk zero knowledge proofs and what that will do is allow you to validate the token on the client side without sending a whole information to the back so just these different uh endeavors which is basically in totality and our end version is a decentralized decentralized association this is something i wanted to ask you too is to what extent does using taurus leak information about about funds uh held by an account or transactions executed on on like ethereum or any blockchain can anyone
say look at an email address and figure out you know what the pro what the public key for that email address would be and or or even perhaps you guys like is is that possible and is this something that this zkp solution would address so via google um via google uh and via basically all different authenticators the authenticators don't know anything except that you have logged in um it's just basically your handshake and that's all of the information that facebook google or twitter after that we yeah after that um and in terms of what like data is accessible to an end user um or to a user like looking at let's
say your email address via tiki there is no information available as well because basically we don't actually know your t key on on your google setup but via your taurus key setup there's basically there is a mapping that exists on the taurus network itself that maps like the the the corresponding uh the corresponding uh the corresponding unique identifier for a login to your social account and that is necessary because of the authentication requirements exactly so um the the zkp would help with observation of all other data uh pertaining to the login uh but that unique identifier
would still exist and it's really like a double-edged sword here because that thing that you were very excited about those look-ups that you're very excited about is necessary in authenticating a user and is necessary in that particular handshake but also it also leaks information that particular information is leaked and accessible because of that so kind of like we recommend if you're trying to use like a more private setting use tk gives you better security guarantees you're also private no one knows what association is we had just tiki just uses your google login as a factor authentication but if you really like the lookup feature or like if you're just sending to a friend a couple of dollars and he's never used crypto before
definitely try using uh the lookup feature or also on that end like because again we're crypto native we've always felt that this particular we want we've always wanted to censor privacy to the maximum like as in like ensure the least amount of information is leaked possible but for extreme privacy right it's always it's always possible to use other solutions which touted right so like aztec um electric coin uh and that's easier because you use private keys yeah so if you wanted to you could use the techniques yeah so it's compatible with that yeah cool so where can people find you and how can people start building in taurus into their uh
into their web3 apps so definitely if you're a developer do check us out um on our main page and our docs docs dot tor dot us uh and also we base we are very um we're very active on telegram yep so do check us out on telegram we have a developer chat as well on telegram just specifically for developers who have questions we answer everything there a lot of our new features actually come from requests there yeah so uh and we have kind of like we we walk hand in hand key management is a critical part of a lot of adaptations an application stack and in uh for us we particularly work hand in hand with a lot of applications we help you guys uh uh i mean not that everybody needs
help but like if you guys do uh we assist in kind of like architecting of the key management system in terms of like uh um trying to make it as seamless as possible for the guarantees necessary for your application so really just do get in touch with us and talk to us we really love to help that said you can get started and check out our code base as well uh to get started with uh taurus really is a five minute integration yeah and it's all open source uh code all audited as well kadelskiy for tiki a bunch of them for torres torres public so yeah check it out cool well i'll we'll link to all those uh links your documentation and your telegram uh in the show notes and of course i mean anybody even if
you're not developing an app i think you should just go to tour.us and and just try creating a wallet it's it's uh it's a pretty incredible experience to be able to create a crypto wallet using you know your google account or your twitter account or whatever kind of account you you like and just walk through the process and have a get give yourself an idea of what what this process looks like and how you can create a cryptokey using just a a web 2 login it's quite cool yeah 100 yeah uh yeah if and do let us know what you guys think as users as well always open to always love to hear great thanks a lot for joining me guys thanks so much sebastian it's been a pleasure thank you