0063 XLS-63d: SignIn Transaction #187
dangell7
started this conversation in
Standard Proposals
Replies: 3 comments 3 replies
-
Is it possible that the arbitrary piece of data the user is being asked to sign is itself a transaction object? |
Beta Was this translation helpful? Give feedback.
3 replies
-
This seems to be a common theme some of the more advanced wallets love to use, limiting what can be signed. eg Xaman if not mistaken also won't sign arbitrary random data as well. Allowing this does then ask the question as to what's next? But see the utility. |
Beta Was this translation helpful? Give feedback.
0 replies
-
I see apps using an empty account_set transaction for this purpose. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Title: SignIn Transaction
Type: Draft
Author:
[Denis Angell, XRPL-Labs (dangell7)
Affiliation: XRPL-Labs
Problem Statement
In the XRPL ecosystem, certain wallets (Ledger) restrict users from signing arbitrary hex messages as a security measure to protect against malicious activities. This limitation poses a challenge for applications that require user authentication through signature verification. As a result, some applications resort to using low drop Payment transactions as a workaround for authentication, which is not an ideal solution and can lead to unnecessary ledger bloat. To provide a more secure and efficient method for user authentication, a dedicated transaction type for signing in is necessary.
Proposal
We propose the introduction of a new transaction type called "SignIn" that includes only the common transaction fields along with an additional field,
sfData
, which is an arbitrary data hex field. This transaction type will be specifically designed for applications to authenticate users by allowing them to sign a piece of data that can be verified by the application.New Transaction Type:
SignIn
The
SignIn
transaction is a new transaction type that allows users to sign an arbitrary piece of data for the purpose of authentication. This transaction type is not intended to transfer any funds or alter the ledger state in any way, but rather to provide a verifiable signature that applications can use to authenticate users.The transaction has the following fields:
Example
SignIn
transaction:In this example, the
Data
field contains a hex-encoded string that the user's wallet will sign. The application can then verify the signature against the user's public key to authenticate the user.Beta Was this translation helpful? Give feedback.
All reactions