Author

Topic: Obyte: Totally new consensus algorithm + private untraceable payments - page 1118. (Read 1234271 times)

legendary
Activity: 965
Merit: 1033
I'll try to explain it this way, not exactly accurate, but simplified for ease of understanding of the concept.

A regular transaction is just a collection of inputs (coins spent) and outputs (coins produced):

Code:
payload: {
  inputs: [...],
  outputs: [...]
}

All of that is public, and everybody sees who spent what and to whom.  Also, everybody can validate the transaction.

Now, Alice and Bod don't want to show their transactions to the entire world, and Alice hashes the above payload and stores only the hash on the public database.  At the same time, Alice sends the payload itself directly to Bob.   Along with payload hash, she also stores the spend proof, which is a hash of the input.  So, this is what she posts to the public database:

Code:
private_transaction: {
  payload_hash: ".....",
  spend_proof: "......"
}

Both hashes posted to the public database are obviously meaningless for all third parties, they can learn nothing from Alice's transaction except the fact that she sent _some_ transaction.

By making the spend proof public, we enable everybody to verify that the same input is not spent twice, as the same input will produce the same spend proof.



Byteball way :

Alice creates a txn that has her 10(could be hidden) input and a 10 output to Bob.
Alice generates a random number, that she will need to share with Bob, along with ALL the previous proofs in the chain(if her 10 is hidden), to decode the spend proofs.

Previous proofs (spend proofs) are already public, they don't need to be sent directly.  What is sent directly from Alice to Bob is previous payloads (plaintext inputs and outputs), which allow Bob to verify that the corresponding payload hashes and spend proofs do exist in the public database.

Quote
Alice 'hashes-the-txn' with the random number. (There are a few steps here..)
The random number is added as part of output, it is not something external.  It's purpose is to make preimaging of the spend proof impossible, you can safely ignore this part for initial understanding.

Quote
(This keeps the spend address visible for the network to check, but hides the rest.?)
Correct, the network sees only the fact that Alice spent something, and here the network's knowledge ends.

Quote
Alice sends the txn to the network and the spend proof to Bob. Who can then check for himself that the txn is what Alice says it is. And that all the parents are also valid.
Actually, the opposite: the spend proof is sent to the network (along with payload hash) while the plaintext transaction is sent to Bob.

Quote
The network knows that Alice has spent the 10(or hidden value). but doesn't know to who or for how much.
The network doesn't know how much Alice spent, see above.

Quote
The network doesn't know that Bob has a spendable output. So how does Bob then make a spend ? I know he knows, and he can prove the the next person, but the network won't have a record - so ..?
It's enough that Bob and all subsequent owners of the coin know that, the network doesn't need this knowledge.
legendary
Activity: 965
Merit: 1033
I have checked your wallet,really quite flexible and powerful ,waiting for new update.
By the way can you tell me how to attach btc address with byteball android wallet?
Best of luck for your project

The attaching phase will start later, watch the announcements in this thread.
Currently, you evaluate the technology, see how ready it is for production use, and maybe build some tools/services based on it to get them ready by the launch.
legendary
Activity: 1382
Merit: 1002
whether the existing balance in the wallet test will be in use later her after the official ?

Test coins are, of course, only used for testing. You may continue testing all you want, but they are not valid on the mainnet.
hero member
Activity: 718
Merit: 545
Stop.

Just realised.

You don't have miners! (as you say a few lines up..). This DAG paradigm is a little different..

So only you and the person you send it to care!

So.. The only validator of a txn, is the person you send it to, and the future txns that it will be a parent of (as the proof) ?

hmm..

(still digesting..)



hero member
Activity: 882
Merit: 500
whether the existing balance in the wallet test will be in use later her after the official ?
hero member
Activity: 718
Merit: 545
Hello!

..ok.. I'll try and run through my current understanding and you correct me..  Grin

