docs: update 'what is rln' section

This commit is contained in:
Magamedrasul Ibragimov
2022-10-01 14:31:36 +03:00
parent a939e86ba0
commit c0d0f15fab
5 changed files with 26 additions and 9 deletions

View File

@@ -1,8 +1,13 @@
# References
[Idea was proposed by Barry WhiteHat](https://ethresear.ch/t/semaphore-rln-rate-limiting-nullifier-for-spam-prevention-in-anonymous-p2p-setting/5009)
[RLN Overview](https://medium.com/privacy-scaling-explorations/rate-limiting-nullifier-a-spam-protection-mechanism-for-anonymous-environments-bbe4006a57d)
* [First proposal of RLN by Barry WhiteHat](https://ethresear.ch/t/semaphore-rln-rate-limiting-nullifier-for-spam-prevention-in-anonymous-p2p-setting/5009)
[RLN Spec](https://hackmd.io/@aeAuSD7mSCKofwwx445eAQ/BJcfDByNF)
* [RLN Overview by Blagoj](https://medium.com/privacy-scaling-explorations/rate-limiting-nullifier-a-spam-protection-mechanism-for-anonymous-environments-bbe4006a57d)
[VAC RLN Spec](https://rfc.vac.dev/spec/32/)
* [Demo RLN Spec](https://hackmd.io/@aeAuSD7mSCKofwwx445eAQ/BJcfDByNF)
* [VAC RLN Spec](https://rfc.vac.dev/spec/32/)
* [Understand zkSNARK](https://vitalik.ca/general/2016/12/10/qap.html)
* [Circom docs](https://docs.circom.io/)

View File

@@ -2,7 +2,7 @@
Term | Description
---- | -----------
ZK-SNARK | [z.cash/technology/zksnarks/](https://z.cash/technology/zksnarks/)
zkSNARK | Proof construction where one can prove possession of certain information, e.g. a secret key, without revealing that information, and without any interaction between the prover and verifier.
Stake | Financial or social stake required for registering in the RLN applications. Common stake examples are: locking cryptocurrency (financial), linking reputable social identity.
Identity secret | An array of two unique random components (identity nullifier and identity trapdoor), which must be kept private by the user. Secret hash and identity commitment are derived from this array.
Identity nullifier | Random 32 byte value used as component for identity secret generation.

View File

@@ -1 +1,6 @@
# Under the hood
*[zkSNARK](https://vitalik.ca/general/2022/06/15/using_snarks.html) is used in the **RLN** core. Therefore, we need to represent the protocol in R1CS (as we use Groth16). Circom DSL was chosen for this. This section provides an explanation of RLN circuits.*
## Circuits

View File

@@ -1 +1,4 @@
# Uses
## zk-chat
https://github.com/njofce/zk-chat

View File

@@ -1,12 +1,16 @@
# What is Rate-Limiting Nullifier?
[Idea was proposed by Barry WhiteHat](https://ethresear.ch/t/semaphore-rln-rate-limiting-nullifier-for-spam-prevention-in-anonymous-p2p-setting/5009)
*This topic is a part of complete [overview](https://medium.com/privacy-scaling-explorations/rate-limiting-nullifier-a-spam-protection-mechanism-for-anonymous-environments-bbe4006a57d) by Blagoj*.
[RLN Overview](https://medium.com/privacy-scaling-explorations/rate-limiting-nullifier-a-spam-protection-mechanism-for-anonymous-environments-bbe4006a57d)
___
[RLN Spec](https://hackmd.io/@aeAuSD7mSCKofwwx445eAQ/BJcfDByNF)
**RLN** is a construct based on zero-knowledge proofs that enables spam prevention mechanism for decentralized, anonymous environments. In anonymous environments, the identity of the entities is unknown.
[VAC RLN Spec](https://rfc.vac.dev/spec/32/)
The anonymity property opens up the possibility for spam attack and sybil attack vectors for certain applications, which could seriously degrade the user experience and the overall functioning of the application. For example, imagine a chat application, where users are anonymous. Now, everyone can write unlimited number of spam messages, while we don't have ability to kick this member, because the spammer is anonymous.
**RLN** helps us identify and "kick" the spammer.
Moreover RLN can be useful not only to prevent a spam attacks, but in general, to limit users (in anonymous environments) in the number of actions (f.e. to vote or to make a bid).
# Circom Circuit for RLN