Jeff, Veronica, Lakshman
A set of Ethereum contracts+webapp that allows a user to prove that they were a previous DarkForest winner without revealing their Eth address. If they do so successfully, an NFT is minted saying as much.
All verification logic should happen on-chain.
Flow:
Contracts:
Alternately, if the cost of verifying a merkle root on-chain is prohibitive in terms of gas cost, we could assume that the user needs to provide the merkle root of winners themselves and trust 3rd parties to attest to this off-chain.
template VerifyDFWinner {
signal input sig;
signal input msg;
signal input pubkey;
signal input df_winner_branch;
signal input df_winner_root;
signal output verified_bool;
}
verified_bool
is true if sig
(private) is an ECDSA sig of msg
(private) by the private key corresponding to pubkey
(private) and pubkey
corresponds to an Eth address that is in df_winner_root
(public).
sig
takes the role of private key here as we don't want users to have to stick their private keys into a web browser.
https://drive.google.com/drive/folders/1GntE1LmV9rq6_eICt-EXjZvYtgthbhIf?usp=sharing
or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing