From Chaos to confidence: Simulate and clear sign your transactions

EthCC[8] · 2 Jul 2025 · 18:43

Charles Guillemet presents Ledger’s clear-signing and on-device transaction simulation. The presentation discusses these tools as responses to the risks of users signing transactions they cannot meaningfully inspect.

Speakers

Topics

From EthCC[8], hosted by Ethereum France.

Transcript

[Music] Hello. Hello everyone. Um, after all this hacks, I'm going to try to explain how to prevent them. Uh, my name is Charles G. I'm CTO at Ledger and my talk is called from chaos to confidence, understanding and predicting transactions. And at the end of the presentation, there will be a there will be a small bonus. So uh who in the room h owns a ledger wallet? Raise your hand. Okay, almost everyone. And who is in the room as always like blindly sign hash?

Raise your hand. Almost everyone also. Then that's that's not that good. Um it's very risky to sign to blindly sign hash uh because you have no way to understand what it means. uh maybe you are signing the transaction you intended to sign, but maybe you are signing away your assets. Uh when you see a hash, there is no way for you to understand if it's a legitimate operation, if you are um like interacting with the wild smart contract or if it's an intended unintended authorization or malicious payload. Uh that was said right before there are plenty of hacks out there. uh was X was the biggest one last year and um and this year unfortunately we saw by bit by

bit hack so they lost more than one 1.4 four billions USD which is the biggest hack ever. Um and for me there are like several takeaways. Um I think the first one is that like using like when you are a financial institution like a big organization managing like that much money uh you shouldn't rely like on three devices that that that cost like 79 USD like I don't think it's something wise to have this kind of budget to secure 1.4 billion. And the second thing is like that is that like understanding the transaction that you uh that you are about to to sign is uh is really paramount. This is the only way to uh fix this. So clear signing fix this.

What is clear signing? Clear signing is the power of information. Uh here you have like an interaction with 1 in which is clear sign and as a user you completely understand what kind of transaction you are about to sign. You are interacting with 1in fusion swap and you are about to swap 1,00 W medicic to 554 USDT and then as a user you will decide if it was the the transaction you wanted to sign or not. It's completely transparent human friendly and it really like empowers a user um to implement clear signing. uh this is not that easy because uh the device itself is not connected to the

blockchain and it receives like a whole transaction and uh it's very complex for the for the the device to understand to understand the how to pass the transaction. So in order to solve this we have created a standard which is the ERC 7730 which consists in uh creating a high level description on how uh the smart contract is working. So we are working with DAPs. Uh DAPs are going to create a JSON file that describe on a high level mode how the the smart contract is working. What are the the name of the method? What are the parameters and and so on. So the idea is um is to create this JSON file to submit it uh to for review uh to our GitHub

repository and uh and then we have all the information that are necessary uh for the device to understand the transaction. On the wallet side, uh we like it's supported within the JAR live and uh and if you are a wallet and want want to integrate this specific feature, you only have to integrate the the device SDK uh and partner with us in order to make this a reality. The device management kit is um is a high level library that allows to uh to discuss to communicate with the device. you can discover different devices. You have the connection, you can exchange data. You also have like state management um and OS command. So, it's a high level

library that really is uh the process of uh integrating ledger devices into your stack. Uh let's go into like a very um um successful implementation example. Uh so I'm going to walk you you walk you through the the clear signing for a so we have created um a tool that will ease the process of creating this JSON file and um if you are an a developer you're going to this tool and you will input the address of your smart contract you will also um like give the information of the owner of the smart contract a name of the developer the URL of the of the of the DAP and then uh the tool will

detect automatically the AI of your smart contract and then you will be guided through um the the tool in order to uh provide the name for the method the uh the name for the attribute the parameters and also the type of the parameters so that the device can properly passse uh those parameters and display them uh on on device and at the end of the process uh the JSON file is created by the file uh you only have to um submitted on our GitHub repository. So the GitHub repository is um is hosted by Ledger today but it's intended to be a public good and and we are we are really happy to decentralize it if the if the Ethereum Foundation wants to uh

