Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: vintagetrex on August 07, 2014, 05:39:43 AM

Title: P2P intellectual property using distributed proof of knowledge (storage resource
Post by: vintagetrex on August 07, 2014, 05:39:43 AM
by vintagetrex aka Donal Lumsden
//*This algorithm for P2P proof of knowledge is arranged as a race.  It works between a main blockchain building network and a side chain network. The challenge is generated and published by the "prover" node and answered by the "verifier" nodes.  There are two rewards used: the first is crypto currency for a successful "prover" role and the second is a counter for a "verifier" who wins the proof of knowledge competition.  Counters reset after a time period (tr).  Rewards and counters can be replaced with two distinct currencies.  A negative consequence for an incorrect response to the POK challenge should be used to prevent guessing.  A certain amount of counters is required for a verifier to become eligible for the "prover draft."  Provers are drafted from the eligible nodes through a pseudorandom number generated by the blockchain, such as the numbers generated by primecoin.  The case discussesd has 1 prover and 2 verifiers in competition. *//
//prover and verifier roles are delegated by the blockchain
1) Random number R0 is generated by the blockchain and N0 is drafted as the prover with verifiers N1 and N2
//prover generates the proof of knowledge competition in steps 2 to 6
2) Prover generates random numbers R1 and R2 which will be used as salt (random number padding)
3) Prover generates 2 one-time-pads X1 and X2 which will be used to change hashes at a rate of 50%
4) Prover hashes concatenated N1, X1, R1, N2, X2, and R2
Hash ( N1 + X1 + R1 + N2 + X2 + R2) = D
5) Prover uploads D to the blockchain
6) Prover creates challenges C1 and C2 by XORing the hash of R concatenated with F
X1( Hash(R1 + F) ) = C1
X2( Hash(R2 + F) ) = C2
//C1 = Hash(R1 + F) 50% of the time
//C2 = Hash(R2 + F) 50% of the time
7) Prover encrypts C1 concatenated with R1 and C2 concatenated with R2 with the public keys of N1 and N2, PK1 and PK2 respectively to make M1 and M2.  Signing keys are SK1 and SK2
PK1 ( C1 + R1 ) = M1
PK2 ( C2 + R2 ) = M2
8) Prover uploads M1 and M2 to the blockchain
9) Verifier performs POK by checking if the challenge is the hash of R1 concatenated with F or not (true or false)
SK1( M1 ) == C1 + R1
if ( C1 == Hash(R1 + F) ) {upload true;}
else {upload false}
11) Prover uploads N1, X1, R1, N2, X2, and R2 concatenated or (N1+X1+R1+N2+X2+R2)
//anyone can verify this as the solutions to the POK using the previously uploaded Hash in step 5, in essence the prover is posting the solutions to the POK challenges
12) Protest period; a node can upload its private key if the prover role wasn't performed correctly and anyone may check if messages and challenges (M, C) were made correctly
Reward for prover = inflation of currency;
Reward for verifier who answers first = counter++;
counters required for prover draft eligibility >= some number;
time period for counters to reset = tr;
time span between upload of messages (M) and upload of solution (N1+X1+R1+N2+X2+R2) <= tchallenge; //very small to prevent cheaters
cheater = running a node without unique storage of F for that node
//cheaters are combatted by making a time dependent competition or race
//assumption: cheaters have to take extra steps so they will never be as fast and will lose to non cheaters

Title: Re: P2P intellectual property using distributed proof of knowledge (storage resource
Post by: vintagetrex on August 09, 2014, 02:26:31 AM
I will read this later, I just skimmed it because I was in a hurry so I apologize if I get this wrong, but why not use the existing blockchain?

For example, to prove I wrote a paper I could sign it and embed the signature in the blockchain as a message on a small transaction. With a separate blockchain, what would be the incentive to do the work necessary to maintain it?

Here's a signature proving my ownership of the address 1CBNHbNNJ4C3dTELRJq312hXFwUqxg7bnm :


It is a signature of the message above, thereby proving that I knew about my intellectual property in the above two sentences at the time the transaction below was sent (notice that the public note matches the signature above:


Here's me verifying the message signature, thus proving that I "knew of" the IP above at 2014-08-08 19:51:01 : (

This data witnessing isn't too great I don't think.  I much prefer what happens with datacoin because someone can upload to datacoin with a public key as proof.  Anyone who knows me knows this is my work.  Also, I'm not too concerned with "academic credit."

I do have more proof tho