5

I am wondering: Is there another way to authenticate a user (wallet) on Cardano instead of sending ADA?

Obviously a beginner question, but I am just starting to wrap my head around all of this :)

2 Answers 2

6

Theoretically yes, you can ask wallets like Nami to sign an arbitrary piece of information for you and verify that signature against the addresses pub key hash. Since this transaction would not have been submitted to the blockchain, no fees should be involved. Note, I haven't tried this myself.

For Nami, check out the call to signData on this page https://github.com/Berry-Pool/nami-wallet.

In fact, CIP-8, explores doing this on a more official basis, https://github.com/cardano-foundation/CIPs/blob/master/CIP-0008/CIP-0008.md

5
  • Wouldn't this introduce trust into a trustless system? By that I mean you are asking someone to sign something and have them trust that you will just disregard it and not submit it. You would also need to be very transparent about what was being signed. With that said, I would be very interested to see if this would work. Nov 1, 2021 at 19:40
  • No. Because they are signing an arbitrary piece of information and not a real transaction, this cannot be submitted to the blockchain. The information would need to contain enough information for the signature to be verified. As for the contents of what was being signed, I would agree, this should be made transparent to the user.
    – Matt Ho
    Nov 1, 2021 at 20:26
  • Right, but wouldn't they be trusting you that it is in fact an arbitrary piece of information and not a real transaction? In other words, what keeps you from saying it is X but it is actually Y? Nov 1, 2021 at 20:42
  • Today possibly. But as wallets mature, I would be surprised if wallets didn't prompt you with some clue as to what you were signing.
    – Matt Ho
    Nov 1, 2021 at 20:46
  • 1
    So I just checked and it looks as Nami does present different messages depending on whether you're signing a tx or arbitrary data, so that's a step in the right direction.
    – Matt Ho
    Nov 1, 2021 at 20:55
2

Short Answer: A transaction needs to be singed with the owner's private keys.

Explanation: To be able to authenticate a user to a wallet, you need them to prove they have the private keys to that wallet. In order to do that, you need them to sign a transaction, which could be the sending Ada method you mentioned. There could be an opportunity to prove this identification with other types of signing transactions, but those will still have a transaction fee, thus costing Ada. Update: As pointed out by Matt Ho, you could potentially not submit the TX to the blockchain and therefore not have to pay the transaction fee. However, this could introduce a level of trust in the trustless system. Without testing this, it is hard to know the details of this.

Solution: Atala PRISM is an identity solution worth exploring. Although it is still in development, this will be a way to manage identity.https://atalaprism.io/app

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.