Upgrade to Pro — share decks privately, control downloads, hide ads and more …

RootStockについて

7c77508ff5abcbff1058a9e67c98688f?s=47 Yuki Tanaka
October 30, 2018

 RootStockについて

7c77508ff5abcbff1058a9e67c98688f?s=128

Yuki Tanaka

October 30, 2018
Tweet

Transcript

  1. RootStockについて 最近どんな感じ? @GaNZnO

  2. 自己紹介 田中優貴(@GaNZnO) リクルートでBlockchainのR&Dやってます。 【最近の興味】 ・Decentralized Identifier (協力) 小林孝裕 フリーのBlockchainエンジニア。Wallet周りをいじってます 【最近の興味】

    ・サービス作り、P2P
  3. 質問 Rootstockと言われて、、 ・Bitcoinでチューリング完全なSmartContract書ける! ・Sidechain使ってる! ・MergedMining使ってる! 上記のいくつくらい思い浮かびますか?

  4. 今回の趣旨 ・RootStockはおそらく皆概要ぐらい知ってそう ・Sidechain使ってることも知ってそう ・MergedMiningを使ってることも知ってそう ていうかだいたい知ってそう ・実際どう使うの?(とちょっとした技術トピック) ・今どんな感じなの? にフォーカスしました。 ※誤りがある部分について、指摘いただけると嬉しいです!

  5. アジェンダ ・RootStockの概要 ・Sidechainの機構 ・MergedMiningの機構 ・開発のやり方 ・まとめ

  6. ・RootStockの概要 ・Sidechainの機構 ・MergedMiningの機構 ・開発のやり方 ・まとめ

  7. RootStock(RSK)概要 Bitcoinのサイドチェーンで稼働する チューリング完全なスマートコントラクトの実行基盤 マイニングは10秒に一度。Merged Mining(後述) Two-way-pegのSidechainでRSKで流通するコインはBitcoinから流入して来たコインの み(There is no currency

    issuance.) RSKで流通するコインの名前はRBTC (もともとSBTCだった、公式サイト内で表記揺れが激しい) 10秒じゃない、、 (2018/10/23) avg block time 33秒
  8. RSK稼働状況 2018年1月にメインネットにリリース 現在のバージョンは0.5.2 (2018/10/24) 暫定対応事項 現在実施中のBug Bounty Programが終了するまでの間、 BTC からRBTCへの変換に利用するBTCのアドレスに制限がある

    BTCアドレスを事前にWhiteListに登録しておかないと、RBTCに変換できない(セキュリティ 的な暫定処置の模様) 具体的なWhiteListへの登録方法 Mainnet -> 所定のフォームに記載して申請     (何らかのプロジェクトである必要がある?プロジェクトに関する記入が必須) Testnet -> Gitterでお願いする(割とすぐ登録してくれる)
  9. ・RootStockの概要 ・Sidechainの機構 ・MergedMiningの機構 ・開発のやり方 ・まとめ

  10. RSKのSidechain(理想) RSKのSidechainは ・SPV Proof ・Drivechain を利用したHybridモデル

  11. RSKのSidechain(現状) ただし外部SPV Proof、DrivechainにはForkが必要になるので、 現状semi-trusted third-parties (STTP)なFederationMemberを必要とする。 つまりPeggingはマルチシグを利用したFederated Pegの模様。 ちなみにFederationMemberは “Blockchain

    companies with high security standards” “The Federation is able to add or remove members using an on-chain voting system. “ だそうです。
  12. FederationAddress BTCとRBTCのペグの際にロックするためのアドレス 複数のFederationMemberのマルチシグアドレス。 RSK上にあるBridgeコントラクトから取得できる ※WhiteListに登録してない場合、 FederationAddressに送金したBTCは自動で返金するようになってます。

  13. FederationAddress

  14. BTCからRBTCへの交換 1.RSKのBridgeコントラクトに登録してあるFederationAddress(multisig)を取得 2.BTCをFederationAddressに送金 3.FederationMember(後述)がFederationAddressへの入金を検知 4.FederationAddressへの入金TXから入金元のPubkeyを取得。 5.入金元PubKeyからRSKのアドレスを算出 6.RSKのアドレスにRBTC入金 BTC Network RSK

    Network FederationAddress Tx 1 FederationM ember Tx 2 Sender RSKAddress Confirm Tx 1. Convert BTC PubKey to RSK Address. Sender
  15. RSK Address.

  16. 実使用上の難点 BTCとRBTC交換のタイミングでの待ち時間が結構長い BTC -> RBTC ・BTCでの100承認(約16時間)と最低5分の確認時間 (You have to wait

    a minimum of 100 confirmations + a minimum of 5 minutes for checking your RBTC balance.) RBTC -> BTC ・RSKでの4000承認(約11時間)と最低10分の確認時間 (Wait 4000 RSK confirmations/blocks and + at least 10 more minutes for your funds to arrive to your BTC address.) RSKのブロック生成時間約10秒として換算すると約11時間だが、 現状ブロック生成時間を見ると2~3倍以上余裕を見た方が良いかも?
  17. ・RootStockの概要 ・Sidechainの機構 ・MergedMiningの機構 ・開発のやり方 ・まとめ

  18. MergedMining概要 マイナーが、コストをかけずに同時に他のコインのマイニングができる技術 Bitcoinのマイナーは、RSKのマイニングを同時に実施し、RSKの手数料収入を得ること ができる (Merge mining is a technique that

    allows Bitcoin miners to mine simultaneously other cryptocurrencies with near zero marginal cost.)
  19. MergedMining機構 1. サイドチェーンのブロックをハッシュ化 2. ハッシュ化されたブロックを偽のBitcoinのTxとして、Bitcoinのブロックに格納 3. BitcoinのPoWを実行 ここで分岐が発生  4.1 BitcoinのDifficultyをクリア

     4.2 サイドチェーンのDifficultyをクリア Sidechain Txs Sidechain Block Bitcoin Txs Bitcoin Block Hashed Store as Bitcoin Tx ※当然であるが、 Bitcoin Difficulty > Sidechain Difficulty 正しくいうと OP_RETURNを使ったTx Outputを CoinbaseのTxに付与する
  20. BitcoinのDifficultyをクリアした場合 5. Bitcoinのブロックとして伝播する (一部余計なハッシュ値が入るだけの普通のBitcoinのブロック) 6. 通常のBitcoinブロックとして検証する

  21. サイドチェーンのDifficultyをクリアした場合 5. 下記全てをサイドチェーンのブロックとして提出する ・BitcoinのTxs ・Bitcoinのブロックヘッダー ・サイドチェーンのオリジナルブロック 6. 各ノードは上記の整合性を検証する  下記のようなことが検証可能(と思われる) ・CoinbaseのTx

    OutputとサイドチェーンブロックをハッシュしたTx Outputが合致 ・Bitcoinのブロックヘッダーのハッシュ値>サイドチェーンのDifficulty つまりサイドチェーンのブロックを含んだ状態で十分に計算が実施されたことが証明できる
  22. ②JSON-RPCで取得 mnr_getWork ・RSK block hash ・RSK difficulty MergedMining実施時の簡易システム構成図(想定) Miner (cpuminer、

    ASIC etc..) ①JSON-RPCで取得 ・Bitcoin txs ・Bitcoin difficulty ・Bitcoin prev block hash ③マイニング (Stratum+TCP) ④BTCマイニング成功時: JSON-RPCで通知 mnr_submitBitcoinBlock ④’RSKマイニング成功時: JSON-RPCで通知 mnr_submitBitcoinBlockPartialMerkle BTC node RSK node Pool server (CKPoolの改良版) ⑤BTCマイニング成功時: ブロック伝播
  23. MergedMiningの現状 現在どれくらいRootStockにおいてHashrateが出ているのか? Avg hash rate 約 14EHs(2018/10/21 @stat.rsk.co) 参考) Bitcoin

    : 約50EHs (2018/10/19 @Blockchain.com) Ethereum : 約254THs (2018/10/20 @etherscan.io) Exa = 10^18 Peta = 10^15 Tera = 10^12 Bitcoinの約28%のHashrateが出ている 自前のNodeにおいてもDifficultyベースで同じような値を確認可能
  24. RSKパートナーのMiningPool 参考)ハッシュレート分布 *Blockchain.com Pool名 顧客向けMergedMiningサービス提供状況 AntPool サービス提供予定(Comming soon…) BTC.com サービス提供中

    SlushPool サービス未提供 (However since the network rewards are very close to zero, we decided to not incorporate RSK to dashboard for the time being. ) 3社合計は39.8% SlushPoolを除くと28.7%
  25. ・RootStockの概要 ・Sidechainの機構 ・MergedMiningの機構 ・開発のやり方 ・まとめ

  26. スマートコントラクトの開発 RSKでのスマートコントラクト開発はEthereumと同じくSolidityを利用する (you can migrate your existing Ethereum Smart Contract

    to RSK Smart without doing any changes. ← Yey!) デプロイはTruffle or RSK専用のコンソールを利用することで可能 Ethereumと同様Truffle + Ganacheで開発可能
  27. デプロイについて RSKはEthereumで言うInfra的なものはないので、基本自分のノードにデプロイ 一応RSKが下記Publicノードを提供している https://public-node.testnet.rsk.co (Testnet) https://public-node.rsk.co (Mainnet) mnemonic書いてるけど、、 truffle.jsのイメージ

  28. デプロイイメージ(on truffle) truffle画面 Blockchain Explorer画面

  29. Gasについて Ethereumと同様にSmartContractの実行にはGasが必要 RSKのブロックにはminimumGasPriceの項目があり。 minimumGasPriceで計算したfee以上でないとブロックに取り込まれない (2018/10/23:ブロック847324のminimumGasPriceは0.00000000005924RBTC) Ethereumでも利用するestimateGasは同じ機構な模様 参考:単なる送金トランザクションの場合) fee = 21000

    * 0.00000000005924 * 700000 = 0.87円 (Gas 21000、Bitcoin価格を70万円として計算)
  30. Negotiated Minimum Gas Price RSKIP9で採用された技術 minimumGasPriceの値をBlockHeaderに追加している マイナーはminimumGasPriceの値を0.01%だけ増減できる  →10秒でブロックを作成することを考えると1日で約100%増減可能   (計算すると最高2.37倍になる?)

  31. ・RootStockの概要 ・Sidechainの機構 ・MergedMiningの機構 ・開発のやり方 ・まとめ

  32. Rootstockの意味(所感) 多分Ethereumで良い気がする 但し ・EtheruemもPoSに移行したあと何が起こるのかは誰もわからない ・Rootstockは、一応ビットコインの次(?)に高いハッシュレートをもつSmartContract基 盤である ということを考えると、サービスプロバイダー側に近いプレーヤーは RootStockもたまには思い出してみると良いかもしれない。 ブロックチェーンの根本的な課題は有事の際にしか考えられてないが、 サービスに近いレイヤーだけ見てると足元すくわれるので注意!

  33. たまにはRootStockちゃんも思い出してあげて! 終わり

  34. 文献 Are we merge mining RSK? https://support.slushpool.com/article/45-are-we-merge-mining-rsk BTC.com Pool miners

    can now merge mine RootStock (RSK) https://blog.btc.com/btc-com-pool-miners-can-now-merge-mine-rootstock-rsk-a2d12f154a00 Merged Mining https://help.antpool.com/en/chapter-3/07.html