Understanding RSK-Bitcoin's Smart contract platform(Updated)

in #bitcoin5 years ago (edited)

image.png

RSK is a really interesting way to bring more financial application to Bitcoin.
Some might say its the Ethereum killer-combining smart contract with the netowork effect of Bitcoin.
Others might say its a platform that can help Bitcoin and coexist with Ethereum. It just another way to use Bitcoin.
Now it up to you decide which way to pick.
Other newer blochains such as EOS were called Ethereum killers not much luck right?
However what ever the case is RSK is a revolutionary product for Bitcoin.

Do note much of the article came from my previous but slightly out dated article on RSK

So you might see Cheetah bot in the comments :P

Anyway let begin the show-shall we?


A lot of people assume that Bitcoin can't do smart contracts. While this was not entirety true -the mainnet has limited smart contract capabilities. Lightning Network is an example of such smart contracts.
However for complex smart contract that we see on Ethereum-Bitcoin main net might not be the right platform.
However with RSK, you can now see/bring your favorite Eth dapps to be used with Bitcoin.

As RSK is a sidechain it won't be plagued by onchain scaling issues found on main net.

A sidechain is separate chain that connects with the main chain. This allows bitcoin to have an Ethereum like system without clogging up the main chain.

RSK is a Bitcoin Sidechain — a separate blockchain that carries a "separate token(Bitcoin pegged)" but is able to exchange tokens back and forth with the main Bitcoin blockchain.
Users can move bitcoin to the RSK chain, make use of the converted bitcoin, and then eventually move their tokens back, as bitcoin, to the main blockchain by a 2waypeg( decentralized bitcoin backed tokens) if the user desires to unlock such coins. RSK uses a traceable and verifiable process to peg bitcoin 1:1 on the sidechain.

How the Bitcoin is pegged in the RSK sidechain:

When a Bitcoin user wants to use the 2-Way Peg, he sends a transaction to a multisig wallet whose funds are secured by the Federation. The same public key associated with the source bitcoins in this transaction is used on the RSK chain to store the Smart Bitcoins. This means that the private key that controlled the Bitcoins in the Bitcoin blockchain can be used to control an account on the RSK chain. Although both public and private keys are similar, each blockchain encodes the address in a different format. This means that the addresses on both blockchains are different so a user able to send mainnet Bitcoin to rsk should not be possible and allows to prevent such mistakes.

RSK has a Federation of well-known and respected community members (blockchain companies with high security standards). Each member is identified by a public key for the block checkpoint signature scheme. The Federation is able to add or remove members using an on-chain voting system. The conditions to become a Federation member (known as Federation Member Requirements or FMR) establish basic security policies and legal requirements that all members must meet.

The Federation provides several services to the network. Each member can choose to provide any of the following services:

  • Two-way peg with Bitcoin
  • Checkpointing services

A requirement for being part of the Federation is the ability to audit the
proper behavior of the software that powers the node, especially regarding the
correctness of the component that decides on releasing BTC funds.
RSK Labs developed a firmware for a Hardware Security Module (HSM) that the Federation members can use, in order to provide maximum security for their private keys and, in the future, to be able to enforce a transaction validation protocol to further improve security.

With the HSM, Federation members don't have access to the private keys. As such the worst thing they can do is unplug the HSMs and stall the withdraws but they can't steal funds.


No single Federation members can control the locked BTCs, but only a
majority of them has the ability to release BTC funds.

Each Federation members has a key to protect the BTC that are locked, and receiving commands from the RSK blockchain, it unlocks the BTC that need to be transferred back into Bitcoin.

Each federation member can either accept or reject a Federation change.
The process, which is infrequent, is done by a smart-contract, so it’s open to the public.
The protocol has a consensus enforced delay of one week until the change is activated.
This allows users to transfer the Bitcoins back to the Bitcoin network in case they do not trust the new Federation composition

Federation members are awarded 1% of the transaction fees generated on RSK,
in order to cover the hardware and maintenance costs.

The member of the RSK Federation are:
(This is based off list on previous mentioned articles) Bitcointoyou, Bitex, Bitfinex, bitFlyer, Bitgo, Bitoasis, Bitpay, Bitso, Bits of Gold, Bitstamp, Blockchain, Blockchain Intelligence Group, Blocktrail, BTCC, BitKan, JAXX, SurBTC, CoinBR, Huobi, OKCoin, Paycase,Unocoin, Xapo with more to come in the near future.

So yes while a Federation might appear to look very centralized it not that bad.
In the future If Bitcoin adds special opcodes or extensibility to validate SPV proofs as a the Federation role as STTPs will no longer be necessary, and the RSK community may implement the changes to
adapt RSK to the trust-free system.
The RSK community have also proposed a drivechain BIP, which enables miners to participate in the securing of the Bitcoins in the peg, and decreases the trust required on the STTPs even more.

Here the basic idea behind a drivechain:
https://bravenewcoin.com/insights/can-drivechain-make-bitcoin-sidechains-a-reality

How are blocks produces?

RSK achieves 100-300 transactions per second natively on chain and confirms most payments in less than 20 seconds, while leveraging Bitcoin's proof of work security(merged mining).

Merge mining is a technique that allows Bitcoin miners to mine other blockhains simultaneously with nearly zero marginal cost.
The same mining infrastructure and setup they use to mine
Bitcoins is reused to mine RSK simultaneously.

This means that, as RSK rewards the miners with additional transaction
fees, the incentive for merged mining becomes high. Plus it helps reuse the energy and reduce eco costs.

As the RSK chain is still new not enough miner might merge mine as of first.
As such the Federation provides a checkpointing services in the early stages.
The concept of checkpoints:

