a question for opencoin

119 views
Skip to first unread message

Melvin Carvalho

unread,
May 16, 2013, 4:55:08 AM5/16/13
to rippleusers
Just thinking about the future ... I have a hypothetical scenario ...

Consider a universe where 5 servers are running in ripple with an unique node list.

As the ledger becomes large the debate arises as to whether servers should be given XRP from the mint to compensate them for running the service.

Opencoin says no, but the other 4 says yes. 

The other 4 decide to reward themselves some xrp as a one off payment and are able to reach the 80% consensus threshold.

Would opencoin be obliged to agree with the will of the consensus at his point, or would it result in the ripple network being split?

Jorge Timón

unread,
May 16, 2013, 9:15:49 AM5/16/13
to rippl...@googlegroups.com
The problem is there's no secure way to reward servers.
You can run a single server and make it look like a thousand of them.
In bitcoin there's proof of work. In Ripple, each node is responsible
to get proofs outside the system that the nodes in their UNL. Each
node has his UNL, but that's "outside the system".
The way I understand the system is without a "80% consensus
threshold", there's no voting.
You just ignore anyone who doesn't follow the rules to build new ledgers.
So any discrepancy in the rules will immediately result in a hardfork or split.
I don't undesrtand how a hardfork like the one you're describing (just
not to compansate validator servers) would be manged neither though.

I've created this thread: https://ripple.com/forum/viewtopic.php?f=2&t=2546
> --
> You received this message because you are subscribed to the Google Groups
> "Ripple Project" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to rippleusers...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>


--
Jorge Timón

http://freico.in/

Ryan Fugger

unread,
May 16, 2013, 10:33:47 AM5/16/13
to Ripple Project
Technically, unless OpenCoin in this scenario updated their software, it would result in a network split, since OpenCoin's software would be unable to recognize the extra XRP as valid.

So the question is whether OpenCoin would take the social/business decision to update their software.  It would obviously depend on the situation, but I'm sure they would tend extremely strongly towards maintaining the network, and especially the initial coin allocation, as originally intended.  Other participants would be unlikely to propose such changes, since much of the value of global-consensus cryptocurrency networks is the tacit agreement of all participants to continue to play by the original rules unless a change is needed to protect the operation of the network itself.  Once you start changing rules midstream to benefit certain players, you risk alienating users who participated with the expectation of the original rules being maintained.

Jorge Timón

unread,
May 17, 2013, 3:51:31 AM5/17/13
to rippl...@googlegroups.com
I repeat this again. Xrp fees are destroyed because there's no safe
way to give them to the servers.

If I pay the fees to the server I want, well, I run my own server and
pay fees to myself.
Then pay infinitely between two of my accounts and the networks can't
do nothing about spam because I spam at no cost.
So that's not the answer, but if you find another way to safely pay
servers maybe we can build a demurrage xrp.


On 5/17/13, Apostolis Xekoukoulotakis <xeko...@gmail.com> wrote:
> I think that as soon as we obtain the source code, we need to do exactly
> what you propose. Instead of giving xrp to opencoin, give them to the
> servers.
> Each server could have his own xrp price per transaction. People trust
> specific servers so , they will give xrp only to the trustworthy servers,
> there is no sybil problem.
>
> Opencoin is afraid of this and thus doesnt provide the source code at this
>
> moment until a big number of users become part of the ripple network.
>
> The way to fork opencoin should then be to create gateways between the 2
> networks. The servers of the free_ripple will give their users the ability
> to transact with the new network if possible, if there is no path, they
> will simply use the old ripple. That way the transition to the free ripple
> will be seamless, the user will not notice any loss of usability, only a
> possible decrease in transaction costs.
>
>
>
> On Thursday, May 16, 2013 5:33:47 PM UTC+3, Ryan Fugger wrote:
>>
>> On Thu, May 16, 2013 at 1:55 AM, Melvin Carvalho
>> <melvinc...@gmail.com<javascript:>

Apostolis Xekoukoulotakis

unread,
May 17, 2013, 9:03:30 AM5/17/13
to rippl...@googlegroups.com
Jorge, what happens when you have only yourself in the trusted list? Will your transaction be accepted in the ledger?

