Grinのlaunchについて

どうもみなさん初めまして。Fressetsでインターンをしたり、ブロックチェーン集中講座のチューターをしたりしているpjと呼ばれている者です。

MimbleWimbleの実装として注目を集めているGrinのmainnetのローンチが日本時間で1/15の深夜に行われました。GrinはConfidential TransactionやCoinJoin、Dandelionなどの匿名性を高める技術や、fastsyncやcut-throughなどのスケーラビリティを高める技術をうまく利用している暗号通貨で、私も注目しています。ということで今回はその情報についてまとめていきたいと思います。

“launchする”とは

まず、mainnetがlaunchされるとはどういう事でしょうか。ブロックチェーンに触れたことのある人ならご存知だと思いますが、新しいブロックチェーンが作られる時に必要なのはgenesis blockとそこからブロックを作ってつなげていくマイナー、そのブロックが有効であると検証し、保持するノードです。ノードとマイナーはこれまで開発者が実装し、testnetでテストを行ってきたものがあるのでOKです。なので、mainnetへのローンチに必要な作業はgenesis blockを作ることです。

genesis blockの作成

genesis blockは、1/15の深夜0:30ごろに開発者のIgnotus Peverell(ハリーポッターに出てくるキャラクター名で、Grinのリポジトリを作った開発者)によって作成されました。該当commitはここから見ることができます。portの設定ミスがありましたが、それはすぐに修正されてGrinのmainnetが動き出しました。

Initial difficultyの設定

ですが、手動で設定された初めのdifficultyがとても高くて次のブロックが掘られるまでに1時間30分以上かかりました。Grinのブロックタイムは1分なので、異常に長い時間ブロックが掘られなかったことになります。

これは、仮に大きなハッシュパワーを集めてもInstamineにならない様に設定されたためで、想定されていたことなので問題はないです。Ignotus PeverellとCuckoo cycle考案者のJohn Trompを中心に議論が行われ、決められました。同じPoWアルゴリズムであるCuckoo cycleを用いているAeternityよりもハッシュパワーを集めたとしても安全である様です。その議論が行われているissueはこちらです。2つ目のブロックが掘られた後はdifficultyが下がっていき、ブロック生成時間は1分前後で安定しています。(参考)


以上がメインネットローンチに関わる情報でした。ここからは個人的に注目している関連サービスを軽く紹介して終わります。

713.grinbox

Grinでは、Transactionを作るためにsenderとreceiverがデータをやり取りする必要があるため、オフラインでやりとりしない場合は何らかの通信方法を利用しなければいけません。その際に、IPアドレスを教える必要があり、匿名性が低下してしまいます。それを防ぐために、grinboxはTransactionの仲介をしてくれるサービスです。grinboxをトラストする必要がありますが、作成されるアドレスを使用することで簡単に送金が行える様になります。

現在は、同じvault713が作成している公式ウォレットのforkであるwallet713に統合され、さらに使いやすくなっています。

Superlinear

Superlinearは、筆者がこの記事を書いている途中にRedditでリリースが発表されたGUIのオープンソースのウォレットです。その発表によると、

  • Mac, Windows, Linux対応(iOS, Androidにも対応予定)
  • セキュアなdecentralized messaging platformが内蔵
  • 人間の読めるアドレス、オフライン送金に対応
  • Double Ratchet protocol と Curve25519 を用いたE2E暗号化に対応
  • 暗号化されたグループコミニケーションに対応
  • QRコードに対応しており、Air gapや画像に対応したアプリ経由でのTransactionに対応

終わりに

今回は無事mainnetのlaunchを果たしたGrinのlaunchに関わる情報と関連サービスについて紹介しました。MimbleWimbleは成り立ちから面白く、技術的にも非常によくできたプロジェクトだと思うので、個人的にも引き続き追っていこうと思います。

前回、Masahiko HyugaさんがGrinのノードの建て方、Transactionの作成の方法を紹介していたのでこれも参考にしながら色々試して見たらいかがでしょうか。


お知らせ
■ブロックチェーンエンジニア集中講座開講中!
HashHubではブロックチェーンエンジニアを育成するための短期集中講座を開講しています。お申込み、詳細は下記のページをご覧ください。
ブロックチェーンエンジニア集中講座:https://www.blockchain-edu.jp/
■フレセッツ株式会社では仮想通貨の事業者向け BtoB ウォレットの開発をしていただけるエンジニアを募集しています!詳しくはこちら→https://fressets.com/career/
■HashHubでは入居者募集中です!
HashHubは、ブロックチェーン業界で働いている人のためのコワーキングスペースを運営しています。ご利用をご検討の方は、下記のWEBサイトからお問い合わせください。また、最新情報はTwitterで発信中です。
HashHub:https://hashhub.tokyo/
Twitter:https://twitter.com/HashHub_Tokyo