to cover:
sections:
In most cases, credibility and anonymity seem directly at odds. On the one hand, anonymity allows "anons" and "throwaway accounts" on platforms like 4chan and Reddit to speak their minds in ways that they might not otherwise be comfortable with, and enables whistleblowers to publicly disclose corporate or government wrongdoing while mitigating the risk of real-world reprecussions. On the other hand, it is difficult to verify the credibility of statements that are not attached to known or trusted identities, and anonymity can help bad actors who wish to spread misinformation or harrass other community members.
In this post, we present a few techniques for implementing efficient and practical "group signatures." In combination with blockchain identity systems, which
Note that slightly modified versions of this protocol can be used such that revealSigner
and/or denySignature
operations are not possible without revealing your secret. For example, to disable denySignature
, add a salt. To disable revealSignee, don't publish a message attestation.
First, via a known identity provider (ie tweets or Ethereum signatures), participants commit to secrets by publishing hashes of their respective secrets.
groupSign
Inputs:
- hash1 (pub)
- hash2 (pub)
- hash3 (pub)
- msg (pub)
- secret
Intermediate values:
- x (supposed to be hash of secret)
Output:
- msgAttestation
Prove:
- mimc(secret) == x
- (x - hash1)(x - hash2)(x - hash3) == 0
- msgAttestation == mimc(msg, secret)
revealSigner
Inputs:
- hash (pub)
- msgAttestation (pub)
- msg (pub)
- secret
Outputs:
- msgAttestation
Prove:
- msgAttestation == mimc(msg, secret)
- hash = mimc(secret)
denySignature
Inputs:
- hash (pub)
- msg (pub)
- secret
Outputs:
- msgAttestation
Prove
- msgAttestation != mimc(msg, secret)
- hash = mimc(secret)
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.
Syncing