Also, if you spam your own server, who is the network ? , who is actually losing money ?,(electricity, network bandwidth, etc,) ?

Do you want to protect yourself from yourself?



2013/5/17 Jorge Timón <jti...@monetize.io>

--
You received this message because you are subscribed to a topic in the Google Groups "Ripple Project" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/rippleusers/3d3tj0bb6jU/unsubscribe?hl=en-US.
To unsubscribe from this group and all its topics, send an email to rippleusers...@googlegroups.com.

For more options, visit https://groups.google.com/groups/opt_out.





--

Sincerely yours, 
     Apostolis Xekoukoulotakis

Jorge Timón

unread,
May 17, 2013, 10:01:18 AM5/17/13
to rippl...@googlegroups.com
If you're only one server you don't need ripple at all, but I will
continue with your example.

If you have more than one user for that single server, but you don't
want (or you can't) to use IP info from the users nor register them,
you have to put some fee so that it is not free to spam you and DoS
attack you.

If you create two accounts in villages and send hours from one to
another infinitely Ryan will just delete those users as admin.
Put p2p systems have no admin to kick users out.

Apostolis Xekoukoulotakis

unread,
May 17, 2013, 10:12:04 AM5/17/13
to rippl...@googlegroups.com
So if there is a fee that is given to you, the server owner (in your example), you will be able to spam yourself, others wont be able to.

Do you want to protect yourself from spam attacks from yourself?

Jorge Timón

unread,
May 17, 2013, 10:22:46 AM5/17/13
to rippl...@googlegroups.com
No, if there was only one server it could safely charge the fees and
get them to itself.
But that's not the case, there are an arbitrary number of servers,
that's the problem.
You cannot share proportionally because anyone can manage a server
that looks like a thousand of them to get a bigger share.

Apostolis Xekoukoulotakis

unread,
May 17, 2013, 10:27:36 AM5/17/13
to rippl...@googlegroups.com
So why not give a fee to a trusted list of servers? 
Do we HAVE to give money to people/servers we dont know?


2013/5/17 Jorge Timón <jti...@monetize.io>

Jorge Timón

unread,
May 17, 2013, 10:42:00 AM5/17/13
to rippl...@googlegroups.com
If each user can chose its list of trusted servers, my two attacking
users are in a server I control so again I pay to myself and spam the
network.
If the list is the same for all users, you're introducing centralization.

The xrp fees in the current system are destroyed, not given to people
you don't know.

Apostolis Xekoukoulotakis

unread,
May 17, 2013, 10:48:26 AM5/17/13
to rippl...@googlegroups.com
The trusted list is the list that takes part in the ledger. When a server participates in the consensus of the ledger he receives a fee.
If someone wants to spam the network , he has to pay.

xrp can even be credit, dont worry about this for the moment.

Jorge Timón

unread,
May 17, 2013, 11:15:26 AM5/17/13
to rippl...@googlegroups.com
On 5/17/13, Apostolis Xekoukoulotakis <xeko...@gmail.com> wrote:
> The trusted list is the list that takes part in the ledger. When a server
> participates in the consensus of the ledger he receives a fee.
> If someone wants to spam the network , he has to pay.

As far as I know, there's not a list of all the nodes participating in
the consensus anywhere.
Each node has its own list of trusted nodes (UNL) and that's what
connects them in one single network.
The rules are designed so that a consensus is achieved rapidly even if
the topology of the network is not known by the individual peers. The
rules must be also designed so that a node not following the rules
that lead to a consensus can be detected and ignored.
That's why sybil attacks are harmless for this system, because no
matter how many nodes you control, we're going to reach consensus if
you follow the rules with your infinite nodes.
If you don't follow the rules, I'll have to ignore your infinite nodes.
You, no, you don't have a universal list of nodes to send the fees to.

> xrp can even be credit, dont worry about this for the moment.

Ok, we can this leave for later.
In fact, in freicoin colored fees doesn't have to be necessarily frc,
they can be other currencies if the miner values it (or sells the fee
directly for another currency he values).
The main problem is you don't have a universal list of unique nodes,
of servers validating transactions.

Apostolis Xekoukoulotakis

unread,
May 17, 2013, 11:29:05 AM5/17/13
to rippl...@googlegroups.com
Have you then thought of a fee that propagates through that gossip protocol?

In ripple, we trust a small number of people, but we are able to transact with people we dont know, right?

Do we need to know ALL nodes to give them fees?


2013/5/17 Jorge Timón <jti...@monetize.io>

Jorge Timón

unread,
May 17, 2013, 12:18:41 PM5/17/13
to rippl...@googlegroups.com
On 5/17/13, Apostolis Xekoukoulotakis <xeko...@gmail.com> wrote:
> Have you then thought of a fee that propagates through that gossip
> protocol?
>
> In ripple, we trust a small number of people, but we are able to transact
> with people we dont know, right?
>
> Do we need to know ALL nodes to give them fees?

I hadn't thought about this.
Let me see if I understand you. A users gives the transaction to a
server, who gets a proportion of the fee, the nodes in his UNL get
another proportion, the nodes of the nodes...
For a pre-defined number of steps to consume all the fee.

It's an interesting suggestion, but I need to think more deeply about
the implications.

Apostolis Xekoukoulotakis

unread,
May 17, 2013, 3:54:53 PM5/17/13
to rippl...@googlegroups.com
Servers could even have credit balances between themselves like in Ripple. They could thus send credit tokens in the gossip protocol.
Then one server would transfer money to the other if and only if the traffic from one server is bigger than the other.


2013/5/17 Jorge Timón <jti...@monetize.io>
--
You received this message because you are subscribed to a topic in the Google Groups "Ripple Project" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/rippleusers/3d3tj0bb6jU/unsubscribe?hl=en-US.
To unsubscribe from this group and all its topics, send an email to rippleusers...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Jorge Timón

unread,
May 18, 2013, 7:19:08 AM5/18/13
to rippl...@googlegroups.com
You said we would leave that for later. If it can't work with xrp, it
can't work with IOUs.
I've been re-watching the video several times with your suggestion in
mind: http://www.youtube.com/watch?v=pj1QVb1vlC0

The first thing I realized is that fees can't be propagated, because
the transaction would be different in each propagation path and you
couldn't reach consensus.

So let's say the node that creates the transaction pays the fee to the
nodes in its UNL.
But then again, how does the system knows that nodes in Alice's UNL
aren't also under Alice's control?
How the system knows that the creator of the transaction is not paying
the fee to himself?

It's an awkward fact, but with this system (if you want to keep it
fully p2p) fees must be destroyed. Well, the system is not really p2p
yet, I mean when it is open sourced.