to use it uh to to host it uh we will be uh happy to to to do so and when the the the JSON file is submitted to the GitHub repository then we are doing a curation process uh we are verifying the the the JSON file and that it matches with the smart contract and finally we are signing it so that our devices can recognize uh there's um there's JSON file and whenever you are interacting with a uh the the device receive the row transaction to be signed along with this JSON metadata file and then the device is able to u to understand how to pass the transaction and how to uh display uh the necessary information for the user

to uh to decide if he wants to to interact with a and then you have the name of the contract, you have the the amount to borrow uh and everything necessary to uh take a decision. So if you are a DAB developer, it it really it really takes like 15 minutes to create this JSON file. Then we will need a few days to review everything and then you are providing clear signing to your to your users. So if your DAP is uh is not clear signed yet uh please take this 15 minutes.

We have started with uh with EVM and Etherum but the idea for us is really to clear sign all the things. Uh so we are continuing discussing with different DAPs to make sure that we have this JSON file and we are going to expand uh the methodology to the to the different chain in the ecosystem. So clear signing is is something very important and it would have avoided like all the hacks that that we have mentioned and to the safe specific smart contract which is a little more complex.

uh we will have like more announcement to do like in the in the near future just the teasing uh we are working on on creating um a security layer in order to uh to clear sign uh safe uh but sometimes it might not be enough because with clear signing what you have is um an understanding of of what you are signing but it doesn't give uh really like information on the risk for uh the transaction you're about to to sign and that's why we uh I've created a transaction check on device. So the idea is to give uh to the user uh with like um a risk assessment for a specific transaction but on device and it's really important that it happens on

device because uh if it happens on your smartphone or on your computer you might think you like the transaction that is simulated can be uh can be be one and the the transaction that you are signing can be another and this is exactly what happened to WX and and Bybit um on their front end the transaction was simulated Everything looked fine. Uh but this they this signed another transaction. So that's why it's important that this transaction check uh happens on device and it's really like complimentary to clear signing. Again the device is not connected to the internet. So uh there is some magic behind this. Um the way it works is pretty simple. Uh when you are about to sign a transaction uh you're

going to connect on a or on your favorite wallet. Then the transaction is crafted and before sending the transaction the raw transaction to the device it's sent to a third party that are specialized into a risk assessment for transaction um mentioning like a blockade cyers and tenderly and they do their magic meaning that they do transaction simulation um they conduct a risk assessment with their own uh uristic and then they provide like a risk assessment report uh that will be uh given to the device And then on device uh you are receiving the row transaction to be signed with the JSON file in order to clear sign it plus this

risk assessment report and on device this is what you what you see if the transaction if no threat is detected it's verified like nothing is displayed on on device and if a threat is detected then then you are um prompted with this screen you can't miss it like it's very very obvious. uh there was a critical threat detected and and then it's uh it's up to you. You can like be back to safety meaning you don't sign the transaction or if you if you feel lucky today uh you can uh you can accept the threat and continue. Um again like we what we want to do is really to empower your user but at the end users take enlightened enlightened decision with uh

the information that we are providing them. So if they really want to sign this risky transaction, it's still possible. And we launched this specific feature only two months ago. Uh it's only available on flex and stacks. And in two months uh we prevented 20 millions uh in losses. So it's already very big. Uh especially like if we compare to um to the the time it's live and the number of devices it concerns. So if you don't have a flex on stacks uh I really like encourage you uh to to have one in order to benefit from uh the clear signing and also to the transaction check uh on device and this number will continue to uh increase over time and no doubt about that. So we are really like preventing

hacks uh on the on the field. Um, a couple of uh useful links. Uh, if you are a DAPS and want uh to be clear signed, don't hesitate to scan the QR code and uh and and provide your uh JSON file to be clear sign. Uh if you are a wallet or a developer there are also the corresponding uh QR code uh that can be can be useful. As I mentioned, I have a small bonus. Uh we also have announced uh the ledger recovery key recently and the ledger recover key is an alternative for uh your backup. It's a small NFC card and um so now you so you you know pro probably the recovery sheet. I still

