Skip to content

Commit 97f6949

Browse files
authored
add shoutouts
1 parent aea5b0e commit 97f6949

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

README.md

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ Using this project as a research playground, I wanted to find an _~ elegant ~_ d
4242

4343
### Solution
4444

45-
Thanks to some great help from @autoparallel and @0x_jepsen, I ended up representing valid signer sets (including signing threshold) into a polynomial.
45+
Thanks to some great help from [@autoparallel](https://github.com/autoparallel) and [@0xjepsen](https://github.com/0xjepsen), I ended up representing valid signer sets (including signing threshold) into a polynomial.
4646

4747
This polynomial is [emitted in an event onchain](contracts/DarkSafe.sol#L48) as a _reverse_ encoded array, of 32 byte coefficiencts, with the array index representing the degree of the `x` value's exponent. For example:
4848

@@ -103,6 +103,8 @@ forge test
103103

104104
## Notes
105105

106+
- Check out [DRY](https://github.com/dry-ethglobal-brussels/dry-mobile-app) - a cool merkle tree implementation with FaceID by some noir OGs
107+
106108
- This project is just for fun, demonstrating a relatively efficient and elegant usecase for Noir and shouldn't be used in production unless we work together on this and get it audited
107109

108110
- Interpolating a polynomial over the K choose N of the signer set is _not_ secure enough for me to be comfortable. It is not impossible to brute force k choose n up to 8 over all the Ethereum addresses and compute f(x) to try and brute-force find out who's on the safe.
@@ -111,3 +113,15 @@ Some possible solutions are:
111113

112114
- Always spin up a fresh EOA to add as a signer, it's important this account has never made an Ethereum transaction on any chain.
113115
- Refactor the code to accept a bit of randomness: an `r` value to hash together with each `root`. This makes it impossible to brute force. The `r` value can be as simple as a known `password` has to at least be known by the prover.
116+
117+
118+
## Massive Thanks to...
119+
the boiz
120+
- [@autoparallel](https://github.com/autoparallel)
121+
- [@0xjepsen](https://github.com/0xjepsen)
122+
123+
noir guys
124+
- [@TomAFrench](https://github.com/TomAFrench)
125+
- [@kevaundray](https://github.com/kevaundray)
126+
- [@signorecello](https://github.com/signorecello)
127+
- [@critesjosh](https://github.com/critesjosh)

0 commit comments

Comments
 (0)