Meta-Transaction, Pandora's box or weapon of mass adoption?
ETHCC 3 · March 2020 · 32:42
Vincent Le Gallic examines the opportunities and risks of meta-transactions as a route to wider adoption.
Speakers
Topics
From ETHCC 3, hosted by Ethereum France.
Transcript
as a platform for integrating election in any business i inves already existed CEO and co-founder and this is Frederik de Matos VP engineering for ortho we have been working on meta transaction for several months and to talk about this exciting subject we imagine a game this game is it gem its reference to Def Jam as you know the famous epub labelled so this game is a trading game you can trade blockchain card on the blockchain a quick presentation of our main characters let me introduce you Leia the
developer and Alice the end user let's do a little focus and Leia profile as Leah I am a full-stack developer I'm completely nervous on a theorem my goal as our focus on my use case and create a seamless user experience for my user and I need to go fast as Leia because of my previous developer experience I believe that a simple API must exist on a theorem for example I already used type and I don't have to manage a credit card or bonking protocol or it's very simple and the safe system and it's exactly
what I am looking for leah is very confident for know she decided to test some famous application on atrium ecosystem on foreign bases not italian ecosystem but she decided to try she decided to test put two desserts in the last row three she decided to test so how the global fantasy football of a soccer game and along the mobile wallet with integrated the g5 service let's start by conveys for Leia it's very easy to use it's like a traditional application but there is a full custodial Lea must trust
conveys for poor to deserve it's very interesting because it's fully non-christian but it requires an external unbalanced addition like metal mask or fought magic or another wallet solution Sora is it says use this use case is very similar to to add game so it's a classic onboarding with email password nickname but you can you can take the control of your asset later with by connecting your meta mask account so it's it's interesting concept and finally our law it's a kind of
improved wallet the onboarding is very simple there is the censorship resistant and there is a fully non-christian but Lea is is very lost because for application for different onboarding solution how to choose a solution for each gem each valid solution claims to be the best and I didn't want to spend so much time and I decided as Lea sorry I decided to be user centric and focus on the need of Alice my end user so as Alice I want to try to my favorite
rappers cat game in my iPhone because I'm a mobile first generation gasps Keys nods I don't know what it is and it's not my subject and I like the idea of don't trust it gem I like the idea of eiling's of having real ownership of my accounts so to summarize as Lea's the developer I want to I don't want impose external wallet solution to my user I want to build decentralized solution so non custodian solution and if my user have to pay as some gas or need a crypto to use my service I'm
sure that my conversion rate will be too low so this is my constraint so I think I think we are go for the implementation step so I think everything will be fine right today I hope so too and Leo - so what about the gas problem actually for a lease bank crypto for gas is too complicated she don't know what his gas and she actually don't want to know about it so yeah we have to under that problem so recently she just go to internet trying to find some solution how she can help
at least with the gas and she found at me that Redemption should be a good solution for this problem so what actually have methods or Junction is like a collection but the usurer will not do at least in the production you would just send me a transaction intent that would be a message it would contain the parameter of the transaction she want to he want to do with the addition of sparse contract so the transaction will be actually executed values per contract the user sign the parameter send it to her lair the her lair will encapsulate the transaction inside another production and then call the dispatch contract to build it a more
clear we have something like that so the user need to have a wallet on you a a new way is a what we call external oñate account is the traditional account on ethereum is the couple to leak and private key so the user of his UI he will want to call a method on his gem contract so the data will be the mitterrand call using the parameter and his ua he will sign a message send a message to the Jaleo doha layer will construct the transaction the transaction will contain the parameter of the intention of the user the signature the Hollyer send the transaction to the proxy contract so you
pay for the gas and then the first contract will execute execute the transaction and the transaction will happier as inner transaction if you looking at metascan you can see of some parties in your transaction and you can see the the user collection intention and then the Ejim method contract is it's called actually there is a model of implementation but still very still another model we are here we have a proxy contract that is in charge of executing the transaction but the metal transaction capabilities also can be directly in agent contract but we choose that below so for the first part at least need to have a way to sign a
messenger source you need to have a wallet or on UI so what are the available solution let at least use external wallet Lee I can manage to use those key inside her back-end or she can integrate the wallet inside her mobile application for the first solution external wallet today I have lot of existing solutions such as for magic parties even made a mask is a somesome choice that you require really really few development for Lea because today with some tool like well free connect it's quite easy to interrupt a different kind of RAD
within without having to manage the complexity so for the developer it will just have to prepare the message send the message to the wallet of the user and then the user will just validate and sign the message and then the transaction can be executed that's quite good for yeah but for the user we will have to create a wallet on an external services so during registration flow you can lose some user because when you have to leave your services to good on us or another or felt part service to create our wallet second solution is allez I can decide to to manage all the
key of the user inside her back end that would be simple for the user we even don't know the F key that didn't compare to good old web 2.0 internet services the user just connect using his email and password and then everything is vanish on the back end so by design it will be mutually dice because I can connect on my mobile and press all it the same so for the user is quite simple but they have a problem with that our philosophy blockchain should be decentralized and she don't want to have access to her user key also if you decide to do that she will have some security challenge where did she will she stole a key did you'll use an HSN
store in the database will encrypt the data if she include the data where the encryption key will be stored so we'll have more and more question to - to answer with the complex solution she'll have to do complex development and so make her software more common can come out later last solution is to integrate well at inside the client app so that is a that respect what won't here she liked to be non-custodial so she can access the key of the user it will be simple for the user
I just have to install a gem application and we have in words inside and it's adapted to mobile because today whether you are on iOS or Android Android you will you will have access to secure on cloud so that is a rap sheet form of oil but the inconvenient to be she will have to develop a wallet for iOS and Android Android and to store the private key signing on mobile is not as simple as in JavaScript JavaScript web the web 3GS or hom Jess that is a really convenient to use for mobile there is no such libery existing
and question is about recovery but we talk about that later what happened if a yeast lost or broken phone and for the browser like we said mobile and have a secure Enclave but browser to have such solution so what a lease will decide for yeah we decide for Alice actually at least mainly use our phone she seldom use a computer on a browser she don't want to manage key and to speak respect Leia's wish to to be decentralized and on question she decide to build a wallet inside her application so we just answer
of the wallet question so right now let's talk about her layer so with Metatron traction layer will be in charge of sending all the trajection of her user so what I can say we can say that with great power comes great responsibility so it would be she will have some complex development to do if her service of success she will have to undo a lot of transaction and I am NOT we have something like we call the pending transaction limit for example for one occur for one given account on gas the Luud is 264 so the queue of a
node cannot handle more than 64 transaction pending transaction for a given account so if she want to end a lot of contraction rehalia we have to manage different account sure she can scale the number of transactions shown to to execute still in the in the question of performance she will have to manage the knowns so the knowns is some system provided by health Aryan to avoid replay attack so the news can be considered as an idea of of a transaction so for one account for each transaction the nodes will be incremented it so you you cannot replace a transaction East which was already
executed so for that for the nuns she will have to manage queue for a different I couldn't offer offer mallet and each transaction should be ordered order and provided with the good note that can use on some program of synchronization sometime the known she have locally can defer from the knowledge that is actually on the blockchain so if you have synchronization problem or you need to correctly manage the error at all if a transaction fell she shouldn't increment the known that can lead to to some problem another part is a transaction status because actually we have two kind of transaction we can consider we have two kind of transaction the main production that is sent by the the whole
layer that is the real foundation and it's I we have the inner transaction that is the intent of the user and that both from election have independent status so for example if she just focus on the main transaction status there can have some raw and she don't know some that can lead to her application to don't work correctly so she need to define a strategy how to to synchronize two statues and and and that that's why she should have to to to find some strategy to correctly synchronize the inner and the main production so if this was our first transaction fails we also have to provide some retry system to be sure that we executed last part because
she have I come to manage for holily to manage guess so she need to full of with the balance of the different account she would have to buy crypto and she will have to store the account the icon will contain a Taser so she need to securely store the account maybe with the nation with the database and that is help to her but she need find solution so we talked about the whole area so now let's talk about proxy spot contract before yogi is speaking to about the spot contracts we need to decide something where will be the identity of the user represented where the asset will be
honored will be will be honored by the UA or there will be only by the spot contract if you decide to to use the UI as identity that's is quite simple should have contract to deploy and you I can sign this edge you always need to sign message so that is important so the UI will always always be indeed but the program fan Aoi is if it's lost or stall you cannot recover if is exposed to an attacker the asset cannot be recovered and the other part is with meters front rejection because the sender will not be the identity of the user you need to adapt your contract it
for example to our Citroen RC 20 to work with the mate attraction and to define another sender and by default is not multi-device because if you want to share your key with your browser or your phone you need to compute the key on inch device for the smart contract is it on GT that provides some recovery the UA can be replaced the owner can be replaced by design is a backup because it's on its backup it because it's an unchain it directly works we stand out because the sender will be the real owner of the asset if you want to have more device you can add more UI one for each device and you if you want to add
feature to the identity for example we can think about limiting the number of rejection that can be for one day it's possible because it's part homefront the contour part is that that need to deploy a contract so to have user your user we have a cost today they're not really have standards so you will need to look for the different Christian and find the one is a match question it or develop your own solution and the contract does not that same message but for yeah it seems essentially for the recovery concern she she thinks she will use the contract as identity so she begin to look for the market what
is the available 9 is there some standard from a debt reduction no people speak about proxies much relates identities she's quite lost she find Ignasi safe that is a shifting is really good is a HD wallet with Moochie sig capabilities that seems really good but little complicated on doing more things that she actually needs she also find the Austin Griffin boon star proxy that is actually the who can say the first implementation of beta reduction that is a very clear and simple things to that she understand really horribly worked the the meters production she continued to look she found the earth our c-17 68 67 66 do you
politics he lay both seems pretty good but it's really hard to to to decide you can go to look by yourself to make to make you own advice but for foria is not simple she find two things naturally rated with millet reduction the first one is the AIP 725 is a desire of tundra I don't join a thorium actually the Proteus part contract that can be controlled by one or multiple key and that can provide transaction execution for her is really simple and correspond to her needs so she she probably visited another interesting things is the AIP 712 before
when the user has to sign a message it just see some not really friendly exert a similar chain and don't we know what his signing with the EAP 712 if the the wallet implement the stand out you can clearly see what he's going to sign so for for lights seems to bring in the goods in the good way so she think she want to use that for her contract so at the end she didn't find what she's looking for she was looking for already packaged solution but that matter she will go on AIP 725 with meta trajection capabilities in fired from the Pulsar proxy and to and she will structure her message using the
EIP 712 so she have a contract but that's not all the she didn't finish to solve problem what happened if Ali's broke her phone oh can she get back her report card so she have at refrigeration the good old 12 world can authorize other key on the contract or another one like her recovery some solution that's fair already implemented by argent so the good old 12 worlds that everybody know when you know blockchain you know the twelve worlds but that is not really simple when you are an mobile context
for example you have a friend on a restaurant you speak about - super cool application at JMU you just installed and you want to share with your friend we don't have paper or our pen and when they come to the step to write down there are 12 well we try to make a screenshot and just really is that realize that the application do not allow screenshot so it just close the application say okay we do it at home and probably never come back to to finish the widget load recession like we said we have a spot contract that can be owned by different key so another solution will be to allowed Auto roulette such as meta mask or ledger wallet if they draw well that you will have a good level of security and if you
broke your phone you still have to close our key that can control your contract so you don't lose your assets but the program is a lease is a naturally advanced user and she don't really want to have a wallet on a ledger on meta mask last one maybe do more 61 is the subtle recovery actually that is based on trust so when ad is register on the ad gem she have the possibility to define some what we can call guard Guardian she have to good friend that that also use Ejim so she can define Jack and Peter as a guardian so if one day she broke her or her form she can start a recovery
process and Peter and Jack we have to confirm Ali's identity if I confirm she can get back the power on her contract but because you don't always have a friend using the same system as you do some sources as you layer will probably have to develop our home guardian' system because no Ally's email on phone she can provide some services with multi-factor authentication to help at least to recover our contract we speak about a gem but we can imagine that imagine like author company can provide guardian' system to help or to get back
control of a contract so at least she don't want to manage key don't work 12 world she don't want to so our Poirier will also have to develop that complex system guardian' max system so if she wants to meet all Ali's expectation she will have to work hard and she we have to build a gem mobile application build a gem back-end develop a gem contract develop and deploy part contract for develop for users develop a wallet for her mobile application developer ha layer to send a user's production developer recovery system have an access to the blockchain by crypto or token to pay the girls at that
time Lea feel really depressed shifting oh my god a lot of things to do actually she just want to focus on what have value for her her mobile application her back in her contract for her other pal are just plumbing she have to do it because today there's no standout on his areum for that part but her value is not here so that's why we we built Forks I'll thank you for the yes rock side our goal is to create first-class developer experience we want to push a solution consistent with decentralized technology and our culture is try to solve real problem it's why we focus on features
that have added value for the end-user just to do one line about Rockside the solution is based on meta transaction it's a kind of decorated web 3 provider for develop you don't need not no key no gas and for the end user it's a free non-christian and it's a completely invisible and white labelled solution the three main feature of our IP is deployed identity smart contract relay messages with method transaction and manager is aghast and about our SDK as the key sign messages on iOS for example and send
gasless transaction we ask a question it's time to try to answer Pandora Box of weapon of mass eruption first the subject is very large and in constant evolution for example this recent initiatives are very good and as developer you need to check gas station Network and the last post of meta mask about meta transaction in my opinion it still have built it still be difficult for non production expert to implement this solution but it's absolutely necessary to check this version so depending on the maturity of the user
external wallet solution will emerge or not thanks to my bank for example multi-factor authentication is becoming mainstream we commit because I think wallet is not necessarily wallet like meta mask is not necessarily an an obstacle to abduction but nothing is abuse we don't know here are some things to consider when you try to using the method production is not the perfect solution and there are still challenges to overcome I have listed some limitation here you must note this
limitation but often we think when you try to build a non-christian application for your end user method transaction are the best solution here's our some poor meta transaction arguments we talked about a lot during our presentation I'm not going back in detail on it but just remember that it's a powerful concept not easy to implement and it could be the weapon of mass adoption of a terraeum we hope the Metra transaction are something clearer for you know and if you have some question don't hesitate you we are live today we have some
startup and we have we walked with industry leaders on this subject we have some trial API key if you want to try our service and we will be very happy to have your feedback so don't hesitate to test our product maybe we have time for questions I think so yeah okay all those microphone ok do you have any question ok you choose ok how do you work with stable coins like maker die yeah actually that is based on some
wallet so actually that's just because it's a contract that that can work with other contract geography so it would be compatible with mercurial actually we also can provide some rum services to buy the crypto and help the user to to to access to the crypto I think you can store your asset on your proxy contract because often it's your identity on Chan so today we don't provide any system to convert yet - Krypto but tomorrow maybe we can include a service like while moon moon pay because I think tomorrow all user want to store
value on the identities not contract I had that question about relayer yeah what does incentives incentives of the relay actually depend on the implementation we believe maybe for Leah should not really have incentive so how incentives the user used her services so she will have some compensation for hurting the production but I think you may be referred to the Jason with the the rewards for the Hadiya yeah yeah that just is a choice
of implementation actually have some choice you want to provide to to can use different her layer and depend on the on the GSM system so you will have to provide a few walls to the Hollyer but in the case of Leah how the world is the her user use her services so she tuned it to 12 robot I think the good example is our our rompe the gas only for user for our own services and the business model is not and based on the gas is based on fees on services like the Yahoo or we understand or not the gas is not a business model
in in my mind so the business model in our in smart contract and if and I pay the gas to to because I want more user on my tab so my business model is not make a commission on the transaction fees so I mean we layer based was a transaction to be sent to the network user doesn't have gas in our example the ha layer is at gem so it's like normal web application I pair the earth the earth of my website and when my user
make a request on my website I pass the cost of Amazon or because my business model is not on the fees on the network Ruiz I'm maybe it's not clear no okay anyway we can discover of the question what do you think about replaying metric transactions as to ensure for the users that his major transaction is applied to the chain where it filed it failed the first time it was applied yeah
depend the reason of the failure but if for is a missing some gear to execute the transaction that you should be good reason to reply it if is the transaction that is not well so if there's no reason to reply the transaction but if you just for you can see infrastructure problem so I guess that is important point you can replay this reduction by resting at the gas another one no thanks to you thank you very much [Applause]