仮想通貨情報 技術情報 記事

Tron(trx)アーキテクチャ全体解剖

top

Tronのライブストリーミングで、Tronのアーキテクチャが紹介されました。今回はアーキテクチャについて解説したいと思います。

概要

Tronは3層のアーキテクチャで構成されるプラットフォームです。

architecture

アプリケーション層
この層にはTronベースの分散型アプリケーション(DApp)が乗っかります。

※ 犬のゲームやOcoinなど

コア層
コンセンサス機能、スマートコントラクト、アカウント管理機能が存在している。

※ コンセンサスアルゴリズムはDPoS

ストレージ層
チェーンストレージとステートストレージに切り分けてデータを保存する。
今回はここが重要なポイント

※ Tronは開発途中でメインネットがリリースされていないため、アプリケーション層にまだDAppは載っていないと思う。

流れ

ストレージ層の特徴

コンセンサスについて

参考

ストレージ層の特徴

ストレージ比較

Ethereumのストレージ
スマートコントラクトをすでに実装しているEthereumがありますね。
Ethereumは基本的なブロックチェーンのストレージ以外に、キー・バリュータイプのストレージが存在しています。
スマートコントラクトによってキー・バリューのストレージの中身を書き換えています。
キー・バリューのストレージはスマートコントラクトを実行するには正直遅いし、膨大なコンピューターパワーが必要な状態です。

key・valuestorage

Tronのストレージ
graph DB という形式のストレージでスマートコントラクトを実装しようとしています。
graph DB を使うことでデータの探索速度が上昇し、スマートコントラクトの処理スピードが上がります。
graph DB の仕組みを見てみましょう。

graphDB

graph DB ではつながりも保存することができます。
アカウント情報が保存されるまるいものをノード、つながりの線をエッジと言います。 ノードのデータはステートストレージに、エッジのデータはトランザクションとしてチェーンストレージに保存されます。

graph DB はエッジを利用して「友達の友達」を検索したりすることができます。facebookみたいですね。
この特徴を利用することで、Tronはアカウント同士の関係性を分析しようとしています。
この人の好きなコンテンツはあなたも好きになる可能性が高い等、DAppのリコメンドでかなり利用できそう。

trxの送金はどう行われるのだろうか?

transaction

trxの送金は graph DB のエッジとして保存されます。 エッジということはチェーンストレージに保存されるということですね。

このようにストレージを切り分けてデータを保存することで、アカウントの関係性を分析しやすく高速なスマートコントラクトを作るらしいです。

ノードにはここにはでてきていないkhaos DBという保存エリアがありますが、コンセンサスの部分で合わせて説明するので、ここでは飛ばします。

コンセンサスについて

TronのコンセンサスアルゴリズムはDPoSです。
DPoSに詳しいわけではないので、少し間違っているかもしれません、すみません。

マイニング、ハッシュ関数、コンセンサスってなに?って人は先にGoogleで調べてください。

まずマイナーが選出されます。TRX保有数が多い人が選ばれる、、、、、はず
TRXを保有している一般のかたは選出されたマイナーに対して投票を行う。
マイナーは自身の保有数と投票数によりマイニング難易度は変化する。
マイニングに成功したマイナーは投票してくれた方に報酬を分配する。

DPoSはPoSよりもマイナーの数が圧倒的に少なくなるため、承認のスピードが早くなります。
悪質なマイナーには投票する人はいないため安全にブロックがはまっていく。
たぶんこんな感じだと思います。

Tron独特の部分(Khaos DB)

khaosDB

正直そこまですごいものではない。
このKhaos DBは先ほど説明したノード(ステートストレージ)に保存されている情報です。
マイニングにおいて、同時にマイニングが成功してしまう時がある、その時チェーンは分岐します。
分岐したチェーンはいずれ長さに差が生まれるので、長いほうが採用される仕組みとなっています。
ただ分岐した時点ではどちらが長くなるか予測しかできません。
通常だと、どちらか選択をし他のチェーンは無視でマイニングを進めていくことになります。
TronではKhaosDBに他のチェーンの情報を格納しておくことで、瞬時に最長チェーンに切り替えられるようになっています。
ただそれだけです。。。

参考

An overview of Tron’s technical live stream to non-technical people

以上、になります。 最後まで見ていただきありがとうございました。
間違い等あると思うので、気づいた方はtwitterにてダイレクトメッセージしていただけると助かります。
今後、いろいろと仮想通貨関連の記事解説していこうと思いますので、よかったらフォローしてください 笑

Follow @maronBlockchain