voteliquid / deprecated_thedap

(DEPRECATED REPO) Decentralized Autonomous P̶a̶r̶t̶y̶ BoatyMcBoatface
https://thedap.org
3 stars 1 forks source link

Cryptographic approach to decentralized voting and identity #4

Closed rdixit closed 8 years ago

rdixit commented 8 years ago

Decentralizing Crowdocracy means identity and vote integrity must be handled in a distributed manner. How can we use robust cryptography to offer built-in mechanisms to safeguard identity and the sanctity of the ballot box?

Propose using private/public key for each Crowdocracy group. Members of the group are distributed pieces of the group's private key, requiring M% of users to submit their shares to decentralized software to reconstruct the key, sign the proposed bill with the group's private key, and add the hash to the blockchain.

Voting Use Case Shares can be distributed to members of a committee. For a policy or process to be initiated, a majority of the members must be present with their shares.

An interesting example of this is the division of the DNSSEC root key among 7 Trusted Community Representatives (TCR). DNSSEC is the backbone of internet security and the "root zone" is signed with a key. While the DNSSEC Practice Statement doesn't state what sharing scheme is employed, it is feasible that Shamir's secret sharing is used in a (7,5) configuration, i.e. 5 of the 7 TCRs must be present to reconstruct the root key.

Why Shamir's Secret Sharing? Secret sharing is a method for distributing a secret among participants or locations. A secret can consist of any data; for example, a password, a message, an account number, an ecnryption key, missile launch codes, or a Bitcoin private key all represent highly sensitive and important secrets. Traditionally, when guarding highly sensitive information, one would have to choose between keeping a single copy of the secret in one location for maximum secrecy, or keeping multiple copies of the secret in different locations for greater reliability. By increasing storage locations or entrusted parties, reliability is increased at the expense of secrecy. Secret sharing addresses this problem by allowing arbitrarily high levels of confidentiality and reliability.

The process of splitting a secret results in a specified number of shares of the secret. Each share is a random number that by itself provides no information about the secret. The secret can be reconstructed only when a sufficient number (threshold) of shares are combined. During the splitting process, one can select the number of shares to create and the threshold needed to reconstruct the secret.

Resources

rdixit commented 8 years ago

moved to wiki