Come-from-Beyond
Legendary
Offline
Activity: 2142
Merit: 1010
Newbie
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
February 09, 2016, 01:52:55 PM |
|
No, I don't see this as an excuse - in fact, I am writing a white paper at the moment which has parallels to Tangle, but it has a mining subsidy and I want to be sure that I've covered all the angles, so the fact you chose to disallow it is important to me.
Is it possible to see the draft? I wanted subsidy because 2% annual inflation is believed to be good for a monetary system. If Iota community doesn't mind we could delay the release for a week to add the inflation...
|
|
|
|
monsterer
Legendary
Offline
Activity: 1008
Merit: 1007
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
February 09, 2016, 02:05:20 PM |
|
No, I don't see this as an excuse - in fact, I am writing a white paper at the moment which has parallels to Tangle, but it has a mining subsidy and I want to be sure that I've covered all the angles, so the fact you chose to disallow it is important to me.
Is it possible to see the draft? I wanted subsidy because 2% annual inflation is believed to be good for a monetary system. If Iota community doesn't mind we could delay the release for a week to add the inflation... It's very rough in its current state, I'm not sure I'm ready to release a draft yet. I can say, however, that this design has a deterministic ordering, pays a subsidy for every block, and also rewards participation on the longest chain (of branches) of difficulty. edit: I am completely happy for you to PM me or to discuss the finer points of how this is supposed to work here, because attack vectors are hard to enumerate fully.
|
|
|
|
Come-from-Beyond
Legendary
Offline
Activity: 2142
Merit: 1010
Newbie
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
February 09, 2016, 02:14:20 PM |
|
this design has a deterministic ordering
But how?
|
|
|
|
monsterer
Legendary
Offline
Activity: 1008
Merit: 1007
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
February 09, 2016, 02:35:19 PM |
|
this design has a deterministic ordering
But how? From the paper: Ordering transactions deterministically is key to Tree of work. Transactions are ordered from the genesis transaction to the head transaction with the highest cumulative difficulty score; this is analogous to the LCR in bitcoin. The ordering works by following the dependency relationships created by the parent and uncle references. Specifically both parent and uncle transactions must be included in the ordering before the transaction that referenced them. The algorithm recursively orders parent transactions, then uncle transactions at every node in the tree. def order_from(early_node, late_node, carry=None): carry = [] if carry is None else carry if early_node == late_node: return [late_node] if late_node.parent_hash == 0: raise Exception('Root block encountered unexpectedly while ordering graph') main_path = exclude_from(Graph.order_from(early_node, late_node.parent), carry) aux_path = exclude_from(Graph.order_from(early_node, late_node.uncle), carry + main_path) if late_node.uncle is not None else [] return main_path + aux_path + [late_node]
![](https://ip.bitcointalk.org/?u=https%3A%2F%2Fi.imgur.com%2FEc9NX4x.png&t=665&c=luagIhVmZMVh_A)
|
|
|
|
Come-from-Beyond
Legendary
Offline
Activity: 2142
Merit: 1010
Newbie
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
February 09, 2016, 03:04:22 PM |
|
It doesn't look as a DAG. I saw "tree" mentioned. EDIT: Take the picture from Wiki and do your ordering, please. ![](https://ip.bitcointalk.org/?u=https%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2Fthumb%2F3%2F39%2FDirected_acyclic_graph_3.svg%2F356px-Directed_acyclic_graph_3.svg.png&t=665&c=c35p9YUmDPlbog)
|
|
|
|
monsterer
Legendary
Offline
Activity: 1008
Merit: 1007
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
February 09, 2016, 03:13:31 PM |
|
It doesn't look as a DAG. I saw "tree" mentioned. EDIT: Take the picture from Wiki and do your ordering, please. ![](https://ip.bitcointalk.org/?u=https%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2Fthumb%2F3%2F39%2FDirected_acyclic_graph_3.svg%2F356px-Directed_acyclic_graph_3.svg.png&t=665&c=c35p9YUmDPlbog) The number of parents in a given transaction is limited to 2, so I cannot order this example... although I thought that was also true of Tangle?
|
|
|
|
Come-from-Beyond
Legendary
Offline
Activity: 2142
Merit: 1010
Newbie
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
February 09, 2016, 03:34:33 PM |
|
The number of parents in a given transaction is limited to 2, so I cannot order this example... although I thought that was also true of Tangle?
Tangle doesn't claim it can order them, it survives in these conditions by sacrificing ability to subsidize.
|
|
|
|
monsterer
Legendary
Offline
Activity: 1008
Merit: 1007
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
February 09, 2016, 03:51:29 PM |
|
The number of parents in a given transaction is limited to 2, so I cannot order this example... although I thought that was also true of Tangle?
Tangle doesn't claim it can order them, it survives in these conditions by sacrificing ability to subsidize. Does it allow more than two parents? edit: I think if you were willing to give the DAG a little more structure, such that you have a main parent and single optional uncle, you would be able to have a deterministic ordering, but this may be too much work to change now.
|
|
|
|
Come-from-Beyond
Legendary
Offline
Activity: 2142
Merit: 1010
Newbie
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
February 09, 2016, 04:06:51 PM |
|
Does it allow more than two parents?
edit: I think if you were willing to give the DAG a little more structure, such that you have a main parent and single optional uncle, you would be able to have a deterministic ordering, but this may be too much work to change now.
A lot of parents are allowed. We can't say who is parent and who is uncle because nodes don't see the same picture.
|
|
|
|
monsterer
Legendary
Offline
Activity: 1008
Merit: 1007
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
February 09, 2016, 04:17:05 PM |
|
A lot of parents are allowed. We can't say who is parent and who is uncle because nodes don't see the same picture.
Specifically, this is what stops your example from being ordered deterministically: ![](https://ip.bitcointalk.org/?u=https%3A%2F%2Fi.imgur.com%2FHUDrtXo.png&t=665&c=4q01BDXSuERhwA) Node 3 is violating the parent condition by referencing node 8 as a parent, but they are in fact, siblings.
|
|
|
|
Come-from-Beyond
Legendary
Offline
Activity: 2142
Merit: 1010
Newbie
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
February 09, 2016, 04:28:08 PM |
|
Specifically, this is what stops your example from being ordered deterministically: ![](https://ip.bitcointalk.org/?u=https%3A%2F%2Fi.imgur.com%2FHUDrtXo.png&t=665&c=4q01BDXSuERhwA) Node 3 is violating the parent condition by referencing node 8 as a parent, but they are in fact, siblings. Will your design stop working if we assume that network nodes don't see all the graph nodes?
|
|
|
|
monsterer
Legendary
Offline
Activity: 1008
Merit: 1007
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
February 09, 2016, 04:32:06 PM |
|
Specifically, this is what stops your example from being ordered deterministically: ![](https://ip.bitcointalk.org/?u=https%3A%2F%2Fi.imgur.com%2FHUDrtXo.png&t=665&c=4q01BDXSuERhwA) Node 3 is violating the parent condition by referencing node 8 as a parent, but they are in fact, siblings. Will your design stop working if we assume that network nodes don't see all the graph nodes? I don't think so - as long as both parents are provably in the hierarchy at a lower 'height' than each new transaction which gets added, there shouldn't be a problem. edit: so, new transactions depend on the entire tree below them being present, otherwise it's not possible to determine the ancestor relationship correctly. This is akin to blockchain syncing - you cannot add a block if the parent doesn't exist yet. another edit: I cannot take credit for this design either, it is someone else's; I am just putting together a description of how it works, which turned into a white paper
|
|
|
|
Come-from-Beyond
Legendary
Offline
Activity: 2142
Merit: 1010
Newbie
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
February 09, 2016, 04:44:17 PM |
|
I don't think so - as long as both parents are provably in the hierarchy at a lower 'height' than each new transaction which gets added, there shouldn't be a problem.
edit: so, new transactions depend on the entire tree below them being present, otherwise it's not possible to determine the ancestor relationship correctly. This is akin to blockchain syncing - you cannot add a block if the parent doesn't exist yet.
another edit: I cannot take credit for this design either, it is someone else's; I am just putting together a description of how it works, which turned into a white paper
Well, with subsidy it's more profitable to keep DAG very wide, wider DAG = less secure DAG. Without reading the whole paper I don't see why miners will behave as you expect them to behave. It's similar to Selfish Mining problem.
|
|
|
|
monsterer
Legendary
Offline
Activity: 1008
Merit: 1007
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
February 09, 2016, 04:53:23 PM |
|
Well, with subsidy it's more profitable to keep DAG very wide, wider DAG = less secure DAG. Without reading the whole paper I don't see why miners will behave as you expect them to behave. It's similar to Selfish Mining problem.
Why do you say that? For example, if you paid a fixed reward for every transaction, why would it be more profitable to widen the DAG instead of create one long chain?
|
|
|
|
Come-from-Beyond
Legendary
Offline
Activity: 2142
Merit: 1010
Newbie
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
February 09, 2016, 05:07:05 PM |
|
Why do you say that? For example, if you paid a fixed reward for every transaction, why would it be more profitable to widen the DAG instead of create one long chain?
I'm talking about subsidy of 25 BTC per block. It's more profitable to cancel someone's blocks reducing effective hashrate of the system.
|
|
|
|
monsterer
Legendary
Offline
Activity: 1008
Merit: 1007
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
February 09, 2016, 05:15:31 PM |
|
Why do you say that? For example, if you paid a fixed reward for every transaction, why would it be more profitable to widen the DAG instead of create one long chain?
I'm talking about subsidy of 25 BTC per block. It's more profitable to cancel someone's blocks reducing effective hashrate of the system. Are we talking about bitcoin now, or Tangle, I'm confused? ![Huh](https://bitcointalk.org/Smileys/default/huh.gif)
|
|
|
|
Come-from-Beyond
Legendary
Offline
Activity: 2142
Merit: 1010
Newbie
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
February 09, 2016, 05:17:15 PM |
|
Are we talking about bitcoin now, or Tangle, I'm confused? ![Huh](https://bitcointalk.org/Smileys/default/huh.gif) Of Tangle/DAG with subsidy.
|
|
|
|
monsterer
Legendary
Offline
Activity: 1008
Merit: 1007
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
February 09, 2016, 05:21:32 PM |
|
Are we talking about bitcoin now, or Tangle, I'm confused? ![Huh](https://bitcointalk.org/Smileys/default/huh.gif) Of Tangle/DAG with subsidy. Ok, so, if you pay a fixed reward for every transaction except for orphans then it is more profitable overall for you to try and orphan the last transaction, because you put them out of business, correct? edit: this is exactly how bitcoin works at the moment
|
|
|
|
Come-from-Beyond
Legendary
Offline
Activity: 2142
Merit: 1010
Newbie
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
February 09, 2016, 05:58:30 PM |
|
Ok, so, if you pay a fixed reward for every transaction except for orphans then it is more profitable overall for you to try and orphan the last transaction, because you put them out of business, correct?
edit: this is exactly how bitcoin works at the moment
Bitcoin worked even when a single pool controlled 51%+ of hashing power. Anecdotal case proves nothing. I won't post a wall of text about Nash equilibrium, we already derailed the thread too much.
|
|
|
|
monsterer
Legendary
Offline
Activity: 1008
Merit: 1007
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
February 09, 2016, 06:17:42 PM |
|
I won't post a wall of text about Nash equilibrium, we already derailed the thread too much.
Agreed - I've created a separate thread to discuss this further, if you are interested: https://bitcointalk.org/index.php?topic=1358760.0
|
|
|
|
|