edits
This commit is contained in:
parent
dece937665
commit
05969ce7cc
|
@ -20,7 +20,8 @@ This post is borne out of a best effort of how far "zk on Cardano" can be pushed
|
||||||
## What is zk?
|
## What is zk?
|
||||||
|
|
||||||
There is no shortage of explanations describing what zk is
|
There is no shortage of explanations describing what zk is
|
||||||
( _eg_ [by Vitalik](https://vitalik.ca/general/2021/01/26/snarks.html) or [a full mooc](https://zk-learning.org/) ).
|
( _eg_ [by Vitalik](https://vitalik.ca/general/2021/01/26/snarks.html){target="_blank"} or
|
||||||
|
[a full mooc](https://zk-learning.org/){target="_blank"} ).
|
||||||
There is also a reasonable breath to the field of zk that includes things like distributed compute.
|
There is also a reasonable breath to the field of zk that includes things like distributed compute.
|
||||||
Zk involves some really neat maths that lets you do some seemingly magical feats
|
Zk involves some really neat maths that lets you do some seemingly magical feats
|
||||||
and pairs well with blockchain in extending what is functionally possible.
|
and pairs well with blockchain in extending what is functionally possible.
|
||||||
|
@ -28,7 +29,7 @@ Let's stick to a simple and prototypical example.
|
||||||
|
|
||||||
Suppose Alice and Bob are playing battleships.
|
Suppose Alice and Bob are playing battleships.
|
||||||
The game begins with Alice and Bob placing their ships within their own coordinate grid.
|
The game begins with Alice and Bob placing their ships within their own coordinate grid.
|
||||||
They then take in turns picking coordinates to "strike".
|
They then take turns picking coordinates to "strike".
|
||||||
If they hit nothing then their turn ends, but if they hit a ship then they strike again.
|
If they hit nothing then their turn ends, but if they hit a ship then they strike again.
|
||||||
The winner is the first to strike all coordinates containing their opponent's ships.
|
The winner is the first to strike all coordinates containing their opponent's ships.
|
||||||
|
|
||||||
|
@ -61,10 +62,12 @@ In applications this is important because Bob might not be able to lie anymore b
|
||||||
## Sudoku snark
|
## Sudoku snark
|
||||||
|
|
||||||
Sudoku snark was the entrant to Emurgo's hackathon.
|
Sudoku snark was the entrant to Emurgo's hackathon.
|
||||||
The summary-pitch-story deck is [here](https://pub.kompact.io/sudoku-snark).
|
The summary-pitch-story deck is [here](https://pub.kompact.io/sudoku-snark){target="_blank"}.
|
||||||
Links to the associated repos: [plutus-zk](https://github.com/waalge/plutus-zk) and [sudoku-snark](https://github.com/waalge/sudoku-snark).
|
Links to the associated repos: [plutus-zk](https://github.com/waalge/plutus-zk){target="_blank"}
|
||||||
|
and [sudoku-snark](https://github.com/waalge/sudoku-snark){target="_blank"}.
|
||||||
|
|
||||||
Just after the hackathon got underway there was a [large PR merged](https://github.com/input-output-hk/plutus/pull/5231)
|
Just after the hackathon got underway there was a
|
||||||
|
[large PR merged](https://github.com/input-output-hk/plutus/pull/5231){target="_blank"}
|
||||||
into the main branch of plutus.
|
into the main branch of plutus.
|
||||||
It's a mammoth culmination of many many months of work.
|
It's a mammoth culmination of many many months of work.
|
||||||
In it were some fundamental primitives needed for running zk algorithms.
|
In it were some fundamental primitives needed for running zk algorithms.
|
||||||
|
@ -81,7 +84,7 @@ this third part is where things got stuck.
|
||||||
We did get as far as running a cluster of nodes in the Conway era with the latest version of plutus
|
We did get as far as running a cluster of nodes in the Conway era with the latest version of plutus
|
||||||
but unrelated changes seemed to thwart any chance of building transactions here.
|
but unrelated changes seemed to thwart any chance of building transactions here.
|
||||||
|
|
||||||
A quick shout-out to the [modulo-p.io](https://modulo-p.io/) team.
|
A quick shout-out to the [modulo-p.io](https://modulo-p.io/){target="_blank"} team.
|
||||||
They had a different approach and managed to implement a zk algorithm with the existing plutus primitives.
|
They had a different approach and managed to implement a zk algorithm with the existing plutus primitives.
|
||||||
This spared the need to play the foolhardy dependency bumping game with the Cardano node.
|
This spared the need to play the foolhardy dependency bumping game with the Cardano node.
|
||||||
However, because zk is so arithmetically intense,
|
However, because zk is so arithmetically intense,
|
||||||
|
@ -93,7 +96,7 @@ The validator in Sudoku snark uses [groth16](https://eprint.iacr.org/2016/260.pd
|
||||||
In part because this was already mostly available from the plutus repo itself.
|
In part because this was already mostly available from the plutus repo itself.
|
||||||
It is also the most obvious candidate to begin with.
|
It is also the most obvious candidate to begin with.
|
||||||
It's relatively mature, relatively simple, can be implemented from the new primitives,
|
It's relatively mature, relatively simple, can be implemented from the new primitives,
|
||||||
and, importantly in Cardano land, has small proof size.
|
and importantly in Cardano land has small proof size.
|
||||||
(As far as I know, the smallest of comparable algorithms.)
|
(As far as I know, the smallest of comparable algorithms.)
|
||||||
|
|
||||||
The program to generate the setup and proofs uses the Arkworks framework.
|
The program to generate the setup and proofs uses the Arkworks framework.
|
||||||
|
|
|
@ -6,6 +6,6 @@
|
||||||
Questions? We'll be happy to help answer any of your questions. Send us an email and we'll get back to you shortly.
|
Questions? We'll be happy to help answer any of your questions. Send us an email and we'll get back to you shortly.
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
Reach us on : <a href="mailto:hello@kompact.io">hello@kompact.io</a>
|
Reach us on : <a href="mailto:kompactio@proton.me">kompactio@proton.me</a>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
Loading…
Reference in New Issue