The problem is not "who to pay the fees" but rather "how do you know
that users don't pay the fees to themselves".
> You received this message because you are subscribed to the Google Groups
> "Ripple Project" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to rippleusers...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>


--
Jorge Timón

http://freico.in/

Apostolis Xekoukoulotakis

unread,
May 18, 2013, 10:49:23 AM5/18/13
to rippl...@googlegroups.com
If Bob gives fees to Alice , does Bob care if Alice gives fees to herself? Does Bob care if Alice is lying to herself?
Bob doesn't know what Alice is doing and doesn't care.
Isnt this the way ripple work?

Each validator informs its peers of its price. The other validators either accept his price or doesnt give him proposals or give him proposals with no fees.

The trusted list here is the list of validators that you believe will propagate your proposal if you give them a fee.
The UNL list is the list that makes you certain that there is global consensus of the ledger.

Those 2 lists seem to be different.



2013/5/18 Jorge Timón <jti...@monetize.io>

Apostolis Xekoukoulotakis

unread,
May 18, 2013, 11:22:09 AM5/18/13
to rippl...@googlegroups.com
Anyway, this discussion serves no purpose. If people really want to find solutions, they will. 

It is up to the community if it wants to defend ripple's vision for social change.
I dont have anything else to say.


2013/5/18 Apostolis Xekoukoulotakis <xeko...@gmail.com>

Jorge Timón

unread,
May 18, 2013, 12:45:13 PM5/18/13
to rippl...@googlegroups.com
On 5/18/13, Apostolis Xekoukoulotakis <xeko...@gmail.com> wrote:
> If Bob gives fees to Alice , does Bob care if Alice gives fees to herself?
> Does Bob care if Alice is lying to herself?

Is lying to the whole network if she gets a free transaction into the ledger.
If Alice pays Bob, Bob can be certain that Alice has paid to someone.
But if Alice pays Carol, Bob has no way to be sure that Alice and
Carol aren't the same person and therefore Alice hasn't really paid to
anyone.

> Bob doesn't know what Alice is doing and doesn't care.
> Isnt this the way ripple work?

But the ledger must be the same for everyone. Every transaction and
fee must be registered the same way by every node.

> Each validator informs its peers of its price. The other validators either
> accept his price or doesnt give him proposals or give him proposals with no
> fees.
>
> The trusted list here is the list of validators that you believe will
> propagate your proposal if you give them a fee.
> The UNL list is the list that makes you certain that there is global
> consensus of the ledger.
>
> Those 2 lists seem to be different.

Maybe something can be done if we define two list. The UNL list is the
list of the nodes you listen to.
You want nodes to keep another list of the nodes they believe listen to him.
Is that what you're saying?
I don't see how paying the fees to the nodes that listen to you
instead of the nodes you listen to changes anything.

> Anyway, this discussion serves no purpose. If people really want to find
> solutions, they will.
>
> It is up to the community if it wants to defend ripple's vision for social
> change.
> I dont have anything else to say.

With this discussion we have a chance of solving the problem at hand
or at least learn why we can't solve it. Who knows, maybe we came up
with another better system.
I'm not criticizing your attempts to discourage you, I just want to
help improve the idea. Maybe in a later iteration you solve the
problems I present with another idea.
But if you want to stop with the exercise I'm fine too.

Apostolis Xekoukoulotakis

unread,
May 18, 2013, 1:05:28 PM5/18/13
to rippl...@googlegroups.com
There is no need for fees in the ledger. No global knowledge,local.

The reason I stop is because someone has to write the code, otherwise this is useless.
I am currently working on something else, so It is not up to me. Others need to chip in.


2013/5/18 Jorge Timón <jti...@monetize.io>

Jorge Timón

unread,
May 18, 2013, 1:30:06 PM5/18/13
to rippl...@googlegroups.com
Well, if you don't need global knowledge I think something closer to
2PC protocol design would be better. More scalable and private, but
with its own limitations. Without a cash host currency.
If you don't need global knowlegde, don't start with this consensus
algorithm because that's what it solves.

If there's no design there will be no implementation, that's for sure.
You haven't explained how it could work, how would anyone be able to
implement it?

David Schwartz

unread,
May 23, 2013, 6:27:13 AM5/23/13
to rippl...@googlegroups.com

We would have to choose whether to split the network or go along with their will. Basic common sense says that we wouldn't split the network unless we thought the change was worse than the consequences of a split. Frankly, we wanted to do this anyway. We just couldn't think of a way to do it for much the reasons Jorge has been explaining. So if they came up with a fair way to do it, we'd be pretty happy.

We'd have to weigh that against the danger of changing people's expectations though. It's dangerous for a financial system to change its rules and upset people's settled expectation, even for improvements. So it would be a judgment call whether we'd support it or not as a network change.

DS
 

Melvin Carvalho

unread,
May 23, 2013, 6:40:18 AM5/23/13
to rippleusers
Thanks for the explanation.  That makes sense.  I guess it comes down to economic incentives. 

Just thinking hypothetically, what would does a split network imply.  Is it two competing ledgers with the same genesis block. 

Or would it essentially mean one node set having to start from scratch? 

e.g
 

DS
 

David Schwartz

unread,
May 23, 2013, 8:54:22 PM5/23/13
to rippl...@googlegroups.com

On Thursday, May 23, 2013 3:40:18 AM UTC-7, melvincarvalho wrote:
Just thinking hypothetically, what would does a split network imply.  Is it two competing ledgers with the same genesis block. 

Or would it essentially mean one node set having to start from scratch?

Generally, if you're talking about two ledgers that have a different genesis, you consider them separate chains rather than a split. It's basically a matter of semantics. I can't imagine anyone ever wanting or creating an actual ledger split, other than as a result of negligence or malice. I can imagine people starting from different genesis ledgers to create distinct networks.

DS

Reply all
Reply to author
Forward
0 new messages