|
1 | 1 | ---
|
2 | 2 | CIP: 0381
|
3 | 3 | Title: Plutus support for Pairings over BLS12-381
|
4 |
| -Authors: Iñigo Querejeta-Azurmendi <[email protected]> |
5 |
| -Discussions-To: https://github.com/cardano-foundation/CIPs/pull/220 |
6 |
| -Comments-URI: https://github.com/cardano-foundation/CIPs/pull/220 |
7 |
| -Category: Plutus |
8 | 4 | Status: Proposed
|
9 |
| -Type: Standards Track |
| 5 | +Category: Plutus |
| 6 | +Authors: |
| 7 | + - Iñigo Querejeta-Azurmendi <[email protected]> |
| 8 | +Implementors: |
| 9 | + - Kenneth MacKenzie <[email protected]> |
| 10 | +Discussions: |
| 11 | + - https://github.com/cardano-foundation/CIPs/pull/220 |
| 12 | + - https://github.com/cardano-foundation/CIPs/pull/506 |
10 | 13 | Created: 2022-02-11
|
11 | 14 | License: Apache-2.0
|
12 | 15 | ---
|
13 | 16 |
|
14 |
| - |
15 | 17 | ## Abstract
|
16 | 18 | This CIP proposes an extension of the current plutus functions to provide support for basic operations over BLS12-381
|
17 | 19 | curve to the plutus language. We expose a candidate implementation, and describe clearly the benefits that this
|
18 | 20 | would bring. In a nutshell, pairing friendly curves will enable a large number of cryptographic primitives that will
|
19 | 21 | be essential for the scalability of Cardano.
|
20 | 22 |
|
21 |
| -## Motivation |
| 23 | +## Motivation: why is this CIP necessary? |
22 | 24 | Pairing Friendly Curves are a type of curves that provide the functionality of computing pairings. A pairing is a
|
23 | 25 | binary function that maps two points from two groups to a third element in a third target group. For a more in-depth
|
24 | 26 | introduction to pairings, we recommend reading [Pairings for Beginners](https://www.craigcostello.com.au/tutorials) or
|
@@ -395,7 +397,7 @@ x is negative = true
|
395 | 397 | ```
|
396 | 398 | One should note that base field modulus is equal to 3 mod 4 that allows an efficient square root extraction.
|
397 | 399 |
|
398 |
| -### Rationale |
| 400 | +### Rationale: how does this CIP achieve its goals? |
399 | 401 | The reason for choosing the BLS12-381 over the BN256 curve is that the former is claimed to provide 128 bits of security,
|
400 | 402 | while the latter was reduced to 100 bits of security after the extended number field sieve (a new algorithm to compute
|
401 | 403 | the discrete logarithm) was [shown to reduce the security](https://eprint.iacr.org/2016/1102.pdf) of these curves.
|
@@ -487,4 +489,15 @@ Groth16 (~23% of the execution budget required for a proof verification) were co
|
487 | 489 | IOG internal. PR open for Plutus bindings https://github.com/input-output-hk/plutus/pull/5231
|
488 | 490 |
|
489 | 491 | ## Path to Active
|
490 |
| -Release in upcoming update. |
| 492 | + |
| 493 | +### Acceptance Criteria |
| 494 | + |
| 495 | +- [ ] Confirmation from IOG Plutus Team that this curve support is included in a scheduled Plutus release. |
| 496 | + |
| 497 | +### Implementation Plan |
| 498 | + |
| 499 | +- [ ] Confirmation from IOG Plutus Team that [CIP-0035 Processes](https://github.com/cardano-foundation/CIPs/tree/master/CIP-0035#processes) for changes to Plutus have been satisfied. |
| 500 | + |
| 501 | +## Copyright |
| 502 | + |
| 503 | +This CIP is licensed under [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0). |
0 commit comments