This blog is a combination of posts made by FunFair founder Jez San in this Reddit thread between 4 and 5 August 2017. As they are one of the most critical elements of the FunFair protocol, and Jez relates them to other State Channel solutions, we hope it is helpful in explaining more about what makes FunFair unique.
State Channels are a catch all that covers everything related to this technology. The first State Channel implementation and invention was named the Lightning Network, and it will hopefully see the light of day soon (on the bitcoin network). This is known as a payment channel, since that’s what bitcoin does (payments, doesn’t have smart contracts so doesn’t need to send any other form of data).
There are other bitcoin payment channels, like BitFury’s Flare etc.
I will try to highlight my understanding of the difference between FunFair’s own Fate Channels and Raiden (note: the Ethereum solution), but of course there are other State Channel implementations under development and they too have their own codenames. It’s up to the creators of each implementation to name them however they want, as you can see, so far each individual implementation gets named by its creators.
Raiden is BrainBot’s name for their implementation of a State Channel service being developed on Ethereum. Raiden, when it launches, provides users the ability to transfer tokens from point to point, utilising a network of pre-opened channels. At this time, it seems it might initially be limited to this ‘payment channel’ use case & further more general ‘state’ functionality seems destined for a future version. Raiden intends for users to leave channels open (and funds locked up inside) for long periods of time.
Our Fate Channels are a form of State Channels, just like Raiden is also a form of State Channel – but they’re designed to accomplish different goals. Also, Raiden isn’t ready yet, and is quite late on its schedule, and the developer release hasn’t happened yet, let alone a publicly usable version. To date, Funfair’s Fate Channels are some of the first that we know of that are live that the public can use.
Raiden is designed to send tokens from person to person in a network. It finds a route through multiple people’s open channels to get from A to B via C. Raiden is at present limited to sending tokens. It uses a smart contract thats unique for each token that it supports. In the future it will do more, but not yet.
How are ours different?
Fate Channels is FunFair’s name for a different type of State Channel service. We use it to generate realtime random numbers as a collaboration between two parties (the player, and the fate channel service). It also does player interactions (player clicks HIT, and gets a new card in blackjack game etc), and it does micropayments with zero gas cost (bets, wins etc). We call it Fate Channels because we use it to produce random numbers. Fate Channels are opened at the start of a game session, and are closed when the player is done (so settlement is fast). The funds are returned to the player’s account immediately the games are over – the player doesn’t leave funds tied up in the state channel (unlike Raiden & other payment/state channels)
Fate Channels also do micropayments (bets, wins) but also player interactions (of game commands, eg: Hit, Stick in blackjack) and collaborative random number generation between player and house. They’re more generalised states, but they are designed to work Player to House – ie, A to B. For now, it is a company server at the other end of the fate channels (while they’re in prototype form) but when the tech is finished the V4 Fate Channels will be fully peer to peer. That’s why we’re not releasing it today – because it already works well in our showcase but isn’t where we want it to be before release. In Fate Channels, the channel is open only during the game session. When the session is done and the player has finished playing, their funds return to their account immediately (unlike Raiden).
Want to know more about Fate Channels? Check out our White Papers or join our Discord or Telegram groups to put your questions to the team.