chainstacklabs / developer-hub-content

Articles submitted by the community for the Chainstack Developer Hub content initiative
34 stars 14 forks source link

[PROPOSAL] Use Ethereum's Semaphore to Build a Web 3 Version of Battleship #49

Closed TobeTek closed 1 year ago

TobeTek commented 1 year ago
Genesis3800 commented 1 year ago

Hey @TobeTek , Thank you for creating an issue on the developer hub. We are glad to have you here. I would like to see a few more points being covered in the article:

  1. Are there any EIPs related to this project? I would like to see them covered briefly.
  2. Is semaphore being used in any major projects as of now?
  3. How is it different from Zk projects like Polygon and ZkSync have?
TobeTek commented 1 year ago

Hello @Genesis3800, Thanks for responding.

  1. While there are no EIPs that specifically mention Semaphore (after quite a bit of searching ), there are a number of them that center around privacy and privacy enchancing techniques:

  2. Yes. I've been able to find a few e g Unirep

  3. Technically, Semaphore can run on any EVM-compatible chain. Polygon however goes further to offer native support for Rollups (Hermez 2.0)

Just to confirm, the next step would be to start writing the actual article?

Genesis3800 commented 1 year ago

Hey @TobeTek , We really like your proposal, but before I give you the go-ahead, I need to iron out a few details. Is it possible for us to jump on a call sometime at your convenience?

TobeTek commented 1 year ago

Sure @Genesis3800. You can add me on Discord so we can schedule. My username: Tobe#3032. Looking forward to hearing from you.

Genesis3800 commented 1 year ago

Sent you a Friend request from SoulGenesis (He/Him)#9153

Genesis3800 commented 1 year ago

Issue approved. Best of luck for the article @TobeTek . We look forward to seeing the first draft.

TobeTek commented 1 year ago

Hello @Genesis3800 👋 Been quite a while. I must start off by apologizing for my extremely tardy reply. In between work and some bouts of ill health, I'd been unable to work on this.

I've gone ahead to create a PR #98 and looking forward to your review.

In my implementation, I had to make a number of changes.

  1. Semaphore didn't quite fit the bill for this use case. I had intended to use Semaphore identities to hide the ship pieces, but I didn't see any deterministic way to guess/reverse if an identity was/is valid. I instead chose to use public-private signatures.
  2. Circom. It wasn't needed for this implementation. If possible, in the future, I'd like to write an article on creating zkSNARKs with circom and snarkjs.

Altogether, I'm happy to say that I've got a fully functioning game of incomplete information on a public blockchain, and an article to explain it all.

Thanks, and I do hope this meets you well.

Genesis3800 commented 1 year ago

Hey @TobeTek , Thank you for your submission. I see that you have had to make some changes to the original parameters of the article we agreed on.

I'll go through your PR and get back to you as soon as I can

Genesis3800 commented 1 year ago

Hey @TobeTek , I'm sorry being late to reply. I have been quite busy. I went through your article and contracts. I think your writeup is a beautiful piece of work, and I don't use that lightly or very often. I loved the creativity. I would really like to jump on a call to discuss a few things before I merge the PR. Are you available for a call?

https://calendly.com/priyank-gupta0308/30min

TobeTek commented 1 year ago

Hello @Genesis3800

No worries at all, I completely understand how busy things can get.

Many thanks for your comment! I really appreciate it 😄.

Regarding scheduling, I would be happy to arrange a meeting with you. However, it seems that the Calendly link is not working at the moment. Please let me know if you have an alternative way to schedule the meeting.

Thanks again!

Genesis3800 commented 1 year ago

Hey @TobeTek , I reconnected my google calender which somehow got disconnected. Please try again and let me know if it still does not work.

TobeTek commented 1 year ago

Hello @Genesis3800 , I've gone ahead to add the screenshots of the test runs and gas reports. Thanks again!

Genesis3800 commented 1 year ago

Hey @TobeTek , Thank you for your contribution to the developer hub. We appreciate having you with us. To move forward, please send me your email address.

I, or one of my colleagues, will reach out to you via mail to request your bank details for processing your payment.

TobeTek commented 1 year ago

Hello @Genesis3800 ,

Awesome! Thank you for making the entire experience enjoyable and efficient. It's been a pleasure contributing.

You can reach me at katchyemma@gmail.com.