Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Inefficient outsourceability #218

Closed
kushti opened this issue Mar 14, 2018 · 2 comments
Closed

Inefficient outsourceability #218

kushti opened this issue Mar 14, 2018 · 2 comments
Assignees

Comments

@kushti
Copy link
Member

kushti commented Mar 14, 2018

Non-outsourceability, so a infeasibility or impossibility to outsource work to external players (usually, from a pool to a miner) is desirable property to tackle with the problem of few(or one) mining pools controlling most of mining power.

We can not hope for a strong non-outsourceable scheme (e.g. http://soc1024.ece.illinois.edu/nonoutsourceable_full.pdf) because of its inefficiency. Weak non-outsourceable scheme from the Permacoin paper also not suitable for our needs probably.

As an initial attempt, as we would like miners to prove possession of a state N blocks ago, we combine a proof of possession (which is basically a proof of (non)membership for nonce value used in PoW) with a zero-knowledge proof of knowledge for nonce commitment. We require "coinbase" transaction to be protected by the following script:

proof_of_(non)membership(stateroot(-N), nonce) /\ proof_of_knowledge(c, nonce),

where c is a Pedersen commitment c = g^nonce * h^R

Thus a pool for every nonce needs to calculate a proof of (non)membership and make at least 1 exponentiation, then update roots for state and transaction and send the header to the worker. Hopefully, computations and interactions needed for that are prohibitively high.

What are weaknesses of this scheme? How to adopt it to Equihash?

@kushti kushti added this to the testnet-2 milestone Mar 14, 2018
@kushti kushti self-assigned this Mar 14, 2018
@catena2w
Copy link
Member

Miners may fix nonce and change some transaction (possibly to themselves) in a block

@catena2w
Copy link
Member

Will be done in #390

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants