# zkWiki: Post Information Anonymously

**URL:** <https://talk.harmony.one/t/zkwiki-post-information-anonymously/19299>\
**Category:** zkDAO\
**Created:** [May 29, 2022, 6:59pm UTC](https://talk.harmony.one/t/zkwiki-post-information-anonymously/19299 "2022-05-29T18:59:55Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![hakymulla](https://yyz1.discourse-cdn.com/flex035/user_avatar/talk.harmony.one/hakymulla/32/13383_2.png) [@hakymulla](https://talk.harmony.one/u/hakymulla)\
**Post date:** [May 29, 2022, 6:59pm UTC](https://talk.harmony.one/t/zkwiki-post-information-anonymously/19299/1 "2022-05-29T18:59:55Z")

</div>

# zkWiki

This is a decentralized application that will allow anyone to anonymously post information

## Application Type

zkDAO

## Proposal Overview

The project allows users can anonymously post a detailed title and a full message, the full message will remain hidden until the user chooses to reveal it. This use case is valid if the full message has top secret information or might endanger human lives but wants part of the story to go public. User can then reveal this information after a while.

## Use Cases

Anonymous Whistleblowing

**Competitive Landscape**

Other whistleblowing website requires you to give up personal information before you are allowed to post, zkWIki doesn’t need any of your information for you to disseminate messages.

**Proposal Ask**  
zkWiki will be established to be community-driven and self-funded by its DAO. To get this up and running, we will be requesting the $15k/year stable basic income to take care of initial development, welfare, and operation costs.

This ask will be in line with the laid down milestones as detailed below:

1. launching a feature-complete product on our testnet
2. forming a DAO with 5-out-of-9 multisig
3. launching on mainnet with audit
4. attracting … daily active users (with launch video, full PR promotion)
5. attracting … daily active users (with a detailed roadmap, governance process)

## Road Map

zkWiki is currently on Harmony Mainnet.

| Objective | Date | Status |
| --- | --- | --- |
| Testnet Launch | April 25, 2022 | Done |
| Beta Testing and Fixes | May 1, 2022 | Done |
| Mainnet Launch | May 1, 2022 | Done |
| Smart Contract Audit | June 15, 2022 | Pending |

## External links

1. [zkWiki Application](http://zkwiki.vercel.app)
2. [zkWIki GitHub Repository](https://github.com/hakymulla/zkwiki)
3. [zkWiki Demo Video](https://www.youtube.com/watch?v=SpTilf7yNu4)

---

<div class="post-metadata">

**Author:** ![socathie](https://yyz1.discourse-cdn.com/flex035/user_avatar/talk.harmony.one/socathie/32/5676_2.png) [@socathie](https://talk.harmony.one/u/socathie)\
**Post date:** [May 30, 2022, 4:04am UTC](https://talk.harmony.one/t/zkwiki-post-information-anonymously/19299/2 "2022-05-30T04:04:43Z")

</div>

I quite like the idea of this app, but I’m puzzled by why the commitment alone is not sufficient to reveal a message - I assume it’s because you want to allow secret to be reused? But using the message header as identification doesn’t seem like a very good approach as it might clash, too. Some form of message id might be a better identification.

Please also include the circuits in your github repo so we can verify the zk aspect of your application as well.

Other misc. issues: app doesn’t check for correct network, using contract.sendMessage instead of a specific contract function can be sending to a random address on a wrong network

---

<div class="post-metadata">

**Author:** ![hakymulla](https://yyz1.discourse-cdn.com/flex035/user_avatar/talk.harmony.one/hakymulla/32/13383_2.png) [@hakymulla](https://talk.harmony.one/u/hakymulla)\
**Post date:** [May 30, 2022, 2:17pm UTC](https://talk.harmony.one/t/zkwiki-post-information-anonymously/19299/3 "2022-05-30T14:17:31Z")

</div>

I’ve solved the issue of message header clashing by checking if it doesn’t exist on the smart contract.  
Both circuits have been added on github.  
Dapp now checks if you are on Harmony Mainnet Network.  
Thanks for the feedbacks.

---

<div class="post-metadata">

**Author:** ![socathie](https://yyz1.discourse-cdn.com/flex035/user_avatar/talk.harmony.one/socathie/32/5676_2.png) [@socathie](https://talk.harmony.one/u/socathie)\
**Post date:** [May 30, 2022, 4:04pm UTC](https://talk.harmony.one/t/zkwiki-post-information-anonymously/19299/4 "2022-05-30T16:04:31Z")

</div>

As a zkDAO governor, I am **not** able to approve this project in its current state for several reasons:

- The application seems not to involve an actual ZKP (despite using a circuit), but rather a commit-reveal scheme that doesn’t properly work (see next point). The Merkle tree in `sendmessage` circuit was never used anywhere in the application, and the `revealmessage` circuit simply performs a MiMCSponge hash without any other component(s) that would constitute a ZKP.
- The reason why the commit-reveal scheme doesn’t work properly is that the `msgBody` in your application was never hashed or committed on-chain, it was simply saved in `localStorage` and retrieved later.

As a result of the above, I think this application fails to qualify for the zkDAO grant at its current stage, and would require a huge revamp in design, architecture, and implementation.

It is recommended that you make all the necessary amendments, especially to make sure to utilize ZKP correctly, in order to qualify for the grant.

---

<div class="post-metadata">

**Author:** ![Kousik\_Rajesh](https://yyz1.discourse-cdn.com/flex035/user_avatar/talk.harmony.one/kousik_rajesh/32/13468_2.png) [@Kousik\_Rajesh](https://talk.harmony.one/u/Kousik_Rajesh)\
**Post date:** [May 30, 2022, 4:21pm UTC](https://talk.harmony.one/t/zkwiki-post-information-anonymously/19299/5 "2022-05-30T16:21:13Z")

</div>

I agree with Cathie, the circuits are non-functional and the revealMessage circuit has random js code in it.  
Rejected for grant

---

<div class="post-metadata">

**Author:** ![Semar\_Martins](https://yyz1.discourse-cdn.com/flex035/user_avatar/talk.harmony.one/semar_martins/32/4579_2.png) [@Semar\_Martins](https://talk.harmony.one/u/Semar_Martins)\
**Post date:** [May 30, 2022, 6:43pm UTC](https://talk.harmony.one/t/zkwiki-post-information-anonymously/19299/6 "2022-05-30T18:43:42Z")

</div>

I also agree with Cathie and reject this grant. Merkle-tree isn’t doing anything and seems to only have been added to have a circuit to show on github. this commit includes js code in a circom file which clearly didn’t even compile [added circuits · hakymulla/zkwiki@4b2d194 · GitHub](https://github.com/hakymulla/zkwiki/commit/4b2d194af368131036e7f869acf8138cd0998ed0)

---

<div class="post-metadata">

**Author:** ![hakymulla](https://yyz1.discourse-cdn.com/flex035/user_avatar/talk.harmony.one/hakymulla/32/13383_2.png) [@hakymulla](https://talk.harmony.one/u/hakymulla)\
**Post date:** [May 30, 2022, 7:05pm UTC](https://talk.harmony.one/t/zkwiki-post-information-anonymously/19299/7 "2022-05-30T19:05:11Z")

</div>

I uploaded the wrong circuit.circom files, i’ve corrected that now.  
thanks for the feedback, will work on it.