( The basic point is : When the txn is checked by the network, how does a hidden input make a spend, if it's hidden ?

Alice wants to send Bob 10 bytes.

Alice has 1 10 output available. (That could be hidden)

Normal way :

Alice creates a txn that has her 10 input and a 10 output to Bob.
Alice sends txn to network.
The network knows that Alice has spent 10 and creates a spendable output of 10 for Bob.
Bob now has a valid 10 output that he can spend on the network.

Byteball way :

Alice creates a txn that has her 10(could be hidden) input and a 10 output to Bob.
Alice generates a random number, that she will need to share with Bob, along with ALL the previous proofs in the chain(if her 10 is hidden), to decode the spend proofs.

(And here it's a little murky..)

Alice 'hashes-the-txn' with the random number. (There are a few steps here..)
(This keeps the spend address visible for the network to check, but hides the rest.?)

Alice sends the txn to the network and the spend proof to Bob. Who can then check for himself that the txn is what Alice says it is. And that all the parents are also valid.

The network knows that Alice has spent the 10(or hidden value). but doesn't know to who or for how much.

The network doesn't know that Bob has a spendable output. So how does Bob then make a spend ? I know he knows, and he can prove the the next person, but the network won't have a record - so ..?

What am I missing..
hero member
Activity: 910
Merit: 505
I have checked your wallet,really quite flexible and powerful ,waiting for new update.
By the way can you tell me how to attach btc address with byteball android wallet?
Best of luck for your project
legendary
Activity: 965
Merit: 1033
Hi spartacusrex, I'm glad to see the start of technical discussion in this thread!

49 Pages!

.. And, if I may, I'm glad you think 'Simplicity is Beauty' or you might have tried to cram too much in..  Wink

It really does a lot. Congrats! (Particularly like the 'Leave' vote.)

It is really a lot.  And I tried to leave no questions unanswered (but apparently it's impossible).

Quote
For   private   payments,   the   payload   goes   separately   and additionally   hides   the   
recipients   of   all   outputs   except   the   one   that   is   meant   for   the   payee

I can see how to hide the amounts, using the blinding factor, but if you hide the output addresses as well, how do the miners prevent a double spend ?

Or how does a user know that the output has not been spent already in another hidden txn ?

Or am I misunderstanding and the outputs are not hashed, just the amounts ?

That's what spend proofs are for.  Spend proof is a hash over the output being spent, hence if you try to spend the same output again, the spend proof will be necessarily the same, and the validators (there are no miners here) will notice that immediately.
hero member
Activity: 718
Merit: 545
49 Pages!

.. And, if I may, I'm glad you think 'Simplicity is Beauty' or you might have tried to cram too much in..  Wink

It really does a lot. Congrats! (Particularly like the 'Leave' vote.)

Can we chat about your private payment scheme.. ?

Quote
For   private   payments,   the   payload   goes   separately   and additionally   hides   the   
recipients   of   all   outputs   except   the   one   that   is   meant   for   the   payee

I can see how to hide the amounts, using the blinding factor, but if you hide the output addresses as well, how do the miners prevent a double spend ?

Or how does a user know that the output has not been spent already in another hidden txn ?

Or am I misunderstanding and the outputs are not hashed, just the amounts ?

legendary
Activity: 965
Merit: 1033
sounds good dev! if i understood correctly we will not loose the testnet coin?

You can keep it but testnet coin is worthless by definition.
legendary
Activity: 965
Merit: 1033
Since there will be no ICO, how do you plan to fund this project in short term and long term?

Like I did before for the previous 22 months, plus I allocate 1% for myself.
sr. member
Activity: 269
Merit: 250
Since there will be no ICO, how do you plan to fund this project in short term and long term?
legendary
Activity: 2226
Merit: 1014
i am testing the wallet and seems to be very good! Did not take long time to sync! do you have any bounties for earlier testnet wallet dev?

I'm glad you like the wallet Smiley
The only bounty we have is free bytes on testnet.

sounds good dev! if i understood correctly we will not loose the testnet coin?
legendary
Activity: 965
Merit: 1033
i am testing the wallet and seems to be very good! Did not take long time to sync! do you have any bounties for earlier testnet wallet dev?

I'm glad you like the wallet Smiley
The only bounty we have is free bytes on testnet.
legendary
Activity: 2226
Merit: 1014
i am testing the wallet and seems to be very good! Did not take long time to sync! do you have any bounties for earlier testnet wallet dev?
legendary
Activity: 965
Merit: 1033
New release v0.2: https://github.com/byteball/byteball/releases

After running for 3 days, a few insignificant bugs were found, most are fixed in the new release, some require more information.

Please upgrade by the above link (Android will update automatically), report any issues you encounter.
legendary
Activity: 965
Merit: 1033
Interesting. Is there any tentative launch date?

Early November, subject to change.
legendary
Activity: 965
Merit: 1033
Do you allow exchanges to attach btc to byteballs? Most of the coins are in their reserve. They will get more number of shares than individuals. Otherwise, you can also make a giveaway with exchanges.

In this anonymous world, I can't say who is an exchange and who is not, and can't stop exchanges from using their customers' funds for themselves.

If however any exchanges are willing to link their bitcoin addresses and receive bytes for their customers (not for themselves), they are most welcome.
hero member
Activity: 840
Merit: 500
Risk taker & Black Swan farmer.
Interesting. Is there any tentative launch date?
legendary
Activity: 965
Merit: 1033
How many devs are working on this project?

One so far.
Jump to: