Bitcoin Forum
June 15, 2024, 11:00:56 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 [2]  All
  Print  
Author Topic: Zapcoin: distributed, no-trust altcoin that verifies in seconds  (Read 1909 times)
Shatosi Makanoto (OP)
Newbie
*
Offline Offline

Activity: 28
Merit: 0



View Profile
June 27, 2013, 05:48:17 PM
 #21

Quote
It shouldn't be too hard to create the network.  I mean all that you are really doing is defining who you can connect to in a table.  Just create a look up table to the ip address of related nodes on the network.  The problem is always NAT translation.

True. And then there needs to be code that goes through the rounds, and something to generate traffic (pretty straightforward so far). Finally, I need to convince a few hundred thousand people to install the client and watch it heavily load down their internet connection!  Cry
Fuserleer
Legendary
*
Offline Offline

Activity: 1064
Merit: 1016



View Profile WWW
June 27, 2013, 05:57:39 PM
 #22

A nice incentive should sort that last problem out Wink

HuuHachu
Full Member
***
Offline Offline

Activity: 126
Merit: 100


View Profile
June 27, 2013, 06:13:21 PM
 #23

Seems you are trying to obtain a consensus between up to a million nodes ...

But with thousands of nodes and above, you will have to deal with instability (especially, at each round you will have nodes failing / not responding. Of course at each round you will also have nodes entering and leaving the network, but they should be easier to deal with)

Also, I have the feeling that latencies will be kind of "worse case" ... If a node somewhere is waiting for a neighbor, then this will be blocking the global consensus ...
And with increasing number of nodes and links, you will almost always have someone waiting for someone else.
(this is a feeling ... but probably worth investigating, especially as it could be done intentionally to stall / attack the network)

noble: 9mKQpsfLeabjFsPv3YR9zYoAVymDPyfjCp
HuuHachu
Full Member
***
Offline Offline

Activity: 126
Merit: 100


View Profile
June 27, 2013, 06:27:44 PM
 #24

Also, from my understanding, a node is allowed only one outgoing transaction per round ... (to prevent double-spending)

Should be ok for most individual users, but potentially prohibitive for businesses

noble: 9mKQpsfLeabjFsPv3YR9zYoAVymDPyfjCp
Shatosi Makanoto (OP)
Newbie
*
Offline Offline

Activity: 28
Merit: 0



View Profile
June 27, 2013, 06:28:58 PM
Last edit: June 27, 2013, 07:24:01 PM by Shatosi Makanoto
 #25

Quote
Seems you are trying to obtain a consensus between up to a million nodes ...

But with thousands of nodes and above, you will have to deal with instability (especially, at each round you will have nodes failing / not responding. Of course at each round you will also have nodes entering and leaving the network, but they should be easier to deal with)

Also, I have the feeling that latencies will be kind of "worse case" ... If a node somewhere is waiting for a neighbor, then this will be blocking the global consensus ...
And with increasing number of nodes and links, you will almost always have someone waiting for someone else.
(this is a feeling ... but probably worth investigating, especially as it could be done intentionally to stall / attack the network)

Right, some poor schmuck node is going to be the last to get it. But remember that the node is linked to hundreds of neighbors. If the delay is elsewhere, the transaction will find a way through. But if the delay is right there at the node (slow/intermittent internet connection), it may never get through. For this, a timeout needs to occur (the equivalent of nodes setting their consensus counts to six as they each time out) which will say, "enough is enough!" and snip off the errant node(s).

It remains to be seen, but it may be that hundreds of nodes will get snipped in any given round for one reason or another. But the network is such that it doesn't rely on any given node(s) , and they can simply rejoin, subject to any measures taken regarding "suspicious" nodes.
Shatosi Makanoto (OP)
Newbie
*
Offline Offline

Activity: 28
Merit: 0



View Profile
June 27, 2013, 06:31:54 PM
 #26

Quote
Also, from my understanding, a node is allowed only one outgoing transaction per round ... (to prevent double-spending)

Should be ok for most individual users, but potentially prohibitive for businesses

Yes, but businesses (merchants) are typically receiving payments, not making them, and there's no restriction on that.

For nodes making lots of payments, there's always the next round...
HuuHachu
Full Member
***
Offline Offline

Activity: 126
Merit: 100


View Profile
June 27, 2013, 06:35:18 PM
 #27

Quote
Seems you are trying to obtain a consensus between up to a million nodes ...

But with thousands of nodes and above, you will have to deal with instability (especially, at each round you will have nodes failing / not responding. Of course at each round you will also have nodes entering and leaving the network, but they should be easier to deal with)

Also, I have the feeling that latencies will be kind of "worse case" ... If a node somewhere is waiting for a neighbor, then this will be blocking the global consensus ...
And with increasing number of nodes and links, you will almost always have someone waiting for someone else.
(this is a feeling ... but probably worth investigating, especially as it could be done intentionally to stall / attack the network)

Right, some poor schmuck node is going to be the last to get it. But remember that the node is linked to hundreds of neighbors. If the delay is elsewhere, the transaction will find a way through. But if the delay is right there at the node (slow/intermittent internet connection), it may never get through. For this, a timeout needs to occur (the equivalent of nodes setting their consensus counts to six as the each time out) which will say, "enough is enough!" and snip off the errant node(s).

It remains to be seen, but it may be that hundreds of nodes will get snipped in any given round for one reason or another. But the network is such that it doesn't rely on any given node(s) , and they can simply rejoin, subject to any measures taken regarding "suspicious" nodes.

Sorry, it was not very clear that my point was mainly on the consensus phase (with the counter to 6) ... Random latencies on those messages could add up to a lot (again, it's a feeling)

noble: 9mKQpsfLeabjFsPv3YR9zYoAVymDPyfjCp
Shatosi Makanoto (OP)
Newbie
*
Offline Offline

Activity: 28
Merit: 0



View Profile
June 27, 2013, 06:58:32 PM
 #28

I should have discussed bandwidth in the paper:

I think that a round should take perhaps 6 seconds to complete, mainly because the network should allow, say, five seconds for distribution, and a single timeout period on the end of, say, a second. In that five seconds, every transaction must traverse every link in one direction or the other, and links that choke will be closed down. A transaction consists of about 50 bytes. How many 50-byte packets can be passed in five seconds? That number, divided by six (to include timeout), sets the transaction rate. An internet connection is usually biased toward downstream, so upstream will be the bottleneck. If we set a minimum acceptable upstream bandwidth at 600 kb/s, the network could handle around 500 transactions per second. Considering that Bitcoin is currently doing less than one transaction per second, that's not bad.

A node with a slow internet link will just continuously fall out of the network. This scheme  requires a certain bandwidth, because all participating nodes must continuously stay in sync with one another.
Shatosi Makanoto (OP)
Newbie
*
Offline Offline

Activity: 28
Merit: 0



View Profile
June 27, 2013, 07:06:13 PM
 #29

Quote
Sorry, it was not very clear that my point was mainly on the consensus phase (with the counter to 6) ... Random latencies on those messages could add up to a lot (again, it's a feeling)

Remember that the consensus phase, like the transmission phase, has literally hundreds of thousands of links trying to pass data only a half-dozen hops. Even though the nodes are scattered all over the world, they are only a distance of four (six) max hops apart. As I was hatching this topology, it took me a while to appreciate just how many alternate paths exist and how close the nodes are in the network.
Etlase2
Hero Member
*****
Offline Offline

Activity: 798
Merit: 1000


View Profile
June 27, 2013, 07:17:16 PM
 #30

If we set a minimum acceptable upstream bandwidth at 600 kb/s, the network could handle around 500 transactions per second. Considering that Bitcoin is currently doing less than one transaction per second, that's not bad.

Didn't you say something like 124 nodes connected? That is 500 tx/s / 62 (124 / 2 if we assume half the network receives txes first on avg).

Shatosi Makanoto (OP)
Newbie
*
Offline Offline

Activity: 28
Merit: 0



View Profile
June 27, 2013, 07:26:24 PM
 #31

Quote
Didn't you say something like 124 nodes connected? That is 500 tx/s / 62 (124 / 2 if we assume half the network receives txes first on avg).

Oops. you're right!
HuuHachu
Full Member
***
Offline Offline

Activity: 126
Merit: 100


View Profile
July 08, 2013, 03:46:04 PM
 #32

bump ^^

(even if this work is far from complete, the author actually tried to explore new ideas and share them in a nice way)

two questions / remarks :

- for the consensus phase, even if a node has many links, if its physical link has a problem (or if this node is a malicious one), there will still be a lot of delay (all of its neighbors will be waiting for it)

- how to distribute addresses ? ... I have the feeling that we may have to resort to some centralization here (or a energy-consuming proof-of-work mechanism maybe)

noble: 9mKQpsfLeabjFsPv3YR9zYoAVymDPyfjCp
Shatosi Makanoto (OP)
Newbie
*
Offline Offline

Activity: 28
Merit: 0



View Profile
September 01, 2013, 10:22:38 PM
 #33

HuuHachu,

Sorry for not checking for feedback for so long.

Quote
- for the consensus phase, even if a node has many links, if its physical link has a problem (or if this node is a malicious one), there will still be a lot of delay (all of its neighbors will be waiting for it)

If a link has a problem, there is no way to know when (if ever) a response will arrive; therefore, a deadline time must be defined system-wide, and if a response is not received by this time, the link is deemed to be down. Other links will be expected to maintain the node's connectivity. The question is, what is a reasonable time to wait? I think that only a trial system can determine this, and this is the main contributor to total Round time delay.

Quote
- how to distribute addresses ? ... I have the feeling that we may have to resort to some centralization here (or a energy-consuming proof-of-work mechanism maybe)

I actually think that all business can be handled in a distributed manner, including node address assignment. The only issue I see is: how does a new account find an entrance point into the network? I think that bitcoin and any file-sharing network has the same issue. There must be some well-known place to go to find an access point, and this becomes a point of vulnerability to governmental or DDoS shutdown. Any ideas? How does bitcoin do it, or is this also a bitcoin vulnerability?

Over the summer I have been putting together a client for this idea. I hope to unveil it soon and request volunteers to alpha test it.

-- Shatosi
CryptoBullion
Sr. Member
****
Offline Offline

Activity: 266
Merit: 250


View Profile
September 01, 2013, 10:47:51 PM
 #34

<<<----- ALPHA TESTER

Fold Proteins, earn cryptos! CureCoin. https://bitcointalk.org/index.php?topic=268556.0
CryptoPCS.com Prepaid phone refills, post paid phone payments, and bill payments https://bitcointalk.org/index.php?topic=285148.0
KonstantinosM
Hero Member
*****
Offline Offline

Activity: 1493
Merit: 763


Life is a taxable event


View Profile
September 02, 2013, 01:16:17 AM
 #35

I like the idea, I have somewhat of an intermittent connection at times but since I'm a miner I deal with it.

I'm interested in a crypto without POW.

Syscoin has the best of Bitcoin and Ethereum in one place, it's merge mined with Bitcoin so it is plugged into Bitcoin's ecosystem and takes full advantage of it's POW while rewarding Bitcoin miners with Syscoin
Shatosi Makanoto (OP)
Newbie
*
Offline Offline

Activity: 28
Merit: 0



View Profile
September 02, 2013, 02:34:15 AM
 #36

Here are more details about the protocol:

  • In order to prevent the network from splitting into two networks that both think they are the valid network (thus allowing double spending), the network must be aware of its size (number of nodes) after every round. If the size ever drops by one-half or more in a single round, every genuine node will know to drop off the network and renegotiate onto the correct network. Since there can be at most one fragment that retains over half the nodes after experiencing a rip in the network fabric, this prevents multiple simultaneous subnets from developing. If none of the subnets retain more than half of the nodes, all nodes will drop out and the network will require restarting (I haven't worked out the details as to how that would be done). This would be catastrophic, but at least no corruption would occur to the Ledger. Ripping large portions off of the network fabric would be extremely difficult to do, but could occur if a large-scale internet breakdown occurs (neutron bomb event, severing of all intercontinental internet transatlantic cables, etc.)
  • In order for the nodes to accept a transaction, both the sender and the receiver must digitally sign the order. Of course, the sender must sign it to authorize the funds withdrawal from his account. But having the receiver also authorize the transaction totally prevents misdirected funds transfers.

-- Shatosi

Pages: « 1 [2]  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!