advise any user to have a recovery sheet with the 24 words to store this recovery sheet uh inside the secure location maybe a safe in a bank or anything. We also launched uh ledger recover two years ago. It was it was a famous uh launch and it's an it's an online distributed backup uh that you can enable by proving your identity. Really cool product um and it's a pet subscript subscription. So if you really don't like this uh product, you don't have to pay for it. And today we are announcing uh this new product which is Ledger Recovery. Uh it's a small NFC card, a squared one. Uh easy to pair and use. Uh you will unlock it with a dedicated pin

and you will interact with it using your stacks of flex. Um again at least with security. So uh it was designed with a very high level of security in mind. Uh the NFC card embeds a secure element. uh inside the secure element we have we have built our own application which is uh that you can review it on on GitHub and then we are mounting a secure channel between the flex uh and the and the NFC card the recovery recovery key card this secure channel um gives you like mutual mutual authentication guarantee meaning that the card proves it's ledger one flex prove it's ledger

device and also the card proves It's this one. Um there is a there is a pairing code exactly the same type of experience that you have on Bluetooth. So that you are sure that you are discussing with this specific card and not another card in the room. So everything is uh really secure. Uh then you input the pin to unlock the card and then you will allow your 24 watts to be back up in into this card. There is a wipe me mechanism meaning that if you input like three wrong pin for this NFC card it it would be wiped. Um you can use like multiple card if you want to swap from one card to to another. Uh it's uh very uh very easy and very

convenient to uh to back up and restore. So I'm really happy to announce it uh today. So that's it for me for today. Uh thank you for your attention and if you have questions I guess we have some time. Any [Applause] question in the room? Uh, thanks. Yeah, maybe I missed it. But why is netspec not enough for this service? Like why does the developer needs to interact with the system to uh provide the JSON file? What is not enough? netspec like the inline documentation of smart contracts or so

yeah with the API you will have the the we have some name of the method but sometimes do you don't have the type of the of the attribute and the the attribute and the parameters for the method um and uh and also it needs to be provided by uh the developer so that we can curate it uh but there are other sources uh but we what we want is really really to create like a partnership with DAB so that we have there's their information and they are responsible for uh for for it. But yeah, there are many sources. The question is to trust the source and also to have the the right uh format for for for our ERC 7730.

Any other question? Thank you for your talk. uh about the NFC card you just uh presented um is it protected against the NFC readers like the 3.0 device or stuff like that? Yeah, as as I as I mentioned like you have like the you have the NFC part which is like um only the communication channel but on top of this communication channel we have created our own secure channel that is authenticating both part. uh meaning that the card is has like a cryptographic warranty that discussed with a flex and the flex has cryptographic warranty that you discussed with the card and also with this specific card and as soon as this

authentication is established then uh they are sharing a secret to encrypt everything on the between the card and the device uh so that it's end to end secure. Any other question? When you send a transaction to the third party for simulation, where is that uh request initiated from and how do you verify on device that it was an authentic simulation? Yeah, very good question. Um, so this uh this call happens by the is performed by the device SDK. So the device SDK is the layer between uh between the the device

and the wallet. Uh and the the device SDK will uh create this request to block cyverse and and and tenderly and then um the risk assessment report uh is signed uh by blockhead and inside the report there is uh the hash of the transaction and the signature by blockhead. The device will receive the row transaction and the risk assessment report. The device will verify that the risk assessment report was signed by one of the third party that we that we mentioned and secondly it will verify that the risk assessment matches with the specific transaction in order to avoid uh the kind of attack you mentioned.

I see a question at the bottom. Um when you have um a safe calling a time lock calling a contract calling a contract in more complex setup how do you do clear signing in this case? Do you have nesting of the calls? Do you analyze the sub calls? So this is the this is the challenge that we we are working on. Um the safe is a little more complex than a regular smart contract because you can uh you can do the nested transaction and the embedded call data and so on. uh and we are working on this um I don't think we we will do like a recursive things so that you can like sign a transaction inside a transaction

set the transaction but for safe for one level uh it will work this is what we are working on any other question okay cool thank [Applause]