The checkpoints are hard coded into the standard client. The concept is, that the standard client will accept all transactions up to the checkpoint as valid and irreversible. If anyone tries to fork the blockchain starting from a block before the checkpoint, the client will not accept the fork. This makes those blocks "set in stone".

While RSK nodes are not forced to follow the checkpoints, but can use this information to detect network-wide attacks and enter a safe mode.

By default, clients stop using federated checkpoints when RSK hashing power is over 66% of the maximum BTC hashing difficulty observed in the main chain and the fees paid in a block are higher or equal to the average reward of a Bitcoin block. However, any user can re-configure this local policy back for security reasons.

Mining pools which account for 80-90% of bitcoin hashrate has plans to merge mine RSK in the various stages and times.

Scaling the sidechain

While the sidechain doesn't share space with the main net like all other chains it will face scaling issues as well.
Some ways this will be done to counter and scale are:

RSK lowers it block time be using the DECOR + GHOST protocol to reduce the block interval to an average of 10 seconds, which is lower than the current Ethereum block with an average block interval of 16 seconds. This allow more blocks to be made which allow more tx to occur.

To increase scalability the Lumino Transaction Compression Protocol (LTCP), RSK will be able to process up to 2000 tps on chain! LTCP can also be thought of as RSK version of Segwit.
As such RSK version of the LN is Lumino Network. Once the Lumino Network is deployed over RSK, it will allow up to 20k-100K+ tps off-chain taking Bitcoin to Visa processing levels.

Instead of forcing users to move contracts to a particular orphaned data partition, the Rootstock platform enables smart contracts to dynamically update specified addresses dynamically. Therefore, the entire node by dividing the transaction set to parallel transaction verification. This is a way to improve CPU resource consumption and make scalability easier for many data-processing cores at each Rootstock node.

Other way RSK is scaling

  • Storage improvements: significantly reduce required blockchain storage space while at the same time will set the foundations for future improvements such as warp sync, and garbage collector (further information on Unitrie).
  • Blockchain Compression, will further minimize the required resources to run a node, making it easier for third parties to run their own instances.
  • Storage Rent: Rapid growth of space requirements needs to be addressed in several ways.
  • Complementing blockchain compression features, storage rent establish the right economic incentives so that today’s users cannot abuse the blockchain storage, at the expense of future users, leading to a sustainable blockchain. It also makes sure that block verification remains fast and within the limits of a standard laptop. The next step, called storage hibernation, will enable freeing old unused data to shrink the blockchain state even more.
  • Full Nodes Rewards: Brings economic incentives to those running RSK full nodes, favouring the network decentralization. This allow the chain to inc onchain scaling without affecting node count.

An interesting concept RSK is working on for ease of use is Meta Transactions. With it, applications can pay transaction fees with the same token that they are transferring. Avoiding the need of having "gas" to move the token.

Some projects working on RSK:
Maker but on Bitcoin: https://moneyonchain.com/
Charity dapp: http://www.bitgivefoundation.org/
And more to come.

A wallet made just for RSK is on the works and coming out this year. In the mean time you can use multicoin wallets that support RSK.
https://github.com/rsksmart/rskj/wiki/wallets

Many of you may of also hear of RIF.
RIF is a utility token made by RSK labs. It does not affect how RSK works but is used by product made by the dev team built on RSK.
You can find more information in my blog later on. Will link it here or in the comments :P

Sources:
https://steemit.com/bitcoin/@sames/bitcoin-s-ethereum-killer-rsk-co
https://bravenewcoin.com/news/rsk-federation-finds-support-from-24-leading-bitcoin-industry-companies/
https://bravenewcoin.com/news/can-drivechain-make-bitcoin-sidechains-a-reality/
https://www.coincache.net/2017/12/27/rootstock-rsk-can-bitcoin/
https://btcmanager.com/rsk-federation-tempts-major-bitcoin-companies/
https://btcmanager.com/rsk-bitcoin-based-smart-contract-platform-now-secured-by-1-in-10-miners/
https://bitcoinexchangeguide.com/rsk/
https://www.rsk.co/noticia/development-roadmap/
https://bitcoin.stackexchange.com/questions/1797/what-are-checkpoints

Sort:  

Got to know about it today thanks for sharing

You got a 31.13% upvote from @spydo courtesy of @sames! We offer 100% Payout and Curation. Thank you.

You got a 24.60% upvote from @brupvoter courtesy of @sames!

You got a 9.09% upvote from @upvoteturtle. Thank you very much for using this upvote service. 😍
We would be very happy about a delegation to grow and increase the maximum upvote!😉
10SP 20SP 50SP 100SP 200SP
This voting Bot pays 100% out to all Delegators and gives an upvote Revenue of 120%

Thanks for whoever sent it for me :P

Hi, @sames!

You just got a 1.89% upvote from SteemPlus!
To get higher upvotes, earn more SteemPlus Points (SPP). On your Steemit wallet, check your SPP balance and click on "How to earn SPP?" to find out all the ways to earn.
If you're not using SteemPlus yet, please check our last posts in here to see the many ways in which SteemPlus can improve your Steem experience on Steemit and Busy.

Congratulations @sames! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

You published a post every day of the week
You distributed more than 34000 upvotes. Your next target is to reach 35000 upvotes.

You can view your badges on your Steem Board and compare to others on the Steem Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

To support your work, I also upvoted your post!

Vote for @Steemitboard as a witness to get one more award and increased upvotes!

Hi @sames!

Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your UA account score is currently 4.794 which ranks you at #1452 across all Steem accounts.
Your rank has dropped 18 places in the last three days (old rank 1434).

In our last Algorithmic Curation Round, consisting of 181 contributions, your post is ranked at #37.

Evaluation of your UA score:
  • Some people are already following you, keep going!
  • The readers appreciate your great work!
  • Good user engagement!

Feel free to join our @steem-ua Discord server