![見出し画像](https://assets.st-note.com/production/uploads/images/148614265/rectangle_large_type_2_07baed34acc81a4cbc7241663936c826.jpeg?width=1200)
Solana完全レビュー(2024年上半期時点)
Solanaのユニークさはどこにあるでしょう?多くのブロックチェーンプロジェクトが存在する中、様々なアプローチでSolanaはブロックチェーンの基本的な要素にフォーカスしていますが、そのアプローチは非常に独特です。特にSolanaが焦点を当てているのは時間です。結局のところ、ブロックチェーンに分散型クロックを導入すると、誰も想像できなかったほど効率的になるということSolanaは証明しました。
1. Solana誕生の歴史
アナトリー・ヤコヴェンコは、Solanaブロックチェーンの創設者であり、技術者としての経歴がそのSolanaの立ち上げにも大きく寄与しています。
ウクライナ出身のヤコヴェンコは、アメリカのイリノイ大学アーバナ・シャンペーン校でコンピュータサイエンスの学位を取得した後、Qualcommをはじめとする複数のテクノロジー企業で働きました。Qualcommでは、12年間にわたりスマートフォンの基本技術開発に携わり、その後、分散システムを扱うメソスフィアやクラウドストレージのDropboxで技術革新に貢献しました。これらの経験は、後にブロックチェーン技術への転身を促す重要な基盤となっています。
![](https://assets.st-note.com/img/1722001933458-QFRwHJbWuj.jpg)
ヤコヴェンコのブロックチェーンに対する関心は、当初はそれほどありませんでしたが、ディープラーニング技術の研究と並行してBitcoinのマイニングを経験する中で、ブロックチェーンの潜在能力に気づき始めました。特に2017年、彼はビットコインのハッシュ関数SHA256を用いて、暗号通貨ブロックチェーン上で分散型の時計、つまり「Proof of History」というSolanaの核となる概念を思いつき、これがセキュリティや分散性を犠牲にすることなく実現できると確信しました。
![](https://assets.st-note.com/img/1722001974988-CcPC6uXcDQ.jpg)
2017年末にヤコヴェンコはQualcommの当時の同僚だったグレッグ・フィッツジェラルド、スティーブン・アクリッジ、ラージ・ゴカルと共に、正式にプロジェクトを立ち上げました。カリフォルニアのソラナビーチにちなんで名付けられたそのブロックチェーンのホワイトペーパーは2017年11月にひっそりと公開されたのです。
2. Solana基本概要
![](https://assets.st-note.com/img/1722003687364-BaHzBeDQp1.jpg?width=1200)
Solanaは、スマートコントラクトを実装する分散型アプリケーション開発向けに設計された高性能ブロックチェーンです。Ethereumの弱点とも言われるスケーラビリティ問題を解決しようとしていることから「Ethereumキラー」とも称されることがあります。Solanaは、開発当初から長期的なビジョンを持ってブロックチェーンを設計しました。これは、ヤコヴェンコが Qualcomm 在籍中に通信技術の能力が毎年ほぼ 2 倍に成長するのを見てきた経験から生まれたものです。そのため進化の早いブロックチェーンの中において現在も超高速な取引処理能力と低コストのトランザクション手数料で知られています。
その基盤となる技術は、前述した「Proof of History(PoH)」という技術です。後ほど詳しく解説しますが、これはブロックチェーン上の各トランザクションにタイムスタンプを付け、ネットワーク全体の同期効率を大幅に改善します。この方式は従来のブロックチェーンと比べて、高速でエネルギー効率が良いという利点があります。これによりSolanaは、秒間最大65,000トランザクション(TPS)を処理することができます。また、後述するFiredancerの実装により、さらに速度が向上する予定です。このようにSolanaは高い処理性能を備えて低料金と400ミリ秒のブロックタイムを提供することで、ユーザーフレンドリーなアプリケーション開発を促進します。
ちなみに、Proof of Historyは、コンセンサスプロセスの一部ではあるものの、核となるブロック生成権利者を決める仕組みはProof of Stake(PoS)を採用しています。様々な情報源で「コンセンサスメカニズムにはProof of Historyを採用している」と書かれているため勘違いしやすいポイントですが、Proof of Historyはあくまでもコンセンサスを効率化するためのコア機能と考えると、より正確でしょう。基本的なProof of Stakeの枠組みを使用しつつも、Proof of Historyとの組み合わせによって、より強化された処理性能を提供しているということです。
このようなSolanaのアーキテクチャはGoogleやMicrosoftが使用するデータベース技術に触発されたものとしており、分散型データストレージプロジェクトであるFilecoinからの影響も受けています。これらのユニークなアイディアにより、SolanaはEthereumやCardanoなどの競合チェーンと比較して、はるかに高速なトランザクション速度を実現しています。特に、Proof of HistoryとProof of Stakeの組み合わせは、ブロックチェーン上のバリデーターがチェーン内の異なるブロックのタイムスタンプに対して投票することを可能にし、チェーンをある程度分散化した状態で、より高速で、よりセキュアな処理を実現しています。
3. Proof of History
SolanaのProof of History (PoH) は、分散型システムにおける時間の同期問題を解決するための技術です。通常、ブロックチェーン技術では、異なるノード間で正確な時間を同期することが困難です。たとえばビットコインの場合、新しいブロックの承認には時間を要するマイニングが必要ですが、これはネットワーク全体での時間の合意を間接的に行う方法です。一方、Proof of Historyはこの問題に対して直接的なアプローチを提供します。トランザクションが発生した正確な時刻を記録し、その情報を用いてトランザクションの順序を確定しています。
PoHは、基本的に「時間の記録者」として機能します。このプロセスは、あるデータから次のデータへと継続的に時間の証拠を生成する「デジタルタイムスタンプ生成機」と考えることができます。具体的には、初期のデータ(または状態)から始め、そのデータを元に次々と新しいデータ(ハッシュ値)を生成していきます。この生成されたハッシュは、それぞれが一連の繋がりを持ち、前のデータを基に次のデータが作られるため、それぞれのハッシュはチェーンのように連鎖しているのです。
![](https://assets.st-note.com/img/1722001908329-deEXckOhm2.png)
この「連鎖的なデータ生成プロセス」の特徴として並列処理が不可能な点が挙げられます。その理由は、各ハッシュの生成が前のハッシュに依存しているためです。新しいハッシュを生成するためには、直前のハッシュが必要となり、その過程は一つ一つ順番に処理する必要があります。このため、全体の計算速度は非常に高速ですが、並行して複数の計算を行うことはできません。
この連鎖的なハッシュ生成によって、Solanaはトランザクションの正確な時間を記録し、それに基づいて迅速かつ効率的にトランザクションを処理することが可能です。このシステムは改ざんが困難で、一度データがブロックチェーンに追加されると、その後のデータに影響を与えることなく過去のデータを変更することは事実上不可能です。また、PoHによって生成されたタイムスタンプは、トランザクションが確実に行われた時間を証明するため、分散型ネットワーク全体でのデータの整合性と透明性が保たれます。つまり、PoHはコンセンサスを得る前の段階の仕組みであり、その後のコンセンサスプロセスを効率化する役割を果たしているということです。
4. その他のSolanaの革新的な技術
Solanaでは、PoHを含む8つのコア機能が存在します。PoHについてはすでに説明した通りですが、それ以外に特に注目するべき3つの技術を紹介します。(各機能について詳細に知りたい方はこちらのサイトを確認してください。)それは、Turbine、Gulf Stream、Sealevelです。これらはProof of History(PoH)と組み合わせて使用され、Solanaのパフォーマンスとスケーラビリティを大幅に向上させています。
前提知識として、Solanaには「リーダーノード」が存在します。リーダーは新しいブロックを生成する役割を担っていて4 ブロック(1.6 秒) ごとにその役割が交代します。ノードはリーダーでいる間、生成している 4 つのブロックにできるだけ多くのトランザクションを詰め込み、トランザクションを含むこれらのブロックをSolana クラスターと呼ばれる関連ノードグループに提示します。これらのノードは、PoHにより付けられたタイムスタンプを参照してトランザクションを検証し、ネットワーク上の他の関連ノードにデータを迅速に渡します。リーダーの選択は疑似ランダムですが、ステークした SOL の量はリーダーになる確率に影響します。不正行為をしたノードはステークが削減され、削減された資金がブロック生成報酬に追加されます。
Turbine
TurbineはSolanaのブロック伝播プロトコルで、大量のデータを効率的に分散させるために設計されています。このプロトコルでは、リーダー(ブロックを生成するノード)がブロックを小さなパケットに分割し、最初のグループのバリデーターに送信します。これらのバリデーターは、受け取ったパケットを自分の「近隣」グループに再配布します。このネットワークは階層的なツリー状に構成されており、データは階層を下るごとに迅速に伝播していきます。これにより、全バリデーターへのデータ配布が効率的に行われ、大幅な帯域幅削減が可能となります。
Gulf Stream
Gulf Streamは、トランザクションの前処理と転送を効率化する技術です。Solanaネットワークでは、各バリデーターが次にブロックを生成する「予定されたリーダー」の情報を知っています。この情報を基に、クライアントやバリデーターはトランザクションを事前にこれら予定されたリーダーに直接送信します。これにより、トランザクションの確認時間が短縮され、システムの全体的なレイテンシーが低減します。
Sealevel
Sealevelは、多数のスマートコントラクトを並列に実行できるランタイム環境を提供します。ランタイム環境とは、プログラム(この場合はスマートコントラクト)が実行されるための基盤です。Sealevelでは、トランザクションが読み書きするデータの状態を事前に定義することで、依存関係にないトランザクションを抜き出し、それらは並列実行されることを可能にします。これは、Proof of Historyが各トランザクションのタイムスタンプを提供することで実現されます。PoHはトランザクションの順序を確定する役割を持ち、Sealevelはこの確定された順序に基づいて依存関係にないトランザクションの並列処理を行います。
これらの技術は、PoHと連携してSolanaのパフォーマンスを最適化します。TurbineとGulf Streamは効率的なデータ伝播とトランザクションの転送を実現し、Sealevelはこの堅牢な基盤の上で複数のトランザクションを同時に処理します。Solanaは一つ一つのプロセスを徹底的に効率化することで高速処理を実現しているブロックチェーンであると言えるでしょう。
頭を悩ませている方のために、Solana の仕組みを理解するために簡単な例え話を作ってみました。
![](https://assets.st-note.com/img/1722005250890-UPsWQbLGPs.jpg?width=1200)
従業員が 180 人いる小さな会社を想像してください。この会社にはさまざまな部署 (経理、営業、マーケティング、カスタマーサービスなど) があります。すべての従業員は他のすべての部署の仕事のやり方を知っています。さらに、各従業員は1.6 時間ごとにランダムでリーダーの役を担わなければいけません。リーダーは、その間、さまざまな部署から送られてくる書類に署名する必要があります。
どの従業員がリーダーに選ばれるかは基本的にランダムですが、各従業員のコンピューター画面には、リーダーの役割を担う次の10人の人物が表示される小さなウィンドウがあります。これにより、従業員は事前にリーダー予定の従業員に書類を渡し、仕事をより早く終わらせることができます (Gulf Stream)。
![](https://assets.st-note.com/img/1722005027655-az2WDPKcYz.jpg?width=1200)
リーダーは書類に署名するたびに、タイムスタンプを付けて(PoH)、二重チェックのために適切な部署 (ノードクラスター) に効率的に送り返します(Turbine)。二重チェックが完了すると書類は会社のデータベースに追加されます。各部署の作業は重複しないように連携をとりつつ、同時に複数の書類処理を行うことができるように高度に仕組み化されています (Sealevel)。
これがSolanaで行われている基本的な仕組みです。重要なポイントは必要に応じてネットワーク上の異なるノードに異なるタスクを割り当て、すべてのトランザクションにタイムスタンプを付けて正確性を確保することです。それをベースに、様々な効率化のための仕組みがコンセンサスプロセスに組み込まれているのがSolanaなのです。
5. Solanaが抱える課題
ここから先は
¥ 999
Amazonギフトカード5,000円分が当たる
この記事が気に入ったらチップで応援してみませんか?