
RaiBlocks: A Feeless Distributed Cryptocurrency Network [pdf] - onuryavuz
https://raiblocks.net/media/RaiBlocks_Whitepaper__English.pdf
======
pgt
The RAIblocks whitepaper is worth reading just as a reference on how a
technical paper should be written.

(Disclosure: I became interested in RAI on NYE and recently invested some
money in it)

The RAI secret sauce is the "block lattice" design where each account is its
own blockchain and you only need to care about the chains you want to do
business with, unless you encounter conflicts. Conflicts are resolved by
proof-of-stake voting. If you don't run a full node, you choose a
representative to vote on your behalf.

Today I spent the afternoon playing around with a conceptual design in
ClojureScript for a better desktop wallet: [http://petrustheron.com/posts/xrb-
wallet-concept/](http://petrustheron.com/posts/xrb-wallet-concept/)

From a contrarian investor point-of-view, RAIBlocks is interesting because it
is at the juncture of a terrible wallet experience, a weird name, dubious
exchanges (at least UI wise), an okay website - but an excellent whitepaper
and a working protocol that's free to transact on.

If it scales, I predict it will do well. My biggest concern is C++ as an
implementation language, compared to, say OCaml that is easier to verify. I
also don't have a strong feel for the robustness of the conflict resolution
mechanism. However, the author is proficient and the codebase is readable.

The closest DAG impl. AFAIC, is Hashgraph, based on supermajority consensus
that counts transactions that were "strongly witnessed", but it is patented
with no coin presently for sale.

~~~
XR0CSWV3h3kZWg
One thing that I don't get is what is the incentive to vote on tx?

~~~
pgt
As I see it, if you don't vote the wrong president might win. Dirty txes
jeopardise the asset value and you could be left with a tyrant in your chain
who has even more voting stake. It's self-regulating in that way. But there
may be another consistency issue I'm not aware of.

~~~
XR0CSWV3h3kZWg
So there is a conflicting tx, your software is going to vote on it
automatically. How do you pick which tx is the 'clean' one and which one is
the 'dirty' one?

~~~
pgt
When your node encounters a conflict (a fork), where two signed blocks have
the same parent (double spend attempt), it creates a vote referencing the
block and broadcasts it to the network.

The nodes vote and the weighted majority (>51%) is taken as the real fork. The
weight of a node's vote is the sum of the balances all accounts that have
named that node as its representative.

The key thing here is that when a fork or missing block occurs, _only the
accounts referenced in the transaction are affected_. The rest of the network
proceeds with processing transactions for other accounts.

The voting mechanism is to wait for 4 voting periods (1 minute total) and keep
a cumulative tally of incoming votes from the other representatives. The most
popular block wins majority and is kept. The other block is discarded.

Refer to page 4 (bottom right) of the whitepaper:
[https://raiblocks.net/media/RaiBlocks_Whitepaper__English.pd...](https://raiblocks.net/media/RaiBlocks_Whitepaper__English.pdf)

As far as I am concerned, this is a great design (if you buy into proof-of-
stake, which I do).

------
Mizza
So - the currency is entirely "mined" and distributed already?

And that period is over? So is a small handful of a few developers/early-
adopters that are trying to sell off a currency that they already own in its
entirety?

Okay.

~~~
touchofevil
RaiBlocks was distributed using a captcha faucet.
[https://bitcointalk.org/index.php?topic=1381323.msg14252334#...](https://bitcointalk.org/index.php?topic=1381323.msg14252334#msg14252334)

~~~
pramttl
The only people who would have solved the captcha faucet to get coins at
virtually next to nothing value at that time would be the ones who believed in
the project right from the start which to me is a fair distribution scheme.
ICO based distribution is usually more greed driven. In this case the
developers and team were more motivated in building a new innovative
blockchain protocol as opposed to raising money by simply issuing ERC20
tokens. Speaks a lot about the project in itself. And the team has even
succeeded in building a beautiful, disruptive scalable protocol and currency
with no transaction fee. I've tried RaiBlocks and so far have been impressed.

------
CryptoPunk
A word of caution: while DAG-only chains are a promising area of research for
cryptocurrency data structures, there are many unresolved problems with them.

IOTA solves it with a centralized coordinator and claims to have decentralized
solutions being planned. RaiBlocks is, in my opinion, more honest about its
vulnerabilities and its progress in solving them (they say they're working on
it). Since RaiBlocks has no centralized coordinator, it could come under
attack as soon as a shorting market emerges for it.

------
cies
Glad to see a coin that has it's own codebase (not some fork). And the lattice
approach sure is innovative :)

~~~
neuronexmachina
For the curious, the repo is here:
[https://github.com/clemahieu/raiblocks](https://github.com/clemahieu/raiblocks)

Looking at the commit stats, it looks like almost all the work so far is by
clemahieu. It'll be interesting to see if his codebase is solid enough to
allow more contributors to easily hop in.

I thought their wiki page listing potential attacks was also pretty
interesting:
[https://github.com/clemahieu/raiblocks/wiki/Attacks](https://github.com/clemahieu/raiblocks/wiki/Attacks)

------
joeblau
Can someone help me understand.

If a block chain (or whatever you want to call your token of choice) doesn't
have any fees, how is it different from just having a database. No fees mean
that every transaction has the same value so there is no transaction
prioriization other than time. This seems like a glorified eventually
consistent database synchronization algorithm. In a fee based blockchain, I
can pay more to get my transactions through before someone else.

Again... I'm not a PHD, nor am I even that smart so can someone break this
down.

~~~
cies
The nodes are paid from "created coins", at the expense of everyone diluting.
Could call it artificial inflation.

> This seems like a glorified eventually consistent database synchronization
> algorithm.

To some extend that is what a blockchain is. Also: immutable, no-need-to-
trust-every-node, KV, and sometimes with the ability to perform smart
contracts.

> In a fee based blockchain, I can pay more to get my transactions through
> before someone else.

Yes. Either way, as long as you tx comes through "quick enough"... :)

~~~
joeblau
Ah okay thanks for helping. I guess in the case of RaiBlocks, since you're
only transacting currency (not Turing complete smart contracts) there isn't
really a need for fees to prevent the halting problem like you have with
Ethereum.

I've made a list of tokens that I'm trying to categorize[1] so I think I've
got RaiBlocks in the right place.

Is Bitcoin slightly over designed in how the fee structure is implemented for
the problem it's solving?

[1] - [https://cryptostream.com/token-
utility/](https://cryptostream.com/token-utility/)

~~~
sova
In BTC land PoW = fee. In RaiBlocks they use it more like a Captcha before
sending a transaction, effectively getting rid of Fees because it's just as
useful anti-spam. (However, I think that fee transactions are actually quite
important in a blockchain because you don't want nodes wasting resource adding
and checking nonsense even if the captcha was computed.)

------
mooneater
I would love to see a balanced discussion of pros and cons of the unusual
lattice design used by raiblocks.

~~~
EthanHeilman
I often find myself judging cryptocurrency whitepapers by the number and
breath of citations. Has the author's read previous attack papers and
developed appropriate countermeasures. How does it compare to other schemes?
Are the authors aware of the definitions and methods used in distributed
systems?

However this approach should be tempered by the fact that the Bitcoin
whitepaper would score poorly on this metric.

~~~
SimbaOnSteroids
BTC was also closer to the ground floor of this research, you wouldn't expect
it to be able to cite too many papers in similar subjects.

------
macawfish
I feel stupid cause I brushed this one aside in the summer in favor of iota...
If only I'd found out about the faucet!

~~~
KitDuncan
Same. Even though HackerNews despises IOTA for rolling their own crypto,
building on ternary and having a centralized coordinator, I still think that
IF IOTA manages to solve their issues and can establish themselves as an IOT
powerhouse, they'll be absolutely enormous.

Also IOTA and Rai aren't really competitors. So for the time being, I hold
both.

~~~
macawfish
Cryptocurrency is about new, exciting ways of applying cryptography. People
idolize the blockchain, but I think what's cooler than that is coming up with
new ways to use crypto. DAGs are very cool. They can be used to compress
volumetric data down to less than 1 bit/voxel! So its exciting to me that
people are exploring DAGs + cryptography.

Anyway, the lesson for me was too look past the hype just a little deeper. At
the time raiblocks was an underdog, so I closed the slack and forgot about it.
At the very least, I could have learned a little more about it.

Lately I've really been curious about pascalcoin's approach. Its blockchain is
trimmed constantly, acting as a short term, working memory. Its supposed to be
very fast. Unfortunately, it's written in pascal, which has very crusty tools!
Someone should clone pascalcoin in another obscure but modern language with
cross platform tools. I think it'd be a hit. Haskellcoin? That rhymes with
Pascal coin and Haskell is cooler. Ocamlcoin? Doesn't rhyme but Ocaml is cool
too.

------
oculusthrift
the concept seems cool but the creator doesn’t inspire much hope to me

~~~
MadSudaca
why's that?

~~~
oculusthrift
[https://www.reddit.com/r/CryptoCurrency/comments/7nnf4v/yes_...](https://www.reddit.com/r/CryptoCurrency/comments/7nnf4v/yes_there_is_a_bug_in_the_xrb_node_software_no_it/)

~~~
realusername
How is that an issue? It looks like they are trying to help.

