-
Notifications
You must be signed in to change notification settings - Fork 81
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SIP-018 Signed Structured Data #57
SIP-018 Signed Structured Data #57
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for submitting this SIP! Based on my initial read, my recommendation is to split this SIP into two or more SIPs with the following proposals:
-
A SIP that proposes
to-consensus-buff
, which is a breaking change and thus needs aconsensus
consideration. It could activate with, but no sooner than Stacks 2.1. -
A SIP that proposes a data signing and verifying scheme built around
to-consensus-buff
that recommends signed data begin with a canonical preamble that encodes a message prefix constant, a domain, a chain ID, etc. This could activate anytime afterto-consensus-buff
goes live, and it does not needconsensus
consideration.
I took another pass at this, in light of the recent OpenSea phishing attack. While I stand by my belief that discussion of |
Just as additional context, Verifiable Credentials are a second type of structured data that wallets should support |
Marvin - a question on making the domain info stronger by eg including domain names and user agent info? cf. EIP 712 says this..
|
Hi all -- just wanted to let folks know that I've implemented support for interacting with wallets that support this standard within micro-stacks: Relevant versions: Some docs: Note: I have also implemented support for recoverable signatures in both RSV mode (like this sip expects) and VRS mode (like legacy stacks functions used) |
Did another pass. Let's go ahead and advance this to Accepted 🎉 Before we can advance to Recommended, I have two outstanding comments that need to be addressed. Also, @kantai (who is now on the technical CAB) needs to make a pass as well. |
SIP document updated with the new "SIP018" prefix in 318bad3! To everyone that was/is implementing SIP018: this is a BREAKING CHANGE. The prefix has been changed from a single-byte If you are curious why, see this discussion: #57 (comment) The reference implementation has also been updated to reflect the change: |
|
This looks great to me, just had some superficial comments, and then we can move this to recommended! |
Implemented suggestions and moved to Recommended. |
Cool! Do the authors feel that this is ready for activation? |
Yep. But will give @janniks time to respond to the last open conversation. |
Wanna ping me when it's ready? @janniks @MarvinJanssen |
Ready to go @jcnelson |
Cool, it's now listed as "activating" in the README. Can you set the status to |
Done! |
Looking at the activation criteria:
Do you think both have been met @jcnelson? Hiro Wallet as well as the Stacks Ledger applet added support for SIP018 messages and |
Just an update on this -- we will merge this when 2.1 activates on mainnet. |
The Signed Structured Data specification proposed in this SIP describes a standard way to deterministically encode and sign Structured Data. Structured Data is data that can be represented in human-readable format and used in applications and smart contracts. The aim of the standard is to produce signatures that are straightforward and inexpensive to verify by smart contracts.
Reference implementation:
Requires:
to-consensus-buff
/ CV serialisation in Clarity as described in Feature request: allow hashing functions to hash other Clarity types stacks-network/stacks-core#2693. I am currently using a custom REPL / Clarinet that includes this function. I will make an effort to publish the branch as soon as possible.See also: