技術
2023/06/03BRC-20とは?ビットコイン上で通貨の発行を可能にする技術を解説
BRC-20は、ビットコインのブロックチェーン上に存在するトークンです。 実験的なトークンでありながら、関連トークンの時価総額は4億ドルを超えている状態です。 また、基盤となったOrdinalsのNFTについても注目が集まっています。 この記事では、そんなBRC-20やOrdinalsについて以下の観点から解説しています。 この記事のまとめ ・BRC-20はビットコイン上のトークン ・ビットコインのブロックチェーンに影響を与える勢い ・Ordinalsの仕組みを応用 ・ERC-20とは大きく異なる BRC-20とは?ビットコインのトークン BRC-20は、ビットコイン上のトークン規格です。 イーサリアムなどでは、ブロックチェーン上をさまざまなトークンが行き交うことが一般的です。 一方で、ビットコインのブロックチェーンには、BRC-20のようなトークン規格がこれまで存在せず、主な用途はBTCの送受信といったシンプルな用途に限られていました。 しかし、Ordinalsと呼ばれるプロトコルの登場により、ビットコイン上でBRC-20やNFTの発行が容易となり、昨今大きな注目を集めています。 2023年5月時点で、24,000件を超えるBRC-20トークンが確認でき、全体の時価総額は4億ドルを超えている状態です。 (引用元:brc-20.io) また、BRC-20の基盤となっているOrdinalsのインスクリプション(inscriptions)も4月末あたりから大幅に伸びており、Ordinalsの利用についても拡大していることが分かるでしょう。 (引用元:Dune) 上記のような状況は、ビットコインのブロックチェーンへの影響も大きく、未承認のトランザクションが増加するといった現象も見られました。 BRC-20の特徴 これから、BRC-20が持つ基本的な特徴について、以下の2点から解説していきます。 ・Ordinalsの仕組みを応用 ・現在は実験段階 BRC-20のかんたんな特徴を把握して、大枠をチェックしていきましょう。 Ordinalsの仕組みを応用 BRC-20は、Ordinalsと呼ばれるプロトコルの仕組みを応用しています。 詳しくは後述しますが、Ordinalsについてかんたんにまとめると、ビットコインのサトシという細かな単位にデータを書き込んだり、追跡できたりするものです。 主に、ビットコイン上のNFTを発行できることなどから注目されていましたが、Ordinalsを応用してFTを発行する仕組みをdomo氏という開発者が実現しました。 https://twitter.com/domodata/status/1634247606262964228 上記の流れの中で、登場したのがBRC-20です。 現在は実験段階 BRC-20は熱狂を生んでいますが、まだまだ実験段階の取り組みです。 というのも、BRC-20のドキュメントでも実験であることが何度も記載されています。さらに、今後新たな設計や改善が行われる可能性についても言及されています。 実際に、BRC-20の利用にはいくつか不便な点も見られ、注目されているトークンも主にミームコインや比較的大きな時価総額を持たないものも多いです。 他のトークン規格ほど成熟したものではなく、取引や利用には注意が必要です。 BRC-20とOrdinalの仕組み BRC-20とその基盤となっているOrdinalsについて以下の観点から解説していきます。 ・Ordinalsの概要 ・Ordinalsにおけるインスクリプションについて ・BRC-20の仕組み OrdinalsやBRC-20の仕組みをチェックしていきましょう。 Ordinalsの概要 Ordinalsは、ビットコインのサトシに対して、何らかのデータを添付できるプロトコルです。 サトシとはBTCの最小単位のことであり、1サトシは1億分の1にあたります。 Ordinalsでは、そのサトシに何らかのデータを書き込み、追跡したりすることを可能にします。 具体的には、Ordinalsを通して画像やテキストなどのデータをサトシに添付し、ビットコイン上にあるNFTといったものを可能にしています。 Ordinalsの利用に伴って、新たなソリューションやサイドチェーンは不要です。 そのため、Ordinalsを利用して行ったアクションは全てビットコインのブロックチェーンを通して完結します。 BRC-20が大きく注目されているOrdinalsですが、上記の仕組みを通じて発行されたNFTの取引量も増加傾向にあります。 (引用元:Crypto Slam!) NFTのデータサイトCrypto Slam!によると、5月時点でのNFT売上ランキングでは、ビットコインが2位となっています。 直近1週間のデータを参考にすると、イーサリアムが約9,000万ドル、ビットコインが約4,400万ドルです。(ウォッシュ分を除く) 直近のデータのみを参考にすると、NFTをやり取りするブロックチェーンとして同じく人気の高いSolanaを上回るパフォーマンスを見せています。 上記のような点を参考にすると、ビットコイン上のOrdinalsは後述するBRC-20はもちろん、NFTにおいても高い注目を集めている可能性があるでしょう。 Ordinalsにおけるインスクリプション(Inscriptions)について Ordinalsがデータをサトシに添付していく過程で、特に重要なのが「インスクリプション(Inscriptions)」です。 Ordinalsでは、サトシにデータを書き込むという点は解説しましたが、インスクリプションがその過程に当たります。 ビットコインは過去に、SegWit(Segregated Witness)とTaprootという2つのアップデートを経験しています。 両者とも、NFTなどを想定したアップデートではありませんでしたが、結果的にトランザクションに含められるデータ量、構造などに影響を与えました。 インスクリプションでは、上記のアップデートの恩恵で誕生した領域に、含めたいデータを書き込みます。 また、何らかのものがインスクリプションされたサトシであっても前述したとおり、扱い自体は通常のBTCと変わりません。 BRC-20の仕組み BRC-20はOrdinalsを活用して、あくまで実験的にトークンとして扱えるようにしたものです。 BRC-20では、トークンとして機能させるために必要なルールのようなものを、前述したインスクリプションを活用して書き込み・機能させます。 そのため、インスクリプションする内容が異なるだけで、BRC-20を動かすための仕組み自体はOrdinalsを活用した他のNFTと大きな違いはありません。 Ordinalsの公式サイトでは直近のインスクリプションされたものを視覚的にチェック可能になっています。 BRC-20の人気が高まっているということもあって、直近のインスクリプションがBRC-20関連のものになっていることが分かるでしょう。 (引用元:Ordinals) Ordinalsでは複数の情報をインスクリプションでき、NFTでは画像関連のデータが書き込まれることが一般的です。 一方で、BRC-20では「text/plain;charset=utf-8」というタイプのインスクリプションを行います。 (引用元:Dune) 上記を参考にすると、インスクリプションされたもののうち、ほとんどがBRC-20と同じテキストを用いています。 2つ目に多い画像のタイプとも大きな差が開いており、Ordinals全体を見てもBRC-20が人気の高いインスクリプションの対象であることが分かるでしょう。 BRC-20とERC-20などとの違い ERC-20はイーサリアムに存在するトークンの規格で、BRC-20についてはビットコイン上に存在するトークンの規格です。 両者とも何らかのブロックチェーン上にあるという点は同じですが、その仕様・利便性は大きく異なります。 BRC-20はスマートコントラクトをサポートしていません。 そのため、BRC-20はERC-20のように複雑なことを行うことはできません。また、ERC-20はスマートコントラクトを利用した複雑なプロダクトはもちろんですが、さまざまなソリューションが完備されていて、一般的な方が利用しても利便性が高いです。 一方で、BRC-20も利便性が高くなるソリューションが日々出てきていますが、ERC-20ほどの利便性が高くありません。 BRC-20・ERC-20ともに名前が似通っていますが、その中身自体はほとんど異なるトークンです。 まとめ この記事では、BRC-20について解説しました。 BRC-20のトークンが多数の登場しており話題に上がりがちですが、ERC-20と同じような意識で扱うことはできないため注意が必要です。 その一方で、BRC-20の話題の高まりから周辺の開発に関するニュースも度々登場しているため、今後も注視していきたいと言えるでしょう。 最後まで、読んでいただきありがとうございました。
技術
2022/06/08イーサリアム「The Merge」とは?概要を詳しく解説
先日、Ethereumのテストネットの一つであるRopstenネットワークで、Proof of Work(PoW)からProof of Stake(PoS)への完全移行を行うThe Mergeアップグレードの詳細が発表されました。 The MergeはEthereumで過去最も大きなアップデートの1つで、暗号通貨界隈でも大きな注目を集めています。 テストネットでの実装は、6月9日の5時頃が予定されており、問題なくスムーズに進めば夏中のメインネットへの実装も見えてきます。 [caption id="attachment_75765" align="aligncenter" width="800"] 画像引用元:https://wenmerge.com/[/caption] 本記事では、Mergeの詳細について解説していきます。 *本記事では可能な限り正確な情報を記載していますが、情報の性質上完全な正確性は保証できないのでご了承ください。 The Mergeに"今"注目すべき理由 The Mergeは、暗号通貨市場で2位の時価総額(約29兆円)を誇るEthereum史上、最も大きなアップグレードの1つです。 The Mergeでは、PoSへの移行に伴い、報酬を獲得するプレイヤーがマイナーからステーカーへと入れ替わり、新規発行枚数の減少などが起こるため、ETHと周辺の需給に変動が生じる可能性があります。 つまり、今回のThe Mergeで暗号通貨の王様とも言えるEthereumの仕組みが変化し、ETHの用途も大きく変化する可能性があるのです。 Ethereumのメインネットでは、これまでマイナーに対して報酬が支払われていましたが、PoS移行により、報酬はステーキングを行うバリデーターに対して支払われるようになります。 [caption id="attachment_75777" align="aligncenter" width="800"] PoSのイメージ[/caption] そのため、マイニングの設備投資のためにETHを売却することが無くなり、これはマイナーを中心としたネットワークの構造の変化を意味します。 また、マイナーが撤退せずにEthereumメインネットのチェーンを伸ばし続けるシナリオも一部で想定されており、ネットワークの分岐が発生する可能性も示唆されています。 The Merge自体は、もともとEthereum2.0のアップグレードのPhase0でビーコンチェーンのリリース後、Phase 1以降のシャーディングに先駆けて行われたアップグレード。 そのため、スケーラビリティの改善度合いではMerge自体の影響は少ないと考えられ、スケーラビリティに関して、当面はレイヤー2によるソリューションが主流となることが予想されます。 [caption id="attachment_75779" align="aligncenter" width="800"] レイヤー2のイメージ[/caption] 現在多くの通貨やプロダクトがEthereum上に構築されています。 今回のThe Mergeのアップデートによって前述したような構造、周辺環境が変化し、それが波及して暗号通貨市場全体に大きな変化をもたらす可能性は高いです。 そんなThe Mergeについて、もう少し詳しく見ていきましょう。 The Merge = エンジンと宇宙船のドッキング? The Mergeとは、Ethereumの合意形成レイヤーをPoWからPoSにするための大型アッググレードです。 現在、Ethereumには私たちが普段から利用する「メインネット」と、2020年12月にローンチした「ビーコンチェーン」と呼ばれる2つのチェーンが存在しています。 メインネットでは、トランザクションの実行・検証(EVM)とPoWによる合意形成が行われています。 ビーコンチェーンでは、メインネット上のコントラクトにステーキングすることで参加できるPoSによる合意形成が行われますが、トランザクションの実行・検証は行われません。 今回のThe Mergeとは、メインネットを実行レイヤー(Execution Layer)とし、ビーコンチェーンをConsensus Layer(合意形成レイヤー)とするためのアップグレードになります。 [caption id="attachment_75782" align="aligncenter" width="800"] The Mergeのイメージ | 画像引用元:https://ethereum.org/en/upgrades/merge/[/caption] Ethereumの公式ウェブサイトでは、宇宙船のイメージを例に出しており、ビーコンチェーンは新型のエンジン、メインネットは宇宙船で、The Mergeはこのドッキングのようなイベントであると解説しています。 メインネットではブロックの採掘難易度によって1ブロックあたりの時間が変動してきましたが、PoSに移行すると、1スロット12秒, 1エポック32スロット(12*32秒=6分24秒)でブロックが確定するようになります。 また、これまで1ブロック(約15秒)あたり2ETHの報酬が発生していましたが、仮に15METHのステーク総額を想定すると、新規発行は90%近く減少します。 これまでのEthereumのアッググレードではブロック高が利用されてきましたが、今回のRopstenネットワークのThe Mergeでは、”Terminal Total Difficulity(TTD)”と呼ばれる累積難易度の数値が一定に達した段階で行われます。 この難易度を通過することで、Proof of Workでマイナーに分配されていたETHがなくなり、Proof of StakeでETHをステークするステーカーに対して供給されるようになります。 一般ユーザーは何ができるのか テストネットのノードを運用しているユーザーは、クライアントの更新が必要となりますが、今回はテストネットであるため、一般ユーザーが意識すべきポイントは特にありません。 Ropstenでノードを運用する場合は、LighthouseやPrysmなど5つのクライアントから任意の合意形成レイヤーのクライアント、Go-Ethereumなどの実行レイヤーのクライアントを準備しておく必要があります。 具体的な累積難易度の上書きなどの手順は以下の公式ブログで解説されていますので、興味のある方はそちらもご覧ください。(参考:「Ropsten TTD Announcement」) レンディングプロトコルAaveは、Aave v3をRopsten上にデプロイしたことを発表しています。 It’s time to get testing as Aave V3 has officially been deployed on the Ropsten Testnet! Join us and the rest of the Ethereum community in #TestingTheMerge To activate testnets in the UI, toggle the "testnet mode" switch as seen below pic.twitter.com/al98hKRpsS — Aave (@AaveAave) June 7, 2022 The Mergeの完了後に、画面UIからテストネットモードのチェックボックスを入れることで、Merge後のアプリを体験することができます。 今後のThe Mergeと将来の変化 ここまでThe Mergeについて解説してきましたが、今後のThe Mergeについてや、それによって起こりうる変化を見ていきましょう。 今後CRYPTO TIMESでは、本番環境でのThe Mergeに向けて追加で記事を出していく予定であるため、今回はかんたんに紹介します。 メインネットのThe Merge アップグレードのタイムラインは以下のようになっており、今回のRopsten, Goerli, Sepoliaでのテストが問題なく終われば、メインネットでの実装となります。 [caption id="attachment_75766" align="aligncenter" width="1954"] 画像引用元:https://blog.ethereum.org/2022/06/03/ropsten-merge-ttd/[/caption] メインネットのThe Mergeは9月付近に行われる予定となっていますが、具体的な日付は発表されておらず、Ethereumのブログで後日公式発表があるようです。 エコノミクスの変更 ETHのサプライに関して、昨年行われたEIP-1559によるバーンに加えて、The mergeによる新規発行の減少が予測されています。 [caption id="attachment_75767" align="aligncenter" width="800"] 画像引用元:https://ultrasound.money/[/caption] 上記シミュレーションでは、PoWがなくなりPoSのEthereumになると、供給量が右肩下がりとなり、デフレ的なエコノミクスへと変化する想定となっています。 ハードフォークの可能性 The Merge以降のEthereumメインネットでは、Difficulty Bomb(難易度爆弾)と呼ばれる、採掘難易度の急上昇が起こります。 これは、1ブロックの生成における難易度を急激に上げることで、マイナーの新ネットワークへの移行を促進するもので、これによりブロックの生成時間が大幅に変動します。 [caption id="attachment_75768" align="aligncenter" width="800"] 画像引用元:https://dune.com/yulesa/Blocks-per-Week[/caption] 過去、EthereumのDifficulty Bombは何度かアップグレードにより延期されてきましたが、予定通りDifficulty Bombを通過することで、徐々にマイナーがネットワークを離れていくことが予想されます。 一方で、既存のマイナーの選択肢としては、ハードウェアを売却するか、別ネットワークでマイニングを継続する選択肢しか残されておらず、フォークが起こる可能性も視野に入れておく必要があります。 まとめ 今回はEthereum史上最大のアップデートThe Mergeについて解説してきました。 アップデートに関する情報は専門的な内容が多く、理解するのが難しい場合が多いです。 しかし、様々なトークンやプロダクトの根幹となっているEthereumの技術的な部分が理解できると、今後の暗号通貨市場をより正確に捉えることが出来るかと思います。 是非本記事を参考に、一大イベントであるThe Mergeについてリサーチすることをお勧めします。 最後までありがとうございました。 ・CT Analysis第2回レポート『ステーキング概要・動向 2020年2月最新版』 ・CT Analysis第12回レポート『Ethereum周辺のレイヤー2 スケーリング 概要と動向』
技術
2019/07/02Polkadot(ポルカドット)とSubstrate(サブストレート)の概要と仕組み、取り巻くエコシステムに関して
Polkadotは、異なるブロックチェーン間のインターオペラビリティを実現するプロトコルで、トリレンマの問題も解決しWeb3.0のエコシステムの構築を目指すプロジェクトです。 またPolkadotの開発に利用されたフレームワークであるSubstrateも、簡単にインターオペラブルなブロックチェーンを開発できるとしてPolkadotと並んで注目を集めています。 本記事では、そんなPolkadotとSubstrateについて、概要から詳細まで解説していきます。 Polkadot(ポルカドット)とは? Polkadotとは、異なるブロックチェーン間のインターオペラビリティを実現するためのプロトコルです。 BitcoinやEthereumなどのブロックチェーンは革新的である一方で、それぞれが独立しており、これまでのウェブのような一つの大きなエコシステムであるとは言い難い状況にあります。 Polkadotでは分散型のウェブ、つまり個人情報やデータをすべて各自が管理するような世界を創り上げることをミッションとしており、これは単一のブロックチェーンではなく無数のブロックチェーンが繋がっていくことにより実現されていくと考えられます。 Polkadotは異なるブロックチェーン同士の情報のやり取りを可能にし、それぞれを繋ぐだけでなく、後述のSubstrateと呼ばれるフレームワークを利用することで、簡単にインターオペラブルなチェーンを実装することも可能になります。 また、EthereumのVitalik氏が提唱したトリレンマ問題(セキュリティ・分散性・スケーラビリティ)も解決しうるポテンシャルを持ち、プロトコル層の開発というステージからアプリケーション層の開発へと移行するための土台としても期待されています。 Polkadot(ポルカドット)の特徴 異なるブロックチェーン間のインターオペラビリティを実現 Polkadotの一番の特徴は、Polkadotのチェーン(Parachain)だけでなく、BitcoinやEthereumなどの異なる様々なチェーンを相互に接続できる点です。 Polkadotは、相互運用性(インターオペラビリティ)を持つプラットフォームとなることで、仲介者を必要としない資産の取引、コミュニケーションを可能とします。 なぜこれが重要かという話ですが、単純な利便性だけでなく分散的なウェブの実現において、分散的な資産が存在する一方で、分散的な交換方法は存在しませんでした。 そのため、Bitcoinを別の資産に交換したいとき、これは分散型のウェブのrealmで行われず、取引所などの集権性が必要とされてきました。 インターオペラビリティによるP2Pでの資産の取引が可能になることで、Web3.0と呼ばれる真に分散型のシステムを実現することができます。 DOTトークンによる単一のグローバルステートと強力なセキュリティ Polkadotでは『Pooled Security』と呼ばれるセキュリティのモデルを採用しています。 BitcoinやEthereumは強力なセキュリティを持つとされていますが、これはコミュニティの大規模なプロトコル参加が前提となっており、この前提無しでは十分なセキュリティを確保できず攻撃の対象とされてしまうこともあります。 [caption id="" align="aligncenter" width="1239"] 引用:https://www.parity.io/a-brief-summary-of-everything-substrate-polkadot/[/caption] 複数のチェーンが相互に接続されている状況を考えるとき、経済的に弱いチェーンが狙われる可能性があり、そこを軸とした穴が生まれてしまう可能性を無視することはできません。 Polkadotでは、Relay Chain(後述)とネイティブで互換性を持つブロックチェーンのセキュリティを一か所に集約させることで、チェーン毎に強弱があるセキュリティではなく、一つの強力なセキュリティによりPolkadot全体の攻撃を防ぐことが可能となります。 アプリケーション別のステート遷移 Ethereumの場合、アプリケーションはすべてEthereumのSpecificationに依存するため、トランザクションやブロック生成、合意形成など、各シャードがこの制約を受けます。 例えば、あるDAppでユーザー数が急激に増加し、トランザクションの詰まりが発生した場合その影響はネットワーク全体に及ぼされます。 Polkadotではアプリケーションが全てParachainsと呼ばれるサイドチェーンに乗っかる形になるので、同様のケースにおいてPolkadotのネットワーク全体に影響が及ぶことはありません。 トランザクションの処理が各チェーン毎に別々に行われるということは、スケーリングの問題を緩和することにも繋がっていきます。 [caption id="" align="aligncenter" width="800"] 引用:https://medium.com/polkadot-network/a-tale-of-two-technologies-presentation-transcript-e7397c1c7a49[/caption] またスケーリングだけでなく、多様なシャードをRelay Chainに接続できるということはそれだけ多様で複雑なアプリケーションがこの上に乗っかってくることも期待することができます。 Polkadot(ポルカドット)の全体像と仕組み 以下の図は、Polkadotの全体像のイメージです。 後ほど解説しますが、Polkadotのチェーンは何種類か存在していて、Relaychainを軸として動いているというポイントだけ抑えていれば問題ありません。。 インターオペラビリティとWeb3のエコシステムを実現するための3つの要素 Polkadotがインターオペラビリティを実現していくためには以下の3つの要素が鍵となります。 Relay Chain(リレーチェーン) Parachains(パラチェーン) Bridges(ブリッジ) これらの3種類の要素が組み合わさることで、プライベート・コンソーシアム・パブリックなど様式を問わないブロックチェーン同士が相互に接続されます。 Relay Chain(リレーチェーン) Relay chainはPolkadotの軸となるチェーンで、ネイティブで互換性を持つチェーン、またブリッジを通じて互換性を待たないチェーンをここに接続することができます。 合意形成やトランザクションの伝播はここで行われ、単一の正当なチェーンとしてPolkadotのエコシステムを守ります。 Parachains(パラチェーン) ParachainsとはRelay Chainに接続される異なる独立したブロックチェーンの呼称で、名前はParallel-chains(平行に走るチェーン)に由来しています。 先ほど、セキュリティは単一のグローバルステートに集約されるという話をしましたが、Parachainsにおけるトランザクションの収集や処理は各チェーン毎に独立しており、チェーン毎に独自性を持たせることが可能です。 Bridges(ブリッジ) BridgesはPolkadotのエコシステムにおけるチェーン同士、また互換性を持たないチェーンをRelay Chainと繋ぐ役割を果たします。 その中にもいくつか種類があり、ブリッジとしてデプロイされるスマートコントラクトである『Bridge Contract』やCross-Parachain Communicationなど各ブリッジがそれぞれ異なる役割を果たすことが特徴です。 Polkadot(ポルカドット)の4種類のプロトコル参加者 Validators(バリデーター) ValidatorはPolkadotエコシステムのメインのチェーンであるRealychainに直接的に関わり、参加者の中では非常に重要です。 彼らは、Nominatorにより選出され、Collatorから送られた各Parachainsのブロックを検証し、有効なブロックヘッダーをRelaychainに追加する役割を果たしていきます。 バリデーションに対してもちろん報酬は付与されますが、RelaychainのフルノードによるDOTのステーキングが必要とされ、悪意を働きかけようとした場合にはペナルティが課せられるため、正直なふるまいをとるインセンティブ設計になっていることが特徴的です。 Nominator(ノミネーター) NominatorはValidatorを選出する役割を果たします。 彼らは、DOTのステーキングを直接行わず、代表するValidatorに対してステーキングを行うことで、Validatorの報酬の一部を得ることができます。 万が一、NominatorとValidatorが結託して、といったケースもあるので(?)悪意のあるノードに対してステーキングを行った場合、Validatorに課せられるペナルティも受けることになります。 Collators(コレーター) Collatorは各Parachainsのフルノードで、それぞれのチェーン発生したトランザクションの照合を行いバンドル化し、これをRelay chainへと提出します。 彼らは、バリデーション自体は行わず、Validatorによりブロックが検証・追加された時点で報酬の一部を獲得する仕組みになっています。 Collatorも同様に、ステーキングが必要とされ、ペナルティが課せられる場合もあります。 Fisherman(フィッシャーマン) FIshermanは主にValidatorの監視を行い、Validatorが悪意のある行動を取らないように見張る感じの役割を持ちます。 他の参加者とは違い、違反を見つけた時点で彼らのステークを没収することができるという権利が付与されるインセンティブ設計になっています。 Fishermanになるためにもステーキングが必要です。 Polkadot(ポルカドット)のその他のポイント Polkadot(ポルカドット)の合意形成・ファイナリティ PolkadotのRelay chainにはGRANDPA(GHOST-based Recursive Ancestor Deriving Prefix Arrangement)と呼ばれるファイナリティガジェットが実装されています。 Bitcoinなどでは6 confirmationで確率的にブロックが覆らないといった、probabilistic finality(確率的ファイナリティ)が採用されていますが、GRANDPAでは数学的に検証可能であるProvable Finality(証明可能ファイナリティ)を実現します。 このアルゴリズムの特徴は、分散ネットワークだけでなくブロックチェーンの特徴を生かして、単体のブロックに対する投票ではなく、ブロック高に対して投票を行うことができるという点です。 これは、子ブロックが有効であれば親ブロックも有効であるという前提に基づいています。 [caption id="" align="aligncenter" width="800"] 引用:https://medium.com/polkadot-network/grandpa-block-finality-in-polkadot-an-introduction-part-1-d08a24a021b5[/caption] イメージCのブロックまでは2/3の投票が獲得できているので、説明可能な状態でファイナライズされており、例えばE1・E2に対する総数が2/3を超えれば、その前にあるD2もファイナライズされていくという感じになっています。 Polkadot(ポルカドット)のガバナンス Polkadotのガバナンス、プロトコルにおける政治(?)はPolkadotのトークンであるDOTのステークホルダーを中心として設計されています。 第一に、上述の参加者(Validator/Collator/Nominator/Fisherman)がプロトコルにおいて悪意のある挙動を取らないように、といったゲーム理論的インセンティブがあります。 これは報酬とペナルティをベースとして設計されており、プロトコルへの攻撃を防ぐ役割を果たしています。 そして、プロトコル内の意思決定においてもDOTトークンが重要です。 0xなどが既に行っているように、Polkadotもチェーンの分岐という形を取らずに、ステークホルダーによる投票でプロトコルのアップグレードを行うことができます。 DOTトークンの保有をベースとした投票により、プロトコル参加者の意思をより如実に反映させることが可能となっています。 Substrate(サブストレート)とは? Substrateとは、Ethereumの元CTO兼共同創設者であるGavin Wood氏が率いるParityによって開発された、ブロックチェーンの開発を行うためのフレームワーク(Tech Stack)です。 これを利用することで、ウェブにおいてアプリケーション毎に独自のHTTPを実装する必要がないように、ネットワーキングや合意形成に関する部分をコードを実装せずにブロックチェーンを新しく作ることができます。 また、Polkadotと同じ文脈で語られることの多いSubstrateですが、これはPolkadotがSubstrateのフレームワークを利用して実装された最初のチェーンである点、Substrateを利用して実装するチェーンとPolkadotのRelay chainの互換性を持たせることができる点などが主な理由です。 Substrate自体は、Polkadotからは独立しているため、必ずしもPolkadotと接続する必要性はなく、今年下旬に予定されているメインネットを待たずとも独自のブロックチェーンを開発することは可能であるとされています。 去年のWeb3 SummitではGavin Wood氏によるSubstrateの実装のデモも行われました。 https://youtu.be/0IoUZdDi5Is?t=3261 Substrate(サブストレート)の特徴 Parachainsとして実装することができる Substrateのフレームワークを利用することで、実装することのできるチェーンには3つの種類があります。 [caption id="" align="aligncenter" width="800"] 引用:https://medium.com/polkadot-network/a-tale-of-two-technologies-presentation-transcript-e7397c1c7a49[/caption] この中には、Polkadotと独立した合意形成を持つより自由度の高いSolo Chainと呼ばれるチェーンあります。 その他、Solo ChainとBridgeが一緒になったものは、上述のBridgeの仕組みでPolkadotのRelay Chainと繋げることもできます。 この二つの場合、Polkadotの持つ強力なセキュリティプールを利用することができず、独自の合意形成を設計する必要があるため、どちらかというとエンタープライズなどに向いているのかなという印象です。 SubstrateがPolkadotとセットで名前が挙げられる通り、Parachainsの一つとして実装することももちろん可能で、これはBridgeを介さずにRelay Chainと繋がることができ、合意形成やセキュリティ(プール)、インセンティブ設計などを考慮する必要性が生じません。 Substrate(サブストレート)の高い開発自由度 [caption id="" align="aligncenter" width="800"] 引用:https://medium.com/polkadot-network/a-tale-of-two-technologies-presentation-transcript-e7397c1c7a49[/caption] Substrateは、Substrate Core・Substrate SRML (Substrate Runtime Module Library)・Substrate Nodeの3つのレイヤーにより構成されます。 イメージのPolkadot Coreでは、PolkadotのRelay Chainに接続するチェーンを実装することができます。 ここでは、ノード、ネットワーキングなどの諸々を自身でコーディングし実装する必要がありますが、その分自由度の高いブロックチェーンを作ることができます。 [caption id="" align="aligncenter" width="800"] 引用:https://medium.com/polkadot-network/a-tale-of-two-technologies-presentation-transcript-e7397c1c7a49[/caption] そこでSubstrate Coreを利用すれば、最低限ランタイム(State Transition Function)のコードを実装するだけで、上記の諸々をコーディングする必要性は一切なくなります。 [caption id="" align="aligncenter" width="800"] 引用:https://medium.com/polkadot-network/a-tale-of-two-technologies-presentation-transcript-e7397c1c7a49[/caption] これはカスタマイズ不可能というわけではなく、用意されているものをカスタマイズしていくことも十分に可能です。 Substrate SRMLでは、ライブラリから必要なモジュールを選択し、あとはパラメータなどを設定するのみで実装ができる機能を提供しています。 [caption id="" align="aligncenter" width="800"] 引用:https://medium.com/polkadot-network/a-tale-of-two-technologies-presentation-transcript-e7397c1c7a49[/caption] 一番下のSubstrate Nodeでは、jsonのコンフィグファイルのみで完全なスマートコントラクトブロックチェーンを作ることができるとされています。 [caption id="" align="aligncenter" width="800"] 引用:https://medium.com/polkadot-network/a-tale-of-two-technologies-presentation-transcript-e7397c1c7a49[/caption] このように、開発者の求める自由度に応じたカスタマイズ性が広いこともSubstrateの特徴の一つです。 フォーク無しのアップグレード Substrateではネイティブのランタイム(実行環境)のほかに、WASM(WebAssembly)のランタイムが用意されています。 [caption id="" align="aligncenter" width="1350"] 引用:https://www.parity.io/a-brief-summary-of-everything-substrate-polkadot/[/caption] ネットワークのアップグレードが行われた場合、一部のクライアントでアップデートが行われていない場合があります。 このとき従来のシステムでは、互換性を持たない別々ネットワークが起こり、フォークという形を取らざるを得なくなります。 Substrateの場合、Substrateに統合されたWASMの仮想マシンで既存のバージョンのランタイムをinterpretし実行できるので、ネットワーク上のすべてのノードがフォークをせずに正しくチェーンと同期することができます。 Substrateを利用してParachainsの開発実装を進めるプロジェクト ChainX [caption id="" align="aligncenter" width="1024"] 引用:https://github.com/chainx-org/chainx-logo/blob/master/assets/ChainXlogo001.png[/caption] ChainXはSubstrateで実装された最初のブロックチェーンネットワークで、PolkadotのエコシステムにおいてはDEXのような立ち位置にあります。 上述のBridges(Parachains)の部分の開発を行い、Polkadotと直接互換性を持たないBitcoinやEthereumなどはChainXを通じて資産の交換を行うことができるようになります。 https://twitter.com/chainx_org/status/1131215820569243655 ChainXは2019年5月25日にメインネットをリリースし、将来的には、ChainX独自のRelay Chainの実装もロードマップに記載されています。 ChainXでは将来、Polkadotにおけるインターチェーンコミュニケーションにおいて重要な役割を果たしていくことが期待されます。 Zerochain [caption id="" align="aligncenter" width="1748"] 引用:https://medium.com/layerx-jp/%E7%A7%98%E5%8C%BF%E5%8C%96%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%83%81%E3%82%A7%E3%83%BC%E3%83%B3-zerochain-%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E5%A7%8B%E5%8B%95-11696bce0b13[/caption] Zerochainは、日本国内の企業であるLayerXによって開発され、Substrateのフレームワークを利用して実装されるプロジェクトです。 主に、ブロックチェーンにおけるデータの透明性・秘匿性についてのプライバシーに関する問題の解決を目指しており、暗号学的なアプローチでブロックチェーン上のデータの秘匿化を可能にします。 公式ブログによれば、ZerochainはBitocoinなどのUTXO型ではなくEthereumのようなアカウントベースの秘匿ブロックチェーンであり、これは世界で初の事例であるため世界中のコミュニティからも注目を集めています。 Edgeware EdgewareはRustで記述されWASM(WebAssembly)で高速に実行される、Polkadotで最初のスマートコントラクトプラットフォームです。 Polkadotのメインネットがローンチされると、PolkadotのParachainsの一つとして実装され、簡単にコードをデプロイすることができるようになります。 Edgewareの開発を行うCommonwealth Labsではガバナンスにも力を入れており、ETH保有者に対して90%以上のトークンを付与するロックドロップや投票などのオンチェーンガバナンスはEdgewareの大きな特徴の一つです。 Plasm PlasmはSubstrate CoreとSRMLを利用した開発が行われ、Polkadotに繋げることのできるPlasmaチェーンであり、独自のSRMLでもあります。 このライブラリを利用することで、親のPlasmチェーンと接続できる独自のPlasmaチェーンを作ることができるようになります。 YouTubeでも既にデモ動画が公開されており、今後はUTXOモデルの対応などに力を入れていくようです。 https://www.youtube.com/watch?v=T70iEgyuXbw#action=share まとめ ブロックチェーンを一段階上のレベル上げるPolkadotと、それに関連してブロックチェーン開発を容易にするフレームワークであるSubstrateについて、できる限りで分かりやすく紹介しました。 Polkadotのメインネットは年内に控えていますが、これがローンチされると、取り巻くプロジェクトやエコシステムが増えていくことで、これまでとは違った進歩が見れると思います。 今後も、より一層注目が集まっていくプロジェクトになると思いますが、基本的な内容の理解に際して、本記事を参考にしていただければと思います。
技術
2019/05/16Tendermintの概要と仕組み、Cosmosとの関連性、取り巻くエコシステムに関してを解説
異なるブロックチェーン間のインターオペラビリティに関しての問題を解決するプロジェクトである『Cosmos』は先日メインネットをローンチしました。 そんなCosmosは、Tendermintが提供するフレームワークを利用して開発されたブロックチェーンの一つです。 Tendermintはブロックチェーンの開発において必要とされる要素を提供し、開発をより容易にするだけでなく、異なるブロックチェーン間におけるインターオペラビリティも実現(Cosmos)することができるとされています。 本記事では、Tendermintとは一体何か? どのようにインターオペラビリティが実現されるのか? Cosmosとの関連性や周辺のエコシステムについてをまとめていきます。 Tendermintとは? Tendermintは、分散ネットワークにおける合意形成を安全に行うことを可能にするソフトウェアです。 これはブロックチェーンなどのアプリケーションと組み合わせることができますが、それによりスケーラビリティや開発の難しさといった問題を解決することもできます。 BitcoinやEthereumとTendermint Tendermintをより深く理解するために、ブロックチェーン開発における基本的なアーキテクチャを見ていきます。 ブロックチェーンのアーキテクチャでは、以下の3つのレイヤー(アプリケーション・合意形成・P2Pネットワーキング)がその構成要素となります; BitcoinやEthereumなどのブロックチェーンにおいて、この3つのレイヤーは深く相互に依存(Monolithic的)しており、これがブロックチェーンのアプリケーションの開発を難しくしています。 一方で、BitcoinやEthereumなどのコードベースを利用して開発を行う場合、スループットの問題などからアプリケーションの複雑さに制約がかかってしまいます。 Tendermintを利用すると? Tendermintでは、この3つのレイヤーのうちP2Pネットワーキングと合意形成の部分を切り離し(Decouple?)、Tendermint Core(プラットフォーム)として提供します。 そしてABCI(Application BlockChain Interface)と呼ばれるソケットプロトコルを通じて、アプリケーションとTendermintの合意形成エンジンがトランザクションのメッセージをやり取りすることができるようになります。 Tendermintの合意形成はVoting Powerの総量(総数?)の1/3以上の(作為・不作為的な)故障が起きない限りセキュアで、かつVoting Powerを通貨という単位にDenominateしたProof of Stakeが利用されているため、アプリケーション開発の問題だけでなくスループットの問題も解決できるとされています。 TendermintとCosmos SDK Cosmos SDKはPoS(Proof of Stake)やPoA(Proof of Authority)のブロックチェーンを開発するためのフレームワークです。 CosmosのCosmos Hubもこのフレームワークを利用して開発されたブロックチェーンの一つですが、Cosmos SDKではTendermintの合意形成エンジンが利用されています。 アプリケーションとTendermintはABCIのインターフェースが提供するAPIによってメッセージのやり取りを行いますが、これではインターオペラビリティは達成されません。 Cosmos SDKを利用して開発されたブロックチェーン(アプリケーション)は、ABCIとは別にIBC(Inter-Blockchain Communication)プロトコルと呼ばれるものを利用してメッセージのやり取りを行うことができるようになります。 つまり、構造的にはCosmos SDKはTendetmintの合意形成エンジンを利用し、開発者にこのフレームワークを提供するだけでなく、これを利用して開発されたブロックチェーン同士をつなげることができる感じになっています。 CosmosとTendermintが一緒に使われるというより、CosmosがTendermint Coreを利用することで、決定論的なファイナリティを持つチェーン同士を効率的に繋ぎ、インターオペラビリティを実現することができるといった関係性になっていることがわかります。 Cosmosの詳細に関しては以下の記事をご覧ください; クロスチェーンプロトコル COSMOS(コスモス)に関して徹底解説 - CRYPTO TIMES 既存のブロックチェーンをTendermintに移植する仕組み Tendermintには、ハードスプーンと呼ばれる仕組みがあり、これを利用することで、例えばEVMなどをTendermintに移植(Ethermint(後述))することができます。 基本的にはこれまで説明してきた仕組みと同様で、EthereumであればProof of Workの合意形成アルゴリズムが採用されていますが、これをTendermintの(BFT + PoS)に置き換えるイメージです。 ここでは、EVMのコードをそのまま移植しているため、スマートコントラクトやトークンの発行なども可能、かつこれがよりハイパフォーマンスで実現されていきます。 言うまでもなく、Cosmos Hubに接続することもできるため、インターオペラビリティやトランザクションに対する匿名性の付与などが容易に行われていくことになります。 Tendermintの特徴・利点 以上の点を踏まえたうえで、Tendermintには以下のような特徴・利点があるとされています; PoS(PoA)を利用するため、高いスループットが実現できる トランザクションの承認後即座にファイナリティが得られる フォークが起きない アプリケーションをブロックチェーンとして簡単に開発することができる PoWなどの合意形成を採用する既存のブロックチェーンを移植することができる ブロックチェーンの開発やスループットなどに関する問題を解決することができるため、世界でもTendermintとCosmosに大きな期待が寄せられています。 Tendermint Coreを利用するCosmosのエコシステムと現状 記事冒頭でも触れた通り、CosmosのCosmos HubはTendermintの合意形成エンジンを利用して開発されたブロックチェーンの一つです。 Tendermintの合意形成エンジンを軸とするCosmosのエコシステムは、イメージのように大きく拡大を続けています。 こちらのCosmosのフォーラムによると、既に80以上のプロジェクトがCosmosのSDKを利用して開発を行っていることがわかります。 以下では、Cosmos SDKを利用して開発が行われており、注目を浴びているプロジェクトの一部(イメージのZonesの部分)を紹介していきます。 Cosmos Hub CosmosHubは、Cosmos SDKを利用して開発されたCosmosの最初のZone(Hub)になります。 Inter-Blockchain Communication(IBC)プロトコルというもので、その他のZoneとメッセージのやり取りをすることができ、ここがエコシステムの中核であるとも言えるでしょう。 先日、メインネットがローンチされましたが、今後IBCが実装されそのエコシステムがさらに拡大していくことが期待されます。 Ethermint Ethermintは、GoEthereum(Geth)とTendermintの組み合わせで、Ethereumのスマートコントラクトを高速で実現するプロジェクトです。 EthermintがCosmos Hubと一緒に使われていくことで、インターオペラブルかつ高速にEVMを動かすことができるようになります。 この仕組みは上述のハードスプーンの項目で説明した仕組みの通りです。 通常、GethではEthereumのProof of Workが利用されるため、スループットが低く確率的なファイナリティしか持ちませんが、Tendermintの合意形成によりProof of Stakeかつ高いスループットでEVMを動かすことができます。 Binance Chain Binance Chainは、名前の通り仮想通貨取引所Binanceが発表した独自チェーンになります。 開発にはCosmos SDKが利用されているという点が明記されており、これによりCosmos Hubと接続することも十分に可能となります。 Binanceは大きな顧客ベースを持つだけでなく、このチェーンを利用したBinance DEXなども既にリリースされておりエコシステムの拡大に大きく貢献すると思われます。 Binance(バイナンス)がテストネットリリースを間近に控えるBinance Chainの詳細に関して その他 その他、OmiseGoやHyperledger、Loom Networkなどの有名なプロジェクトも、Cosmosのエコシステムに参加しているとされています。 まとめ Tendermintが提供する合意形成エンジンとその特徴、仕組み、またCosmosとの関連性と拡大を続けるエコシステムについて紹介しました。 今後もTendermintを採用するプロジェクトは増えていくことが予想されます。 現在、Cosmosを取り巻くエコシステムも非常に増えてきており、今後も要注目であるプロジェクトの一つです。
技術
2019/03/19IOSTがChrome用ウォレット『iWallet』を公開。iGAS、iRAMとノードパートナー報酬受取方法を解説!
IOSTは、先月末にメインネット公開を行い、今月10日からトークンスワップを開始したブロックチェーンプラットフォームです。 当プラットフォームからはMetanyxをはじめとするDAppsも少しずつ登場してきており、今週にはクロスチェーン型ステーブルコイン「iUSD」がローンチを控えています。 そんな中同社は、Google Chrome用ウォレット公開に伴いエコシステムのリソースであるiGAS・iRAMの詳細やノードパートナー(投票者)報酬の具体的な受取方法などを発表したので、こちらのページで詳しく解説していきます。 【仮想通貨】IOST(アイオーエスティー)の特徴・将来性を徹底解説! - CRYPTO TIMES IOSTのリソース構造について IOSTでは、ネットワークのリソースをiGASとiRAMという二つの内部単位に分けています。イーサリアムなどのメジャーなプラットフォームに比べて、内部リソース単位が2つあるというのは特徴的です。 IOSTのシステムリソースは、以下の式で成り立っています。 リソース = NET(帯域幅) + CPU(処理能力) + RAM(メモリ) このうちのNET + CPUがiGAS、RAMがiRAMとなっています。以下では、このiGASとiRAMの詳しい仕組みを解説していきます。 iGASとは? iGASは、IOSTネットワーク上でトランザクションを行う際に発生する手数料のことを指します。この点は、イーサリアムの内部リソース単位「GAS」と同じです。 iGASの入手方法 iGASは、IOSTトークンをステーク(ロック)することで自動生成することができます。 1IOSTをステークするとその場ですぐに100,000iGASを獲得することができ、以降毎日同量のiGASが自動生成されることになっています。 また、必要量のiGASを保有していれば、ステークしたIOSTはいつでも回収できることにもなっています。 iGASを保有できる量には限度があり、3日分の自動生成量(ステークしたIOSTの30万倍)まで、と決められています。 iGAS保有量に限度を設けることで、大量のIOSTを保有するウォレットがiGASをホーディングできないような仕組みを作り出しています。 トランザクションあたりのiGAS消費量について トランザクションの処理速度は支払うiGASの量に応じて上昇する仕組みになっています。IOST公式によれば、特別に急ぎでもない限りはデフォルトの設定で問題ないとされています。 iGAS消費量 = コマンドあたりのガス消費量 * コマンド数 iRAMとは? IOSTでは、ネットワーク上のストレージをiRAMという形で購入することができます。iRAMは、DAppsの開発などで重要な役割を果たすものとなっています。 iRAMはトークンの価格決定プロトコルであるBancor Protocolを活用して作られたもので、各iRAMはそれぞれ一度しか取引できない仕組みとなっています。 ウォレットあたりのiRAMシステムの上限は128ギガバイトに設定されており、購入・売却には2%の手数料がかかることにもなっています。回収された手数料は焼却(バーン)されます。 IOSTウォレットの生成方法 IOSTのウォレットアドレスは、IOSTABCというIOSTのBlockchain Exploreから簡単に無料で生成できます。 上の画面が表示されたら、まずはPubKey(公開鍵)を設定します。 基本的には、下にあるAuto Generateボックスをオンにすると、PubKeyが自動生成されます。その次に任意のAccount(アカウント名)を決めます。 PubKeyとAccountの設定が完了したら、CAPTCHAを行った後、CREATE ACCOUNTをクリックします。 30秒ほど待機すると無事アカウントが生成されプライベートキー(秘密鍵)が表示されます。 秘密鍵は誰にも見せず、安全な場所に保管しましょう。 IOSTでは、アカウント名がウォレットアドレス(公開鍵とは異なる)として機能します。アカウント名は任意で決められるため、早い者勝ちになる点に注意が必要です。 Chrome版iWalletを利用したノード投票報酬の受取り方 今回IOSTは、Google Chromeの拡張機能版としてリリースされたiWalletからノードパートナー報酬を受け取る方法も公開しました。 ノードパートナー報酬とは、今年1月から3月にかけて設けられたノード立候補者への投票期間のうち、自分が投票した立候補者が実際にノードとして選出された者に配布される報酬です。 IOSTのノード投票がスタート!投票者への報酬・配当も必見! - CRYPTO TIMES iWallet Chrome版はからダウンロードすることができます(Google Chrome必須)。 ウォレット拡張機能のダウンロードが完了したら、Chrome画面右上の拡張機能ボタンが並ぶセクションからiWalletをクリックし、IOSTウォレットをインポートします。 手順は、iWallet専用のパスワードを作成し、IOSTウォレットの秘密鍵(プライベートキー)を連携させる、というシンプルなものになっています。 iWalletのPrivate Keyは先程、IOSTABCで作ったウォレットの秘密鍵を連携させても良いですし、他のウォレットを持っているユーザーはその秘密鍵を連携させましょう。連携させることでiWalletにウォレットが同期されます。 ノードパートナー報酬を獲得するには、まずコチラのページにアクセスします。以降は、以下の画面に沿って自分が該当する報酬のタイプ(投票者は投票報酬、ノードはブロック報酬)を選び、送信先のウォレットアドレスを入力します。 記事ソース等: IOST公式Medium: iGASとiRAMについて (英語) IOST公式Medium: ノードパートナー報酬について (英語)
技術
2019/03/17Tippin meの使い方を解説!Twitter上で気軽にBTCを投げ銭できる拡張機能
2019年2月にTwitter上で簡単にLightning Networkを利用したBTCのマイクロペイメントができるTippin meがTippinよりリリースされました。 今回の記事ではTippin meの説明を交えながら、Tippin meの利点、インストールの方法、使い方まで解説していきます! ビットコインを投げ銭できるTippin me とは https://twitter.com/tippin_me/status/1093183245334859780 Tippin meはビットコインのセカンドレイヤー技術であるLightning Networkを利用することで、Twitter上でマイクロペイメントの投銭を実現するGoogle Chrome , Firefox向けの拡張機能となっています。 Tippin meの拡張機能を導入することで、Twitterで気軽に”いいね”を送るのと同じようにビットコインを送ることができます。 Tippin meを利用するには、投げ銭する側と受け取る側の双方が「tippin.me」のアカウントを作成し、投げ銭する側がLightning Networkウォレット「Blue Wallet」などをビットコインを準備しておく必要があります。 Tippin meを利用するための準備 Tippin meを利用するために必要な設定を解説していきます。 利用にはブラウザの拡張機能とLightning Networkに対応したウォレットが必要になります。 拡張機能のインストール Tippin meをTwitter上で送り合うためにはブラウザの拡張機能が必要になります。現在、拡張機能はGoogle ChromeとFireFoxで対応しています。 Chrome用またはFire Fox用のTippin meの拡張機能をインストールします。 ブラウザに拡張機能を追加することでTwitter上に⚡のマークが表示されるようになります。 続けて、Tippin meの公式サイトへ移動しTwitterのアカウントと連携を行ないます。 Join nowをクリックして、 Sign up with Twitterをクリックした後、 Twitterのユーザーネームとパスワードを入力し、Authorize appをクリックしてください。 Twitterとの連携が完了するとTippin meのダッシュボードに移動します。 これでビットコインを受け取る準備は完了です。 Lightning Networkに対応したWalletのインストール 続いて、投銭を送るためにLightning Networkに対応したWalletをインストールする必要があります。 今回は、Blue Walletを例に解説をしていきます。 Lightning Network対応のウォレットであるBlueWalletをインストールします。 アプリを開くと下記の画面が表示されます。 アプリ右上にある+マークをタッチし、Bitcoin(青色)とLightning(黄色) 両方のウォレットを作成します。 作成したビットコインのウォレットを開き、Reciveをクリックします。 BTCを受け取るためのQRコードを表示させます。 表示されたQRコード(または下にあるウォレットのアドレス)を用いて取引所などからBTCをBlue Walletへ送金します。 Lightning ウォレットを開きmanage funds→Refillと順にタップすることで、BTCウォレットからライトニングウォレットへ移動させます。 作成したビットコインウォレットを選択し、送金額や送金スピードを選択し送金します。 ※送金スピードを速く設定すると手数料の割合が高くなります。 しばらくするとLightning Walletに入金されます。これでTippin meを利用して投銭をする準備は万端です! 実際に投げ銭をしてみる Webブラウザに拡張機能をダウンロードすると、”いいね”ボタンと並んで、全てのツイートにtippin.meという稲妻の形をしたボタンが現れます。 この稲妻ボタンをクリックするとトランザクション用のQRコードが現れる仕組みになっています。 BlueWalletのLightning WalletからsendをタップしQRコードを読み取ることで送金することができます。注意が必要で、Lightningに対応していないウォレットから送金しようとするとBTCの送金はできません。 また、相手がTippin meを利用していない場合、下記のエラーメッセージが出て送金できません。 送金した相手へ入金され、トランザクションの履歴が残ります。 通常ビットコインの送金は1ブロック生成されるまでに10分かかり、送金が遅いのが難点です。 しかし、Tippin meはLightning Networkの技術を利用しているので、瞬時にウォレットに反映されます。 Tippin meのメリット Tippin meの最大の特徴はその手軽さと手数料無しで少額送金が可能な点ではないでしょうか。 面倒な手続きや申請などをしなくても Lightning Network対応のウォレット Tippin meの拡張機能 Twitterのアカウント 少額のビットコイン さえあれば誰でもいつでもどこからでもビットコインを送ることができます。 従来とは違い、Twitterで創作物を作ったユーザーなどに対しても気軽にマイクロペイメントできることはニーズが高そうです。 また、既存の手段(銀行振込や小切手など)では手数料がかかるので、少額の送金をしようとすると「手数料が送金額を上回る」ことがありました。 そのため、少額の送金を何度もするのは難しかったのですが、Lightning Networkの技術を利用したTippin meは手数料が殆どかからないのでその心配はありません。 Tippin me を利用してみて 今回Tippin meを使用して、チップとしてビットコインを送りあえるというコンセプトにとても可能性を感じました。 ボーダーレス決済が可能な仮想通貨の特徴と瞬時に手数料をほとんどかけずに、少額送金が行えるLightning Networkの特性を最大限に生かした機能だと思います。 また、Tippin meのユーザーが増えれば、Twitterの投稿でお小遣いを稼ぐなんてことができるかもしてません。 Twitterという大手SNSに拡張機能をつけたことにより、仮想通貨がより広く人々に浸透していくきっかけにもなるかもしれません。 今後よりユーザーに広がっていくためには、拡張機能ではなく、Twitterの機能としてデフォルトに搭載されるとより浸透していくのではと思いました。 皆さんもぜひTippin meを試してみてください! 記事参考:Tippin.me
技術
2019/03/15Kyber Network – EOS-Ethereum間のクロスチェーンコミュニケーションを可能にするWaterlooとは
先日、Kyber NetworkがEthereumとEOS間のクロスチェーンコミュニケーションを可能にするWaterloo (ウォータールー)を発表しました。 この技術により、EOSのライトクライアントをEthereumのスマートコントラクトで、またEthereumのライトクライアントをEOSのスマートコントラクトで効率的かつ完全に分散的に実行することができるようになります。 Kyber Networkの発表によれば、2つのブロックチェーン間のコミュニケーションが可能になるだけでなく、金融・スケーラビリティ・プライバシー分野における応用も十分に可能であるとされています。 本記事では、Warterloo (ウォータールー)の仕組みなどを解説していきます。 Relay Bridgeについて Relay Bridgeでは、2つの異なるブロックチェーン間での双方向のブロックヘッダーのリレーが実現されます。 ブロックチェーンの構造の確認ですが、ブロックヘッダーにはブロック内の各トランザクションのハッシュ値を繋ぎ、さらにそのハッシュ値同士を繋ぎ、と最後にすべてのハッシュ値を含むハッシュであるRoot Hashと呼ばれる最強のハッシュが存在します。 [caption id="attachment_33076" align="aligncenter" width="671"] Bitcoinのホワイトペーパーより[/caption] このRoot Hashが含まれるブロックチェーンAのブロックヘッダーをブロックチェーンBのスマートコントラクトに提出し続けることで、ライトクライアントでブロックの整合性を検証することができるというものです。 Root Hashにはブロック内のすべてのトランザクションのデータが含まれており、これは一般的に数学的に検証をすることが可能です。 同様に、ブロックチェーンBのブロックヘッダーをブロックチェーンAのスマートコントラクトにといった形で、双方向のブロックヘッダーのリレーが実現されます。 これが、今回のWaterloo (ウォータールー)でも使われるRelay Bridgeの基本的な仕組みということになります。 クロスチェーン間での資産の交換 各ブロックチェーンA・Bにおける、ブロックヘッダー内のRoot Hashとスマートコントラクトを利用したトランザクションの検証が可能であるということはわかりました。 では、資産の交換がどのような仕組みで行われるかというと、これは通例通り『Lock(ロック)』『Mint(発行)』『Burn(焼却)』によって行われていきます。 横文字だけだとわかりにくいと思いますので、以下具体例を交えた説明です。 ブロックチェーンAから100枚のトークンをブロックチェーンBに送金するシナリオを想定します。 最初に100枚のトークンをブロックチェーンA上のコントラクトに送金して資産の『Lock』を行います。 ブロックチェーンAのヘッダーにある100枚が『Lock』されているというデータをもとに、ブロックチェーンB上で100枚のトークンの『Mint』が行われます。 通常、これはWrappingなどと呼ばれており、現在でも様々なブロックチェーンで実装されている仕組みの一つです。 続いて、ブロックチェーンB上で、Wrappedされたトークンが『Burn』のコントラクトに送金されると、そのトランザクションのハッシュ値が含まれたRoot HashがブロックチェーンAにリレーされ、Aで『Lock』されていたトークンが開放されます。 この仕組みにより、常に総発行枚数の整合性を保ちながら1:1のペッグが担保されている状態でクロスチェーン間での資産の交換ができるようになります。 EOS⇄Ethereum間のリレーの仕組み これまで説明してきたような仕組みを利用して、資産の交換が可能になりますが、EOS→EthereumとEtheruem→EOSではこの仕組みが微妙に異なります。 EOS→Ethereumのリレー EOSでは、合意形成においてDPoS (Delegated Proof of Stake)が利用されていることから、Finalityに関する定義がEthereumと少し異なります。 [caption id="" align="aligncenter" width="591"] EOSのFinalityの仕組み[/caption] EOSが採用するDPoSの仕組みでは、21のBPs (Block Producer)が存在するのですが、その中でも2/3 + 1 (14+1 = 15, 1は自分)がコミットを行うことで初めてFinalizeされます。 そのため、EOSで行われるアクションをEthereum側にリレーする際、単純にそのトランザクションが含まれたヘッダーをリレーするだけでは、それが無効になる可能性がありProof (of Action)としては不十分となります。 EOSでは以下のイメージのように、15のBPsの署名付きのブロックをProofとしてEthereum側にリレーしなければなりません。 現在、EthereumのKovan TestnetとEOS Jungle2.0 Testnetで実証実験が行われていることが発表されています。 Ethereum→EOSのリレー Ethereumでは、BTCRelay (BitcoinのブロックヘッダーをEthereumに一方向的にリレーする技術)と同様にリレーが行われていきます。 ここでは、EthereumのヘッダーがEOSのスマートコントラクトに対してリレーされ、ヘッダーにはPoWの難易度やRoot Hashなどが記載されています。 Ethereumにおいては、ブロックの有効性は一番長いチェーンに繋がっているということにより証明されるのでEOSよりもFinalityの仕組みがシンプルです。 EthereumのProof of Workのハッシュ関数においてKyber Networkが問題としているのは、この計算において1GB以上のデータを必要とする点であるとしており、今後SmartPool等を利用してこの解決策を模索すると述べられています。 まとめ Kyber Networkによって発表された、EOS-Ethereum間のクロスチェーンコミュニケーションを可能にするWaterpoolについて簡単に解説させていただきました。 その他のクロスチェーンプロトコルでは、セキュリティがそのチェーンに依存してしまいますが、Kyberでは、EOSであればEOS、EthereumであればEthereumのセキュリティをそのまま利用しながらコミュニケーションを実現することができるという点で優れているということができますね。 今後の発表もまた解説できればと思います。 記事ソース : KyberNetwork Blog
技術
2019/02/120xが発表した改善案「ZEIP-23 MultiAssetProxy(MAP)」の詳細
2月12日、分散型取引所のプロトコルである0xから、ZEIP-23 MultiAssetProxy(MAP)と呼ばれる新たなImprovement Proposal(改善案)が発表されました。 ZEIPとは、0x(Zero- Ex) Improvement Proposalの頭文字をとったもので、開発が行われている0xの改善案を指します。 発表によれば、この改善案に関しての開発は既に完了していますが、実装にはコミュニティによる投票が必要とされることから、その詳細や開発の背景、投票についての詳細な情報が今回発表されました。 本記事ではそんなZEIP-23について発表された内容をまとめていきます。なお、ソースコードなどのテクニカルな部分は便宜上省略させていただきます。 今回の発表の概要・キーポイント 今回の発表のキーポイントは以下になります ZEIP-23 MultiAssetProxy(MAP)について ZEIP-23 MultiAssetProxy(MAP)は、ERC20とERC721をバンドル化し、0xプロトコルを通じて分散的に取引することを可能とするスマートコントラクトを指します。 MultiAssetProxyでは、アセットのトランスファーを行うのではなく、バンドル化されたERC20やERC721のAssetIDと呼ばれるものを認識し、当該のAssetProxyにこれを返すという役割を果たすとされています。 また、アセットの取引において、部分的にこれが約定するということはなく(atomic transaction)、必ずすべてのトランザクションが成功するか、すべてが元の状態に戻るかのどちらかの結果となります。 MAP実装とコミュニティ投票について MAPの開発は既に完了しており、コードのセキュリティ監査もすでに終了しています。 しかし、統合には0xのスマートコントラクトの"hot upgrade"が必要とされ、これにはコミュニティによる監査も必要であるが故、ZRXを利用した投票の後の実装という形となっています。 そのため、ZRXトークンホルダーは2019/02/18から行われるMAPの統合について承認・拒否の投票を行う必要があり(強く奨励され)、この投票結果に応じた統合となります。 また今回の投票は、初の試みでありオンチェーンガバナンスにおける安全性の証明にリスクを伴う可能性があるため、投票は集権的なメカニズムを利用しオフチェーンで行われます。 仮に、承認された場合、0xはv2.0からv2.1へのアップグレードが行われます。 バグバウンティキャンペーンの詳細 0xでは、oxプロトコルのスマートコントラクトに関するバグの発見に対してバウンティ(報酬)を提供するバグバウンティキャンペーンを行っています。 今回のZEIP-23の発表では、ZEIP-23がバグバウンティの対象に追加されたことが明らかになりました。 バグを発見すると、CVSS(Common Vulnerability Scoring Standard)に基づく重要度に応じて最大$100,000USDまでの報酬が提供される仕組みになっています。 また、報酬はすべて0xのトークンであるZRXでの支払いとなります。 ZEIP-23の開発に対するモチベーション Non-Fungible Token(代替不可能トークン)は、EthereumのコミュニティにおいてERC721が正式に採用されたのち、ブロックチェーンゲーム(DApps)やコレクタブル、マーケットプレイスのエコシステムに大きな活気をもたらしました。 Ethereum(イーサリアム) ERC721の特徴は? ERC20やERC223との違いを徹底比較! - CRYPTO TIMES 0xのv2.0では、ERC721トークンのトレードをサポートしていましたが、コミュニティからの要望の多くに、これらのアセットをバンドル化したトレードを可能にすること、というものがありました。 ZEIP-23では、あらゆるERC20・ERC721のバンドルの取引を可能にします。 これには、以下のような様々なユースケースが考えられます; [caption id="" align="aligncenter" width="678"] 2匹のKittiesと1匹のKitty+DAIのトランザクション。[/caption] 複数匹のKittiesと1匹のKitties+ステーブルコインの取引 ERC721のトレーディングカードで、20枚セットのブースターパックを販売すること DecnetralandにおけるLANDのまとめ買い・売り 予測市場においてショートポジションを持つこと。例えば、AugurやVeilを利用して、2020年大統領選挙において、特定の政党以外に対してのロングポジションを持つことで、実質的にその特定の政党に対するショートポジションを持つことになる 今後の実装に関するロードマップ MAPが0xに実装されるためには、ZRXホルダーのコミュニティによる投票での最終的なConfirmationが必要となります。 統合にコミュニティの投票が絶対とされる理由には、今回のアップグレードが"hot upgrade"と呼ばれ、これには0xの既存のスマートコントラクトを修正する権利が含まれ、資産へのアクセス権も同時に必要とされるためです。 ZEIP-23の今回のアップグレードだけでなく、今後の"hot upgrade"に関しても、ステークホルダーはZEIP(改善案)に対する拒否権を行使することができなくてはなりません。 投票は、上記イメージのように2019/02/18から一週間にかけて行われる予定となっており、その結果はシンプルな多数決によって決定されます。 (2018/02/13の日本時間午前4時からは、0xのsubredditでAMA(Ask Me Anything)セッションも行われるため、不明点があればこちらで質問することも可能です。) 0xコアチームメンバーのこの投票に参加することができますが、機関・企業によって保有されているトークンでは参加することができず、自身でZRXを保有している必要があります。 投票が可決された場合、即座にその統合が行われますが、ERC20・ERC721を実際にバンドル化して取引を行うことができるのは、可決後2週間後の2019/03/11からとなっています。 仮に、この提案が否決された場合、0xのフォーラムにおいて事後のディスカッションが行われ、今後の実装に向けてよりよい提案や、必要に応じてより強固なセキュリティの方策に関する議論が行われる予定となっています。 まとめ 0xより、発表された新たな改善案であるZEIP-23 MultiAssetProxyについての発表をまとめました。 この提案がコミュニティにより可決されれば、3月11日より、ERC20やERC721をバンドル化して取引することができるようになり、DAppsのマーケットプレイスの幅がさらに広がるのではないかと考えられます。 また、ソースコードについての詳細は割愛しましたが、詳細は公式発表の以下のリンクから確認指定だたくことができます。 記事ソース:ZEIP-23: trade bundles of assets
技術
2019/02/08Binance(バイナンス)がテストネットリリースを間近に控えるBinance Chainの詳細に関して
こんにちは。Shota(@shot4crypto)です。 昨年、仮想通貨取引所であるBinanceからリリースに関しての予定が明らかにされたBinanceの独自チェーン『Binance Chain』とその分散型取引所『Binance DEX』ですが、先日Q&A形式でこれに関しての更なる詳細が発表されました。 本記事では、Binanceが独自に開発を進めるBinance Chainについてその詳細をまとめていきます。 Binance Chainとは Binance Chainとは、仮想通貨取引所Binanceとそのコミュニティによって開発された独自のブロックチェーンを指します。 以前から公式にアナウンスされているBinanceの分散型取引所『Binance DEX』はこのBinance Chain上に構築される分散型取引所ということになります。 Crypto Timesでも以前に、Binance Chain・Binance DEXに関して紹介をしていますので、以下の記事も是非参考にしていただければと思います; -Binance(バイナンス)が独自のブロックチェーン「Binance Chain」を数ヶ月内にリリースか!デモ動画も新たに公開! -BINANCE(バイナンス)の分散型取引所BinanceChainの開発状況デモが公開 Binance Chainの概要 https://www.youtube.com/watch?v=9R9LrKgL__A Binance Chainの概要 名称 Binance Chain ネイティブコイン $BNB アルゴリズム BFT / DPoS・pBFT(将来的に) 特徴① ブロックタイム1秒・1 Confirmation ファイナリティ 特徴② スマートコントラクト非対応 関連リンク Binance DEX テストネット(未) Chain Explorer テストネット(未) Binance Chainの特徴 Binance Chainは以下のような原理に基づいて設計されています; 一切の資産の預かり・保管をしない:トレーダーは自身のプライベートキー及び資産を自身で管理 ハイパフォーマンス:大きなユーザーベースを想定した高スループット・低レイテンシー、かつ流動性の高い取引を実現。1秒のブロックタイムと1 Confirmationのファイナリティを目指す(トランザクションが即座に完了する) 低コスト:低い手数料及び流動性コスト ユーザーエクスペリエンス(UX):Binance.comと同様のUXを提供 公正な取引:フロントランニング等を最小限に抑える 進化可能:新技術などによる改善が容易 DEX(分散型取引所)と聞くと、ユーザーエクスペリエンスがCEX(集権型取引所)と比較して劣るイメージですが、Binance Chain上の分散型取引プラットフォームでは、従来のBinance.comと同様のUI・UXが提供されるという点が大きな特徴として挙げられます。 1秒のブロックタイム・1 Confirmationのファイナリティという点も、ユーザビリティなどにおいて非常に重要な点の一つです。 また、Binance ChainはCosmos SDK・Tendermintの技術の一部を利用しており、これをフォークする形で設計されていることも大きな特徴です。Cosmos・Tendermintを選択した理由に関しては、後述のAMAにてCZ氏が回答しています。 Binance Chainでできることは? 特徴を見ていくと、Binance Chain及びBinance DEXでは、従来のBinance.com同様或いはそれ以上のパフォーマンスが期待できるということがわかりました。 ここでは、Binance Chain・Binance DEXでは具体的に何ができるのか、既存のDEXとどのような違いがあるのかを見ていきます。 Binance Chain Docsによれば、Binance Chainでは; Binance Chainのネイティブコインである$BNBの送信・受け取り 新規トークンの発行 トークンの送信・受け取り、Burn / Mint、凍結 / 解凍 異なる2トークン間での取引ペア作成の提案 チェーン上に作成された取引ペアの資産(トークン)売買 と記載されています。 バイナンスコインはこれまで、EthereumのERC20という規格で発行されるトークンでしたが、Binance Chainがメインネットへ移行すると同時に、Ethereum上のトークンからBinance Chainのネイティブコインに移行することになります。 しかし、Ethereum上のトークンからBinance Chainへの移行が行われると言っても、同ドキュメントによればコインのBurnなどはこれまで通り引き続き行われるとされています。 二点目にある、新規トークン発行に関してですが、前項同様これに関してもユーザビリティが担保された形で容易にトークン発行を行うことのできる仕組みが準備されるとのことです。 トークン発行に必要とされるのは、『トークン名称』・『トークンティッカー(シンボル)』・『発行枚数』・『Mint可否』の指定及び『少量の$BNB』とされており、Binance Chainを利用することで誰もが簡単に新規トークンを発行することができるようになります。 Binance CEO CZ氏が実施したAMAの内容まとめ 2月7日の日本時間午前11時頃、CZ氏はBinance DEXに関してのAMAを行いました。 https://twitter.com/binance/status/1093328531168276480 上記ツイートのライブ配信録画から内容を確認することもできますが、AMAでCZ氏が回答した質問を以下にまとめていきます; Binance Chainのバリデーターノードの数はどの程度ですか? --テストネットでは11に設定されています。Bitcoinほど多くはないので、どちらかというとNEOやXRPに近い感じだと思います。 ノードとなるために必要とされる要件等はありますか? --実質、誰でもノードになることはできますが、ブロックタイムが1秒なので、比較的高い負荷に耐えられるマシンが必要だと思います。 ノードやステーキングを行う人に対してはどの程度のガス・手数料が支払われますか? --現段階では、支払われたガス・手数料はすべてノードに渡ります。Binanceの現在の主なゴールとして、BinanceのDEXをできる限り早くリリースすることが最優先で、リリースが済んだ後で必要な調整などがあれば適宜調整していく形を取ります。 Cosmos・Tendermintを選んだ理由はなんですか? --一番の理由として、Cosmosの持つアーキテクチャが私たちの求めていたものに一番近いものだったという点が挙げられます。Binance ChainはCosmosの一般的な『Cosmos SDK』を使用しておらず、CosmosやTendermintの持つ技術を細分化してフォークするという形を取りました。 --Binance Chainは、トークンを容易に発行しそれをトレードするためのインターフェースしか持たないので、スマートコントラクトには対応していません。 --Applicationという点だけで見るならば、Binance Chainは非常にシンプルなチェーンですが、負荷耐性という意味では非常に強力なものとなっています。私たちは、スマートコントラクトを実装してより多くの機能性を持たせるよりも、より多くのトランザクションの負荷に耐えうる性能を持たせることの方がより重要であると考えています。 Binance Chainのテストネットのβテスターにはどのように申込みをすることができますか? --テストネットはあと一週間ほどでリリースされる予定となっています。テストネットがローンチすれば、もちろんβテストの受付も行っていきます。 DEXの早期アクセス権はどのようにして手に入れることが可能ですか? --私たちは、既に一部のパートナーに対してDEXへのアクセス権を提供しています。この中でもほとんどがウォレットの開発者或いはブロックチェーンエクスプローラーに対してのものです。 --基本的に、DEXへのアクセス権提供は、DEXを統合するためのツールを持つ人々に対してのみとなっています。 Binance Chain上では、数百万ものプロジェクトが実質的にトークンを発行することができると話していましたが、期待されるTPSはどの程度ですか? --現段階でのTPSは数千程度であると予測されます。ですが、これは容易に引き上げることが可能です。 --現状、Binance ChainのTPSのベンチマークとしては、Binance.comで現在取引が行われているのと同程度の負荷に耐えられるような設計になっています。しばらくの間は、このスループットで問題はないと考えていますが、取引高という観点で万が一耐えられなくなってしまった場合でも、これを水平にスケールさせることが可能です。 どのようにしてバリデーターになることができますか? --当初は、DDoS攻撃などを防ぐために、バリデーターは私たちのパートナーの中から選ばれますが、時間の経過とともにこの数字を増加させていきます。これに関しては、まだ最適な数字を探しているところです。 Cosmosの技術をクロスチェーン間のインターオペラビリティ実現に利用していきますか? --これに関してはまだ決定していませんが、当初はBinance DEXのリリースにフォーカスしていくつもりです。 --もしインターオペラビリティの技術を利用していくとしても、最初のv1.0ではなく、将来的にリリースをしていくv.20やv3.0での実装となるでしょう。 --とはいえ、Cosmosの技術を利用しているという点では、インターオペラビリティの実装も十分に自然なことです。 Binance Chainのネイティブコインとなる$BNBにはどのようなユーティリティがありますか? --基本的にはERC20の$BNBが持つユーティリティと同じで、$BNBを利用することで手数料が安くなるなどのユーティリティが存在します。 トランザクションをプライベートで行うこともできますか? --現状、これに関してはBitcoinなどのようにすべてのトランザクションは透明に記録されていきます。プライベートのトランザクションなどは行うことはできません。 まとめ Binanceがリリースを間近に控えるBinance Chainの概要についてまとめました。 仮想通貨取引所がコミュニティと共に独自にチェーンを開発するというケースは前例がありませんが、プロダクトは十分に期待できると言えるでしょう。 TwitterでもBinance Chainだけでなく、海外の情報を発信していますので、そちらもよろしくお願いします。 記事ソース:Binance Chain FAQ v0.3
技術
2019/01/22【IPFSとブロックチェーン Part1】IPFSとは?ストレージ問題を解決する技術
ブロックチェーンは革新的なトラストレス・データベースである一方、ネットワークの規模やスケーラビリティの関係からストレージ面で問題を抱えることが多々あります。 そんなブロックチェーンストレージ問題の解決策として注目されているのが、InterPlanetary File System、通称IPFSです。 IPFSは、ブロックチェーン技術でお馴染みの「ハッシング」と「P2Pネットワーク」を融合させたファイルシステム、いわば「ネットワーク上でデータをやりとりする方法」です。 こちらのページでは、IPFSについて技術的な基礎知識からわかりやすく解説していきます。 IPFSとは? 一般的な研究やソフトウェア開発などでは、進捗状況を確認するために新旧バージョンを比較する必要があり、IPFSは当初、異なるバージョンのデータに素早くアクセスする方法として生み出されました。 やがて、同技術はネットワーク上の参加者(コンピューター)全員がアクセスできる分散型P2Pファイル共有システムとしてさらに開発が進められることとなりました。 IPFSを理解するためには、ネットワークプロトコルについての知識が少し必要になります。難しく聞こえるかもしれませんが、わかりやすく解説していきます。 ピアツーピア(P2P)ネットワークを利用している 私たちが普段アクセスしている「インターネット」は「クライアント/サーバーモデル」と呼ばれるものを使用しています。 このモデルは、クライアント(ユーザー)がサーバーに必要なデータを要求し、サーバーがそれを提供する、というものです。 ちなみに、このクライアント/サーバー間のやりとりを確立するプロトコルが「HTTPプロトコル」と呼ばれるものです。 このモデルにおけるファイルのダウンロードというのは、私たちユーザーがサーバーにリクエストを送り、サーバーがそのファイルを提供する、という流れを指します。 この「クライアント/サーバー接続」に対し、サーバーを介さずデータの要求者と提供者を直接繋ぐことをピアツーピア(Peer to peer)、通称P2Pと呼びます。IPFSは、P2Pネットワークにあたります。 IPFSと仕組みが似ているBitTorrent IPFSの基盤的な仕組みは、BitTorrentと呼ばれるP2Pプロトコルに似ています。 BitTorrentでデータをリクエストすると、すでにそのデータを保有しているコンピューターから直接転送が行われます。 クライアント/サーバー接続ではサーバーからのみデータが転送されるのに対し、BitTorrentでは要求データを保有するコンピューター複数から同時にデータをダウンロードすることができます。 したがってBitTorrentでは、多数のコンピューターがデータを保有している場合、ダウンロード時間を大幅に短縮することができます。 IPFSも「必要なファイルをネットワークに要求し、そのファイルを保有するノードからダウンロードする」という仕組みとなっており、この点でBitTorrentに類似しています。 このシステムのもうひとつの便利な点は「特定のデータを保有するノードがひとつでも存在する限り、そのデータはネットワーク上に半永久的に残り続ける」というところです。 クライアント/サーバーシステムではサーバーの消失と共にデータも失くなる(Single point of failure)のに対し、P2Pでは一度アップロードされたデータは良くも悪くも残り続けるのです。 IPFSはハッシング技術を利用している IPFSは、BitTorrentに似たファイル共有システムに加えて、ブロックチェーン技術でお馴染みの「ハッシング」という暗号技術を利用しています。 ハッシングの便利な点は、データそれぞれに固有のハッシュを与えることができる、という点にあります。 ハッシュ関数をわかりやすく体験してみよう 例えば、「我輩は猫である」という文章をSHA256と呼ばれるハッシュ関数に通すと、 "8AFC1EA26B8E95F9BEA48BD55B71AD63E8D1BDA3E955E874C00E2F9ED004AE8F" という「ハッシュ」が出力されます。これが「固有である」というのは、「他にどんな文章を通しても同じハッシュは(ほぼ)絶対に出てこない」ということを意味します。 ここで、猫を犬に変えて、「我輩は犬である」という文章を入力すると、 "68AB96F7ADEBBEA638F8036C15206BF03BD389E7C0A3B49F91F36E756FCC94D9" という全く異なるハッシュが出力されることが確認できます。 ブロックチェーンにおけるハッシュ技術 ブロックチェーンでは、データを特定の長さのランダムな文字列に変換する「ハッシュ関数」を利用することで、ウォレットアドレスやブロックの生成を行なっています。 例えば、暗号資産のウォレットには「プライベートキー」「パブリックキー」「ウォレットアドレス」の3種類が存在します。 実はこの「ウォレットアドレス」というのは「パブリックキー」のハッシュなのです。 【ロケーション VS コンテンツ】IPFSはコンテンツでアドレスを決定する 私たちが見慣れているファイルシステムは、「ロケーションアドレッシング方式」と呼ばれています。 このシステムでは、"abc.com/pictures/cats/favourite-cat.jpg"のように、コンテンツのアドレスを保存されている位置(ロケーション)から決めています。 これに対しIPFSは、要求ファイルのハッシュをそのコンテンツのアドレスとする「コンテンツアドレッシング方式」を採用しています。 したがって、IPFSプロトコルを使用したネットワーク上に存在するコンテンツには全て「固有のアドレス」が存在する、ということになります。 つまり、同じデータに別々のアドレスが与えられるといった事態が発生しないため、ネットワーク上でのデータの重複を大幅に抑えることができるのです。 長々と技術的な説明をしてきましたが、ここでようやくIPFSがいったい何をするのかを解説できます。 IPFSでは、ネットワーク上で目的のデータを保有している人を探し、保有者複数から同時にダウンロードすることができます。ここまではBitTorrentと同じです。 BitTorrentと異なる点はデータのアドレスがハッシュで表されている点で、ロケーションアドレッシングについて考える必要はありません。 まとめ・次回予告 今回は、InterPlanetary File System、通称IPFSとは何かを解説しました。 まとめると、IPFSには以下のような利点があります。 P2Pファイル共有システムを利用しているため、ノードの数に応じてデータのダウンロードが速くなる。 また、特定のファイルはそのデータを保有するノードが存在する限りネットワーク上に残り続ける。 データのハッシュをアドレスとすることで、同じデータの重複を削減できる。 次回は、IPFSのより詳しい仕組みを解説し、その仕組みがなぜブロックチェーン技術のストレージ問題解決に繋がるのかを説明していきます。