You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* first draft remediation of CIP-0049
* proper RFC-822 format name + email address
Co-authored-by: Ryan Williams <[email protected]>
* proper RFC-822 format name + email address (2 of 3)
Co-authored-by: Ryan Williams <[email protected]>
* proper RFC-822 format name + email address (3 of 3)
Co-authored-by: Ryan Williams <[email protected]>
* evidence of Active status as of Valentine HF for SECP
---------
Co-authored-by: Ryan Williams <[email protected]>
Support ECDSA and Schnorr signatures over the SECP256k1 curve in Plutus Core;
13
-
specifically, allow validation of such signatures as builtins.
14
17
15
18
## Abstract
16
19
17
-
Provides a way of verifying ECDSA and Schnorr signatures over the SECP256k1
18
-
curve in Plutus Core, specifically with new builtins. These builtins work over
19
-
``BuiltinByteString``s.
20
+
Support ECDSA and Schnorr signatures over the SECP256k1 curve in Plutus Core;
21
+
specifically, allow validation of such signatures as builtins.
22
+
These builtins work over ``BuiltinByteString``s.
20
23
21
-
## Motivation
24
+
## Motivation: why is this CIP necessary?
22
25
23
26
Signature schemes based on the SECP256k1 curve are common in the blockchain
24
27
industry; a notable user of these is Bitcoin. Supporting signature schemes which
@@ -143,7 +146,7 @@ The builtin operations will error with a descriptive message if given inputs
143
146
that don't correspond to the constraints above, return `False` if the signature
144
147
fails to verify the input given the key, and `True` otherwise.
145
148
146
-
## Rationale
149
+
## Rationale: how does this CIP achieve its goals?
147
150
148
151
We consider the implementation trustworthy: `secp256k1` is the reference
149
152
implementation for both signature schemes, and is already being used in
@@ -171,7 +174,7 @@ It may be possible that some set of primitive can avoid both of these issues
171
174
CIP](https://github.com/cardano-foundation/CIPs/pull/220)); in the meantime,
172
175
providing direct support for commonly-used schemes such as these is worthwhile.
173
176
174
-
## Backward Compatibility
177
+
###Backward Compatibility
175
178
176
179
At the Plutus Core level, implementing this proposal induces no
177
180
backwards-incompatibility: the proposed new primitives do not break any existing
@@ -182,12 +185,16 @@ On-chain, this requires a hard fork.
182
185
183
186
## Path to Active
184
187
185
-
An implementation by MLabs already exists, and has been [merged into
186
-
Plutus](https://github.com/input-output-hk/plutus/pull/4368). Tests of the
187
-
functionality have also been included, although costing is currently
188
-
outstanding, as it cannot be done by MLabs due to limitations in how costing is
189
-
calculated. Costing will instead be done by the Plutus Core team.
188
+
### Acceptance Criteria
189
+
190
+
-[x] Include tests of functionality with implementation.
191
+
-[x] Satisfaction of CIP-0035 requirements ([Additions to the Plutus Core Builtins](https://github.com/cardano-foundation/CIPs/tree/master/CIP-0035#additions-to-the-plutus-core-builtins)) including costing.
192
+
-[x] Inclusion of SECP in Plutus core ([as of Valentine hard fork](https://docs.cardano.org/cardano-testnet/about/secp/)).
193
+
194
+
### Implementation Plan
195
+
196
+
-[x] Provide an implementation: by MLabs, [merged into Plutus](https://github.com/input-output-hk/plutus/pull/4368).
190
197
191
198
## Copyright
192
199
193
-
This CIP is licensed under Apache-2.0.
200
+
This CIP is licensed under [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0).
0 commit comments