Gnosis Safe in a Multichain Future
ETHCC 4 · July 2021 · 31:33
Lukas Schor discusses Gnosis Safe’s strategy for a multichain environment. He examines technical and user-experience challenges for smart-contract accounts, the role of Safe Apps and plans for supporting additional networks.
Speakers
Topics
From ETHCC 4, hosted by Ethereum France.
Transcript
hey everyone my name is lucas and i'm from nosis safe and i'm going to talk today about basically gnosis safe and how we were navigating this new multi-chain future that we're in um and yeah what challenges we also faced on the way um maybe first a little show of hand who knows what gnosis safe is okay about two-thirds who actually uses gnosis save okay so roughly half of the people here um for the other ones i would just give like a little introduction like what knows the safe is why we're in building it um yeah so you're up to speed uh basically we're trying hypnosis
to solve some challenges that are inherent to web3 like we all know web3 is the future it's partly already here obviously it has a lot more potential but there are some roadblocks on the way um that we need to solve a few of them are here like private keys are basically the way how most people today interact with ethereum through wallets such as metamask or ledger they often get lost they get stolen that's obviously something we don't want to have in the future um if possible then there's dabs that are like a very critical critical point where often there's attackers intercepting through phishing attacks
website hijacking and then the web free ecosystem for newcomers it's very fragmented people don't know where to go what what are trusted sources like what uh what are trusted taps um and then finally signing transactions which is uh integral part of of like interacting with web3 it's very confusing it involves uh learning about gas limit gap gas price uh a lot of complexity that's that's quite hard to navigate as a as a newcomer and we're basically with no safe we're working on like these and many more things that are just making um the web free ecosystem like hard to navigate
um like just less secure less convenient um and yeah notice safe is a smart contract account um that's like compared to regular accounts which most people are familiar with that are basically private public key pairs where all your digital assets that you store on this account that your account has access to are fully controlled through this private key um that's a very binary thing meaning if you have access to the private key you can do everything you want with the assets if you don't have access to the private key you can do nothing with it if someone else gets access to your private key they can do with your assets whatever they want um and like on the other side we have smart contract accounts
and they're basically the account is not controlled by private key but through code and with code you can do any kind of like permission system access control scheme uh whatever you would like to implement as long as it's as you can like implement this logic in in solidity as a smart contract you can do so um and yeah for like in general i think smart contracts are the future of ethereum and web free i think at some point all accounts will be smart contract accounts um and this is because there's like a lot of uh crucial benefits of them uh one being what i already mentioned with programmable permissions uh you can actually um like
set a a permission that's different than just one key gives you access to everything you can say there's multiple keys that have access to us to certain digital assets that's also what maybe most of you know knows to save of today that's multi-signature that means like you have maybe five people and you can say three of those five people can manage the assets on this account but this is really just the beginning of what's possible with with programmable accounts um because you can implement any kind of access control scheme such as you can set spending limits for account where like your account might be under this multi-signature scheme
where three out of five people can control the assets but if the transaction is below a certain threshold maybe one key is enough to to conduct this transaction um you can even restrict the capabilities of an account for example you could say you want your account to only be able to interact with these set of of addresses or these smart contracts and if you want to change these restrictions you would need to have like more than four people maybe confirming this change and you can also implement some social recovery scheme or other recovery mechanism and that's all possible through this programmability of smart contract accounts um
so that's like a big security benefit but there's also convenience benefits of of using spark contract accounts for example you can do transaction batching which essentially means that you can take a multi-step process such as opening a make your ward and you can bundle this into one single ethereum transaction and this is just uh like this is just closer to what users would expect uh when they want to open them and make a wall they're not expecting to do like several transactions to do so like this is one logical action they would they want to do and through smart contract accounts something like this is possible another example would be if you're swapping
tokens on uh on some decentralized exchange um often when you're doing that with erc20 tokens you first have to do an improve and then you actually do the the swap interaction with the with the amm and this can be bundled into one transaction it's just more convenient to user and then finally one thing a lot of newcomers are struggling with when they interact with web3 is the entire topic of gas like you need to understand what gas limit is what how to set the gas price uh like correctly but yeah this is going to get easier potentially with eip 1559 but still not uh to a point where like
you can you it requires no prior knowledge to do so um but with smart contract accounts you can actually implement uh gas abstraction you can have a relayer mechanism which would allow things such as subsid like dabs could subsidize the transaction fees for their users um or they could have some sort of like balance on their account and like every transaction would just deduct from from this balance um but they wouldn't have to deal with uh with some like gasoline and gas price parameters yeah so i personally think that uh like in the future everyone will be using smart contract accounts maybe today it's mainly mainly teams mainly daos who are leveraging this
multi-signature capability but because it's essentially programmable accounts and it will we will also like go into more like access control schemes that might be suitable for other user groups in the future it will be also like more individuals leveraging those safe or other smart contract accounts more complex companies maybe traditional companies we already see a lot of like venture funds using for example uh nosy save to to manage their treasuries um so a lot of more user groups are are like possible there and they will interact with smart contract accounts with any kind of digital assets it's not just
erc20 tokens and ether it's going to be nfts content it's going to be digital identities self-sovereign identities it's going to be smart contracts and a lot more yeah so i talked a little bit about like the contract level of smart contract accounts and specifically knows the safe and this is basically our user interface which allows you to interact with hypnosis safe accounts and yeah basically it allows you to see your balances of course your transactions your settings your policies that you have for your account but it's also a way for you to take your
account and interact with web free applications so we've got this little tab store integrated and basically what this is is that dapps are integrating the sdk that we provide and that then allows users to interact with their safe accounts with these steps and can leverage these programmable permissions such as multi-signature which yeah it looks like that you also have mobile apps which can use obviously to track your assets on the go to see transactions that are incoming but also where you can generate a new
signer key or you could import a sign you can't actually use it as your sinus device soon it will also allow you to to connect the hardware wallet such as ledger to sign with your mobile device and yeah um some mobile apps but there's also other other projects that are building interfaces for safe accounts uh just two weeks ago radical announced the radical orcs which basically allows you to create new safe accounts that are controlling code bases um we also have parcel and multisave both targeting like a dow treasury management use case
we've got the line in app we've got smart defy and yeah then some stats for for us to save there's currently more than 30 billion us dollar worth of digital assets stored that's ether plus erc20 tokens and that is only ethereum layer 1. granted this goes up and down depending on the bull bear market but yeah right now it's a nice nice number to show but also what's maybe more important is just the number of transactions that are made with smart contract accounts with with noisy safe and this is definitely going up uh quite steadily over the last few months and we've now
approaching like a quarter of a billion a quarter of a million transactions made with nurses safe and about 27 000 saves that are deployed so about layer two this happened earlier this year just a bunch of people asking us when is no safe coming to buying a smart chain polygon avalanche you name it um we initially thought we have a little bit more time to decide where we're going to deploy those is safe like what's what's the right networks to start with because we thought no safe is a tool that's used mainly at least currently to manage like a lot of funds
and before it's just first the ecosystems need to develop the the people need to start having actually a lot of funds on these networks before no safe actually becomes relevant but what we've definitely learned through the community feedback is that nosy safe is also just essential infrastructure tool which is which is used to um to control like other smart contract systems and so a lot of teams actually approached us and said like they before they can deploy their depths on on another network they want to have noises safe there just to have not their like smart contract smart contracts be controlled just for one
private key as an admin key but have some added layer of security using nosy save and definitely also the the projects that are building these networks um like learn learned about this request from users and a few of them actually went ahead and just fork nose is safe which is perfectly fine everything we build is open source exactly because of this reason we don't want to be a gatekeeper um yeah not sure if they were aware all like what what this actually means to to host nosy safe and maintain it and deal with uh customer requests uh but yeah a couple of them at least went ahead and fulfilled this
this gap in the market before we were able to do because we actually wanted to have something that's a little bit more scalable which we can roll out to like more uh networks in an easier way and one thing that was blocking us there is that the nosy safe solution requires a tracing node in order to run and we want to get rid of this requirement because some networks don't have tracing nodes available and so we had to make some adjustments to the to the core contract of those safe basically this code change here so we emit some transaction when you make a transaction with no safety emit this transaction data as an event this just makes it possible to remove
this tracing node requirement which is a little bit more gas inefficient that's why we didn't do it on ethereum layer 1 but on side chains at layer 2's it's not that critical so we yeah we added this we then obviously had to do a contract audit even though the change was rather minor but like just our regular process so we went ahead and did an audit and we also updated our bug bounty program and increased the reward that people can get there so now the max payout there is up to 1 million us dollar and yeah this basically allowed us to now
last week actually we were able to to launch these networks and we're now available with notice safe on polygon uh xti bsc and soon arbitrarily arbitrary we're still waiting for the arbitrary one launch so domain it is available but only for developers but as soon as they open up for for users um we will also launch nsa yeah this also means because we have this app store and the app store is very specific to each network because we're only displaying uh the apps that are available on this network um yeah which makes them also sort of like this app store is sort of now like an overview of like what apps are available
which goes back to this point i made initially that the ecosystem is quite fragmented people don't really have an overview what's available where and like at least for for safe compatible apps we now have this overview of like when you switch to the safe on polygon let's say you just see these apps available for that and if you're building yourself an app that's multi-chain compatible then that definitely reach out to us and let us help you like integrate this sdk so we can also have your app there yeah but now to the challenges uh one challenge was definitely this um he's definitely right like having
like a nose safe it's like a proxy account and it's like a smart contract that you deploy to the blockchain and it's only deployed on this one specific blockchain meaning you have an address save address which is basically similar to your meter mask address but this means that you only control the save on this address on the network that you deployed it on meaning that if you send assets to this safe asset safe address on a different network you won't be able to access these assets that's actually something that that happened rather soon even before we launched our like lay two networks uh last week so we already had a few
people that had saves on on ethereum mainnet uh but they received assets on a different chain and it was like we have some little trick how we could potentially recover these funds like we can deterministically deploy a safe at the same address on a different chain but this means that the the configuration which you deployed it like initially on the on the chain so you deployed on the firm mainnet with like these five owners um and then you change maybe the owners of on the firm mainnet and yet then you can you can deploy the same address at the same same safe at the same address on a different network but only with the
initial owner structure so that's why we're also not providing this as a feature but rather as like a recovery thing like a worst case fallback scenario but yeah this is definitely something that will get more critical as safe will be available on more networks that people need to understand that their safe is only ever available on this one um yeah network and the same challenge was also with with bridges obviously as like more of these side chains and layer twos emerged there were new bridges and they they didn't really take into consideration smart contract accounts so they always assumed like from where you send assets to the bridge
on like the initial chain uh that's the same address where the the bridged assets will go on the recipient chain and this is definitely not something that's working well with with no safe or any smart contract account so we had to work together with those bridging providers that they at least warned the users that this is probably not a like smart thing to do um yeah but that just shows that smart contract accounts they work a little bit differently than regular accounts and hopefully we will get to a point where also adapt developers infrastructure developers will take this more into consideration um yeah uh there's actually quite a few problems with
uh having uh addresses now in this like new multi-chain future so one is that uh like my contract accounts have a hard time dealing with that um but there's also other problems that some might have just a regular account uh but they have a wallet that only supports like a a certain set of networks and that means that if someone sends assets to their address on the network that they don't their wallet doesn't support they also have a hard time getting access to it they can still do it they can import their private key in mr mosque and probably get to those assets but it's still very inconvenient um well it also means
that if i want to receive assets from someone and i want to receive these assets on a certain chain like so far it was clear i want to like get them on a few main net but as we have like more and more like side chains layer twos popping up like i need to actually specify that so i don't receive the assets on whatever binding smart chain where i don't even want to interact with and that's just something like addresses are just not like clearly defined now they're very ambiguous they don't point to a specific account they point to basically 20 accounts at the same time yeah and from the sender side also this means that um yeah they basically need to ask the
other person hey can i send you assets on on polygon or where do you want to receive it it's just some some additional step some unnecessary step which we should solve as a community and there's actually one proposal which would be able to help in this scenario which is this chain agnostic ip 10. mainly driven by pedro from from mother connect and the most recent proposal here would make the the chain id like an integral part of the theorem or the address and that would solve a lot of these problems i mentioned before and would also make it possible that like safe users wouldn't have their their funds stuck and it would just mean
i don't have to specify or like i i anyways need to specify in what chain i want to receive my assets if if i want to ask for assets from someone else and this would just make it a part of the of the of the address itself um so i really hope that we can like rally behind this or like a comparable solution but i think this is going to be a long term problem and it's better that we raise awareness early on yeah so a few takeaways yeah try out notice safe on one of these networks i mentioned x-style bsc polygon and arbitrom soon so make sure to try that out it's uh we're also interested to to see like how
this maybe will uh like bring more user groups to those safe where so far it was it was like 50 dollars to deploy a safe but with these side chains and and layer twos it will be much cheaper so maybe more individual users will start using safe that's something we are looking forward to see and let's definitely fix this ambiguity of addresses um it might impact us with the nurse's safe early on because it just uh yeah by its nature but it will impact many other teams and many other products in the long run so it's just better if we solve this early and just in general let's be more
mindful of smart contract accounts when building apps when building infrastructure it's not just these address things smart contract accounts they also they can't deal with uh some signature schemes if signed persons sign um they they just behave in certain ways a little bit differently and uh it's better to take this into account as you've seen that smart contract accounts are gaining traction and it's in my opinion they will be the future of web3 and it's just good to do not have any bigger problems in in the future to just take them into consideration early on yeah if you want to keep in touch you can join our discord chat.notice.io also follow us on twitter
and i'm going to be around for a couple of minutes outside if you want to talk to me or you just like get in touch via telegram or twitter but yeah that's it thank you yeah there's time for questions uh okay i'm not trying to fully understand why like the difference between a smart account a smart contract account how come they cannot do the same as a regular account instead of signing since there is no way to update um like the evm to be able to actually get feature parity there to solve the
problem i mean that that is potentially possible uh to to make smart contract accounts more core of the protocol itself um there's also ambitions that go into that direction with uh counter-abstraction um like other like initiatives but this is like quite far ahead maybe two years until we see this in reality um so we definitely have to bridge this point anyways thank you hi um yeah it was really interesting to
see all those tweets that you showed of kind of people demanding that you like move the safe over to new chains and stuff and so i was wondering how if all this is open source how are you able to sort of sustain yourself and keep building all this really cool stuff uh maybe you need some like retroactive funding or something in the future like vitalik said yeah um yeah it was definitely interesting what we taught about like this retroactive funding uh opportunity um it's not something we have figured out right now um we can still uh sustain ourselves for a couple of years um like yeah but like long term we are an open source project it needs a way
to to be sustainable uh otherwise it will just die away after some time and there are some some ideas floating around but not being too concrete so i wouldn't mention them right now but i mean on a one-to-one basis i could maybe talk about them outside hi i have a question for the dub integration the uh current integration you showed in the talk is that you kind of have an iframe within a gnosis safe domain is there any idea for some sort of sdk that
i can inject some sort of narcissistic contract in my site so that one ui is again it's a bit convoluted that i have to tell people to go to notice site can i is there any way to use gnosis within my app you can use water connect the noses api allows both on the web interface but also on at least ios we have this feature where you can just connect the safe to adapt wire wallet connect um limits to satellite implementation with the wallet that kind of limits to the wallet connect integrated something like metamask
if most people like uses for example uni swap can you use is there any way possible to have a you know use uni swap from in this website using notice safe or something rather than going to noisy safe side and look at these icons and the iframe to it it's just like a one step button for the accessibility how to say user experience that i have to transfer user to your nosy safe site so that i can they get access to my
site but i wonder if it what's different to using wall connect to connect the safe to adapt and using meter mask or like any mobile wallet like metamask is a plugin so unless you file install for the first time once a user install metamask for the first time they don't have to go to metamorph site every time they access to the southern side you don't have to go to the metamouse site to go to ave or anything right so i'm just wondering like i'm just asking like if there's a technical possible or just plan what you haven't talked about like it that's not in the world map yeah i mean we have thought about having some like browser
extensions similar to metamask that was allowed to do this um but yeah we i mean we can explore this more but um like i don't see much benefit over like if you use metamask mobile as a wallet and you're also just using wallet connect to plug into dabs i don't see a difference there really to either it's a chrome extension or it's a it's a mobile app you need some sort of software that allows you to plug into these steps thanks hi sorry how do you guys regard yourself
you know compared to dell constructors because i mean it looks so that for those teams who are planning to manage their funds there's usually this decision that you have to make whether you would go to aragon to deploy dao you know and you know have tokens you know to market across your communities and so on and have some additional features and then yourselves um with probably limited functionality but then you know easier way to actually set it up deploy and run it so are these like different roads so you guys are moving into some specific directions that would be closer to dell infrastructure whatever
yeah we definitely saw that nostalgia was more more used this year by by daos and then it was like a strategic decision do we try to double down on daos or do we try to go for like a more broader vision and we're actually doing kind of both now we have in hypnosis we have now two teams one is like gnosis safe core and the other it's called gnosis zodiac at this point not sure if that's going to change but notice zodiac is going to focus on building on top of this core infrastructure that we're building like the the dow tooling and knows this safe core is focused on building like kind of like this permissioning protocol like this this operating system that goes below which should be very modular very flexible very
extensible uh not just by by this dow tooling team but by anyone so it can be become like the the framework for the dow tooling ecosystem but it can also become the framework for like individuals managing their their funds or like big corporates or like again it's just like this thin layer uh this access control layer but like we want to have a designated team that's really focusing on this dao tooling and we yeah we're growing the team right now uh if anyone is joining in uh if anyone is interested in this topic um maybe i'm not the best person to talk to but we have actually have another talk by oren he's heading
this this team and yeah definitely would like to get in touch thank you you