このページの目次
- 1 LISKとは
- 2 Lisk Whitepaper要約
- 2.1 What is Lisk
- 2.2 Lisk Tokens
- 2.3 Technical Background
- 2.4 Security
- 2.5 Key pair
- 2.6 key-pair-generation
- 2.7 Second pass phrase
- 2.8 Multisignature(マルチシグ)
- 2.9 Address
- 2.10 Blocks
- 2.11 Block Header
- 2.12 Transactions
- 2.13 Transaction Signing
- 2.14 Balance Transfer Transaction
- 2.15 Second Signature Registration Transaction
- 2.16 Delegate Registration Transaction
- 2.17 Vote Transaction
- 2.18 Multisignature Registration Transaction
- 2.19 Consensus
- 2.20 Delegates
- 2.21 Delegate Round
- 2.22 Network Rewards
- 2.23 Block Rewards
- 2.24 Round Fees
- 2.25 Peers Communication
- 2.26 System Headers
- 2.27 Broadhash Consensus
- 2.28 Block Propagation
- 2.29 Broadcast Queue
- 2.30 Transaction Pool
- 2.31 Appendix A: Deprecated Transactions(非推奨なトランザクション)
- 2.32 Applications Registration Transaction
- 2.33 In Transfer transaction
- 2.34 Out Transfer Transaction
- 3 勝手にまとめ
LISKとは
2018年1月31日、BitFlyerでLiskの取引が開始されました。国内取引所ではCoinCheckに引き続き2軒目となりますが、CoinCheckでのGoxがあり、2018年2月1日現在取引ができるのはBitFlyerのみとなっています。
Liskの公式サイトはこちらです → Liskのホワイトペーパー
Lisk Whitepaper要約
What is Lisk
Liskは、JavaScriptベースのブロックチェーンアプリケーションを開発、公開できる次世代の仮想(暗号)通貨プラットフォームです。
Liskでは使いやすいUIを提供し、様々な機能にアクセスできます。
Liskを通じて開発者は、カスタマイズ可能なブロックチェーン、スマートコントラクト、クラウドストレージ、コンピュータノードを使用し、暗号化通貨を開発・公開・販売・収益化することができます。
Lisk Tokens
Lisk内では、安全にシステムを利用するためトークンを使用する。そのトークンは”LSK”と呼ばれます。このトークンはシステムの利用料として支払われます。LSKは、取引所などで購入することができます。
Technical Background
LiskはJavaScript、Node.js、PostgreSQLという3つの主要コンポーネントを使用しています。
JavaScript
JavaScriptはエンドユーザに豊富な機能を提供するために使用されます。また、多くの開発者が取り組みやすいためメジャーな言語です。現在は、ほぼ全てのブラウザでサポートされています。Liskは、どのようなコンピュータでも(WinでもMacでもLinuxでもAndroidでも)使用することができるブロックチェーンアプリケーションプラットフォームになることを目的としています。
Node.js
LiskはバックエンドにNode.jsを利用しています。Node.jsは、柔軟性があり全てのデスクトップアーキテクチャとたくさんのIOTデバイスに展開することができます。この特性により、任意のデバイス上で実行できます。
補足)Node.jsは、サーバサイドで用いられるJavaScript環境で、フロントエンドと技術を共にできることでDeveloper Friendlyな開発が可能である。
PostgreSQL
PostgreSQLは、歴史あるRDBMS(関係データベース管理システム)です。バイナリファイルや音楽ファイルなど、あらゆるタイプの情報を格納することができます。また、バックアップ機能とフォールトトレランス機能※は、オープンソース空間では比類のないものです。
※障害発生時にも正常稼働できる技術。
Security
Liskは、EdDSAを使用し暗号化ハッシュを使用し安全かつ高速な暗号化を実現しています。
Key pair
暗号鍵は、秘密鍵と公開鍵のペアで構成されてます。 秘密鍵は、鍵の所有者だけが知っている情報です。公開鍵は秘密鍵から派生し、秘密鍵が所有者に属していることを検証するために使用できますが、所有者の秘密鍵にはアクセスできません。 楕円曲線暗号は、暗号的に安全な鍵ペアを生成するために使用されます。鍵ペアを生成するために使用されるプロセスは、以下の前提の下で動作します。
ユーザーがアカウントを作成すると、BIP39によりパスフレーズがそのユーザーに対して生成されます。 このパスフレーズは、SHA-256ハッシュ関数を使用して256ビットの文字列にハッシュ化されます。 このハッシュはその後、秘密鍵を生成するためにed25519(エドワーズ曲線電子署名アルゴリズム)の種としてされます。
key-pair-generation
秘密鍵を使うとユーザーはトランザクションオブジェクトに署名しネットワークにブロードキャストすることができます。公開鍵は、トランザクションの一部として含まれており、トランザクションを受け取るノードは公開鍵を使用して署名の正当性を検証できます。
Second pass phrase
Liskは、ユーザーにもう一つのセキュリティを提供します。特定クラスのトランザクションを使用して、ユーザーは公開鍵に関連付けられた第2のパスフレーズを登録できます。この関係では、後続のすべてのトランザクションを有効とみなすために2番目のパスフレーズを使用して署名する必要があります。第2の鍵ペアを生成するプロセスは、主鍵ペアのプロセスと同じです。
Multisignature(マルチシグ)
Liskは、より協力なセキュリティを必要とするユーザのためにマルチシグアカウントをサポートしています。マルチシグアカウントは、複数の署名者が署名トランザクションを提出することを要求するアカウントです。任意のユーザは、指定された特別なトランザクションを発行し、最小限の署名を発行することによって、自分のアカウントでマルチシグネチャを有効にすることができます。
Address
アドレスまたはウォレットIDは、公開鍵から派生します。公開鍵はSHA-256を使用してハッシュされ、その後ハッシュの最初の8バイトが逆になります。アカウントIDは、8バイトの数値表現で、最後に ’L’ が付加されています。
Blocks
ブロックチェーンはブロックで構成され、ブロックはヘッダーとトランザクションのリストで構成されます。デリゲートユーザーにスロットが割り当てられノードが実行されている場合、そのデリゲートユーザーは次のブロックを生成し、トランザクションプールから最大25個のトランザクションを承認します。これらの承認されたトランザクションは、ブロックのペイロードに追加され、その後、そのブロックにサインインされます。
Block Header
ブロックヘッダーには、ブロックに関するすべての情報が含まれます。次のフィールドは、ブロックヘッダの構成です。
- ブロックのバージョンを識別する32ビットの整数
- ブロックが作成された時の32ビットエポックタイムスタンプ
- 64ビットの前ブロックのID
- ブロック内で処理されるトランザクション数に対応する32ビット整数
- 転送されたLiskの総量に対応する64ビット整数
- ブロックに関連付けられた手数料の総額に対応する64ビット整数
- デリゲートユーザーのLiskによる報酬に対応する64ビット整数
- ペイロードの長さに対応する32ビット整数
- ペイロードの256ビットのハッシュ
- ブロックを生成したデリゲートユーザーの256ビットの公開鍵
Transactions
Liskでは、トランザクションはタイプによって指定されます。トランザクションタイプは次のとおりです。
アクティブなトランザクションタイプ
- タイプ0:指定されたLiskアドレスに資金を送信する
- タイプ1:第2のパスフレーズを登録する
- タイプ2:デリゲートユーザーを登録する
- タイプ3:デリゲートユーザーへの投票を送信する
- タイプ4:マルチシグ登録
非推奨のトランザクションタイプ
- タイプ5:ブロックチェーンにアプリケーションを登録する
- タイプ6:Liskをサイドチェーンに転送する
- タイプ7:サイドチェーンからLiskを移動
Transaction Signing
タイプに関係なくすべてのトランザクションは、ネットワークによって承認される前に送信者によって署名されなければなりません。トランザクションに署名するプロセスは、すべてのトランザクションで同じです。まず、トランザクションを表すデータブロックを生成する必要があります。各データブロックには、標準化された特定の情報群が含まれています。追加情報は、トランザクションのタイプによって異なります。以下のフィールドは、すべてのタイプのトランザクションに必要です。
- トランザクションのタイプを識別する8ビットの整数
- トランザクションが作成されたときの32ビットエポックタイムスタンプ
- トランザクション発行者の256ビットの公開鍵
- 転送されるLiskの量を表す64ビットの整数
他のフィールドは、トランザクションタイプに応じて追加されます。データブロックが生成されるとSHA-256を使用してハッシュ化され、発行者のキーペアを使用して署名されます。発行者が第2のパスフレーズを有効にした場合、第1の署名がデータブロックの最後に追加され、さらに第2の署名が生成されます。マルチシグアカウントにも同じ概念が適用されます。トランザクションIdは、データブロックから生成されます。トランザクションIdを計算するために、署名が完了したデータブロックをSHA-256を使用してハッシュ化し最初の8バイトを逆転させてからトランザクションIdとして使用します。署名付きトランザクションは、次のフローを使用します。
2つ目の署名付きトランザクションフロー
Balance Transfer Transaction
残高振替トランザクション(タイプ0)は、ある口座から別の口座へのLiskの振替です。残高振替トランザクションを発行するには、以下の項目を指定する必要があります。
- 受信者の口座ID
- 転送するLSKの量
- アカウントの秘密鍵
これらの3つのフィールドが指定されると、システムはトランザクションオブジェクトの構築を開始します。まず、送信者の公開鍵は、その秘密鍵を使用して計算されます。これに続いて、データブロックはトランザクション署名の項で説明されたプロセスを使用して作成され、受信者Idがオブジェクトに追加されます。結果、データブロックは53バイトになります。
このブロックは、前述の方法で署名されます。トランザクション生成プロセスの最終ステップは、トランザクションの手数料を計算することです。現在のシステムでは、料金は0.1 Liskに固定されています。これらのすべてのステップが完了しトランザクションが検証されると、トランザクションはネットワーク上に一斉送信されます。トランザクションはデリゲートユーザーによって処理されるまで未確認状態のままです。トランザクションがネットワークにブロードキャストされ、HTTP APIを使用してJSONオブジェクトとして送信されます。次の図は、トランザクションオブジェクトを表しています。
Second Signature Registration Transaction
第2の署名登録トランザクション(タイプ1)は、ブロックチェーン上に第2のパスフレーズを登録するために使用されます。このトランザクションを発行するには、以下のフィールドを指定する必要があります。
- secret:アカウントの秘密鍵。
- secondSecret:希望する第2のパスフレーズ。
これらの2つのフィールドが指定されると、システムはトランザクションの構築を開始します。 これらは前述で概説したプロセスに従います。 第2の公開鍵は第2のパスフレーズから生成され、システムは85バイトのデータブロックを構築します。
このデータブロックは、ユーザーの秘密鍵を使用して署名されオブジェクトに追加されます。 続いて手数料の計算が実行されます。 既存の実装では、署名取引の手数料は5 Liskに固定されています。結果のオブジェクトは、次の図で表されます。
Delegate Registration Transaction
デリゲートユーザ登録トランザクション(タイプ2)は、アカウントをデリゲート(代表者・委任者)ユーザーとして登録するために使用されます。デリゲートユーザー登録トランザクションを発行するには、以下のフィールドが必要です。
- secret:アカウントの秘密鍵。
- username:デリゲートのユーザー名。
ユーザー名の長さは、1文字以上最大20文字でなければなりません。これらのフィールドが指定されるとシステムはアカウントの公開鍵を計算し、トランザクションのデータブロックを最大73バイトで構築することができます。
このデータブロックは、アカウントの秘密鍵を使用して署名されトランザクションオブジェクトに追加されます。 その後、システムは取引の手数料を計算します。 現在の実装では、この手数料は固定されており25Liskです。 結果のオブジェクトは次の図で表され、トランザクションの最終的な最大サイズは137バイトで、2番目の署名は201バイトです。
Vote Transaction
投票トランザクション(タイプ3)は、デリゲートユーザーを選任する投票用トランザクションです。 投票トランザクションを発行するには、次の2つのフィールドが必要です。
- secret:アカウントの秘密鍵。
- delegates:投票の配列。
投票には、デリゲートユーザーの公開鍵にステークを追加するための「+」が付加され、アカウントがデリゲートユーザーへの投票を削除したい場合は、公開鍵の前に「−」が付加されます。1つのトランザクションの投票最大数は33です。これらのフィールドが指定されると、システムはアカウントの公開鍵を計算し、最大2198バイトのトランザクションのデータブロックの構築を開始できます。
このデータブロックは、アカウントの秘密鍵を使用して署名されトランザクションオブジェクトに追加されます。その後、システムは取引の手数料を計算します。 現在の実装では、投票トランザクションの料金は1 Liskで固定されています。 結果のオブジェクトは次の図で表され、署名のあるトランザクションの最終最大サイズは2262バイトで、2番目の署名は2326バイトです。
Multisignature Registration Transaction
マルチシグネチャ登録トランザクション(タイプ4)は、マルチシグをアカウントに追加するために使用されるトランザクションです。マルチシグネチャ登録トランザクションを発行するには、以下のフィールドが必要です。
- secret:マルチシグが適用されるアカウントの秘密鍵。
- keysgroup:マルチシグアカウントに追加または削除するキーの配列。
- min:トランザクションの検証に必要な署名の最小数。(最低2)
- lifetime:トランザクションを削除する前に十分な署名を待つ時間。
keysgroupの各公開鍵の前には、マルチシグアカウントに追加する公開鍵である「+」が付加されます。トランザクションの検証に必要な最低限の署名は、少なくとも2で最大16です。keygroup内の鍵の最小量は2です。lifetimeは時間単位で指定され、少なくとも1時間、最大24時間でなければなりません。これらのフィールドが指定されるとシステムはアカウントの公開鍵を計算し、トランザクションのデータブロックの構築を開始します。データブロックのサイズは、マルチシグ登録トランザクションに追加されたキーの量によって異なります。各キーは、修飾子の追加により65バイトになります。
このデータブロックは、ユーザーの秘密鍵を使用して署名され、署名はトランザクションオブジェクトに追加されます。その後、システムは取引の手数料を計算します。現在の実装では、マルチシグ登録トランザクションの料金はkeygsgroupのキーごとに 5 Liskです。トランザクションを発行しているアカウントのキーは、マルチシグネチャに暗黙的に追加されています。結果のオブジェクトは、次の図で表されます。
Consensus
Liskは、コンセンサス(合意形成)システムとしてDelegated Proof of Stake(DPoS)を使用していますデリゲート(代表者・委譲者)ユーザーはシステム内のすべてのブロックを生成し、これらのデリゲートユーザーは、ステークホルダー(利害関係者)によって競争の激しい選挙システムの中で選ばれる。デリゲートユーザーの数N(現N = 101)は、すべてのステークホルダーによって鍛造(PoWで言う採掘・マイニング)されるように選択されます。各ステークホルダーは最大101名の議員に投票することができ、投票の重みはステークホルダーが所有するリスクの量に依存します。ステークホルダーは、投票トランザクションを使ってデリゲートユーザーに投票することができます
コンセンサス(合意形成)は、ブロックチェーンシステムに必要な側面です。多くのノードがあり、すべてのノードがデータの整合性に同意しなければならないブロックチェーンシステムの重要な目的を果たします。参加するすべてのノードは、ブロックチェーンを前進させるために、どのトランザクションデータが合法であるかについて合意する必要があります。
Delegates
デリゲートユーザーとは、前述したデリゲート登録トランザクション(Type2)を使用して登録したアカウントの一種です。これらのアカウントは、システムのブロックを生成することが許可されているため、デリゲートユーザーが他のユーザによって十分な票を割り当てられていれば、Lisk内での特別な役割を持つことができます。どのアカウントもデリゲートになることができますが、必要な票を持つアカウントだけがブロックを生成できます。
Delegate Round
システム内のラウンドは、正確にはNブロックの長さである(Nはデリゲートユーザー数と同一)。 1ラウンドの間、各デリゲートは正確に1つのブロックを鍛造(採掘)します。選出されたデリゲートユーザーがラウンド中に鍛造できない場合、別のデリゲートユーザーが代わりに行います。各ラウンドの開始時に、各デリゲートユーザーには、ブロック生成プロセスでの位置を示すスロットが割り当てられます。生きたアクティブデリゲートを持つノードがブロックを鍛造すると、デリゲートユーザーであるノードはブロックに最大25のトランザクションを含め署名し、そのブロックをネットワークにブロードキャストします。ブロックがネットワークに到達すると、次のデリゲートユーザーは割り当てられたスロットを鍛造します。
Network Rewards
Liskには、ノードを動作させるためのさまざまなインセンティブ(報酬)が用意されています。一つ目はブロック生成報酬であり、もう一つの報酬はデリゲートユーザーが参加するアクティブなネットワークを確保するための手数料です。
Block Rewards
ビットコインやその他のブロックチェーンシステムと同様に、Liskのブロック生成報酬は、生成に成功したブロックあたり固定量の報酬がシステムによって支払われます。Liskのシステムでは、正常に参加したすべてのアクティブなデリゲートユーザーは、ネットワークのセキュリティ確保のために報酬を受けます。これらのブロック報酬のタイムラインは、下記に表されています。
鍛造のマイルストンmilestones
- 500,000,000:初期の報酬はブロック1,451,520から開始されます
- 400,000,000:マイルストーン1はブロック4,451,520から開始されます
- 300,000,000:マイルストーン2はブロック7,451,520から開始されます
- 200,000,000:マイルストーン3はブロック10,451,520から開始されます
- 100,000,000:マイルストーン4はブロック13,451,520から開始されます
ブロック生成報酬は、ネットワークの存続期間にわたって直線的に減少し、デリゲートユーザーとして参加することにインセンティブを提供します。報酬は、最初の報酬ブロックから3,000,000ブロックごとに減少します。
Round Fees
システムが提供する第2のインセンティブは、ラウンドフィーの形式で提供されます。ぜん術のセクションで説明したラウンドは、指定されたブロック数が生成された時点で終了します。このプロセス中にすべての取引手数料が集計され、その後ラウンド中のすべてのアクティブな参加者に分割されます。これらの手数料は、取引活動が存在する間ブロック生成報酬以外の各参加者に大きな報酬を与えることができます。
デリゲートユーザーが複数の手数料を獲得することが可能です。これは、デリゲートユーザーがラウンド内の複数のブロックを鍛造した場合に発生する可能性があります。滅多に発生しませんが、デリゲートユーザーの割り当てられたスロットの間に別のデリゲートユーザーノードがオフラインになり、その後割り当てられたスロットのブロックが生成できなくなることがあります。これは、デリゲートユーザーがスロットを逃し、別のデリゲートユーザーがラウンド中に複数のブロックを生成することを意味します。
Peers Communication
ピアツーピアコミュニケーションは、リスクネットワーク内の重要な機能を果たします。ピアリングメカニズムは、ネットワークコンセンサス、ブロック送信およびトランザクション送信を容易にするために必要なアーキテクチャを提供します。
System Headers
Liskネットワークシステム内では、フルノードを識別しシステム上で実行されているソフトウェアに関する基本的な情報を提供するためにヘッダーが使用されます。これらのヘッダーはピア間で送信されるすべてのメッセージに追加されます。
Broadhash Consensus
Broadhashコンセンサスは、フォークを防止するためにLiskネットワークにとって重要な機能を果たします。 DPoSシステムでは、デリゲートユーザーにはタイムスタンプに基づいてスロットが割り当てられ、システムがそのデリゲートスロットを準備完了とすると、ブロックを鍛造しようとします。 Broadhashのコンセンサスは、大部分のノードが鍛造容認に同意したを保証します。
Broadhashは、データベース上の過去5つのブロックの集約されたハッシュとして確立されます。同じブロックを持つすべてのピアは、同じBroadhashを生成し、前述のシステムヘッダーを介してその情報をピア内に伝播します。
Block Propagation
ブロックの伝播は、Liskネットワーク内の重要な機能です。ブロックは分散され、コンセンサスを確立するためにネットワーク上にあるすべてのノードに送信する必要があります。ブロックが生成されると、そのブロックを他のピアにブロードキャストし、さらにそのピアからブロードキャストされます。ブロックの伝播がなければ、システムは停止し、ブロックチェーンは機能しなくなります。
Broadcast Queue
ブロードキャストキューは、Liskネットワークの基本的な役割を果たします。トランザクションをブロックに含めるために、他のすべてのノードに移動する必要があります。ブロードキャストキューは、トランザクションプールから最大25のトランザクションを取得し、それらを1つのバンドルに集約することによって機能します。このバンドルは、現在5秒ごとに指定された間隔でネットワークにブロードキャストされます。オブジェクトをブロードキャストすることに加えて、バンドルにはリレーの制限が与えられブロードキャストが防止されます。現在の実装では、リレー制限は2に設定されています。つまり、すべてのバンドルが発信ノードから1回、受信ノードから2回ブロードキャストされます。
Transaction Pool
トランザクションプールは、オーバーフローした未確認のトランザクションを保存するための非常に堅牢なソリューションを提供します。前述したように、各ブロックには25のトランザクションしか含まれていないため、トランザクションプールには5.000トランザクションまでが次のブロックのためにキューに入れられることを可能にします。トランザクションプールは、ブロックにサインインされるまでトランザクションを保管しておくメモリプールと考えることができます。
トランザクションプールの2番目の用途は、トランザクションを伝播するためのメカニズムを提供することです。ノードがトランザクションバンドルを準備すると、そのノードはプールから最大25のトランザクションを引き出し、それらのトランザクションの検証を実行します。これらのトランザクションは、バンドルされたJSONオブジェクト内の他のノードにブロードキャストされます。これは、前述のセクションにリストされているすべてのトランザクションタイプのオブジェクト配列として表すことができます
トランザクションプールをきれいに保つために、すべてのトランザクションにはライフタイムがあります。このライフタイムは、10800秒すなわち1080ブロックと定義されます。
トランザクションプールの最終的な使用方法は、保留中の署名付きトランザクションを格納することです。これらのトランザクションは、署名保留中として未確認のトランザクションとなります。このようにして、トランザクション・プール内では不完全なものとして分離されたマルチシグネチャトランザクションが発生します。未確認トランザクションと同様に、最初に生成されたときに指定されたライフタイムに基づいてプールから期限切れ扱いにされます。
Appendix A: Deprecated Transactions(非推奨なトランザクション)
この付録には履歴文書が含まれているため、現在サポートされていませんが、システム内ではまだアクティブな取引タイプとして示されています。これらのトランザクションは使用すべきではありません。
Applications Registration Transaction
アプリケーション登録トランザクション(タイプ5)は、サイドチェーンに使用されるアプリケーションの登録に使用されます。アプリケーション登録トランザクションを発行するには、以下のフィールドが必要です。
- カテゴリ:アプリケーションのカテゴリ
- 名前:アプリケーションの名前
- タイプ:アプリケーションのタイプ
- リンク:アプリケーションをダウンロードするリンク
追加フィールドの指定
- 説明:アプリケーションの説明
- アイコン:アプリケーションのアイコン
- タグ:アプリケーションのタグ
これらのフィールドが指定されると、システムはアカウントの公開鍵を計算し、次の図に示すトランザクションのデータブロックの構築を開始します。このデータブロックはアカウントの秘密鍵を使用して署名、データブロックに追加され、システムは取引の手数料を計算します。現在の実装では、アプリケーション登録料は500 Liskです。トランザクションの最終サイズは、コンテンツの量によって異なります。一般に、結果のオブジェクトの範囲は150〜200バイトです。applicationIdはtransactionIdと同じです。
In Transfer transaction
In Transferトランザクションは、メイン・チェーンからアプリケーションのサイド・チェーンに資金を移すために使用されるトランザクションです。 In Transferトランザクションを発行するには、次の3つのフィールドを指定する必要があります。
- Secret:アカウントの秘密
- Amount:移転するLiskの金額
- dappId:アプリケーションのID
これらのフィールドが指定されると、システムはアカウントの公開鍵を計算し、次の図に示す最大73バイトのトランザクションのデータブロックの構築を開始できます。このデータブロックは、アカウントの秘密鍵を使用して署名され、署名がデータブロックに追加されます。その後、システムは取引の手数料を計算します。現在の実装では、手数料は0.1 Liskです。以下は、ネットワークにブロードキャストされる結果のJSONオブジェクトを表しています。署名のあるトランザクションの最終サイズは136バイトで、2番目の署名は200バイトです。
Out Transfer Transaction
Out Transferトランザクションは、アプリケーションのサイドチェーンからメインチェーンに資金を転送するために使用されるトランザクションです。 Out Transferトランザクションは、アプリケーションの所有者によってのみ発行されます。 Out Transferトランザクションを発行するには、以下のフィールドが必要です。
- Secret:アプリケーション所有者の秘密鍵
- RecipientId:引き出しを発行したユーザーのID
- Amount:転送するLiskの量
- TransactionId:サイドチェーン上にあるアプリケーションの引き出しトランザクションのID
- DappId:アプリケーションのID
これらのフィールドが指定されると、システムはアカウントの公開鍵を計算し、最大93バイトのトランザクションのデータブロックの構築を開始します。このデータブロックは、アカウントの秘密鍵を使用して署名され追加されます。その後、取引の手数料を計算します。現在の実装では、Out Transferトランザクションの手数料は0.1 Liskです。
以上がLiskのホワイトペーパーの翻訳です。
勝手にまとめ
- LiskはJavaScript、Node.js、PostgreSQLを使用した分散型アプリケーションのプラットフォームであり、リスクのブロックチェーンから派生するサイドチェーン上にユーザーがアプリケーション(Dapps)を作ることができる。
- サイドチェーンがあるので、高速安全にトランザクションを処理でき、スケーラビリティの問題が解決できると思われる。
- Lisk内で使用する通貨はLSKと言います。自分が作ったアプリケーション上でなどで利用できる。
- Liskは、Ethereumのようにスマートコントラクトを実装している。
- Liskの暗号化方法にはEdDSAと言う方式を使用しているため高速である。また、二つ目のパスフレーズを生成できセキュリティが強化されている。
- Liskはマルチシグ対応である。
- LiskはPoWやPoSでなく、DPoSというコンセンサスアルゴリズムを使用している。これは、Posのようにたくさんの通貨を持っている人がブロック生成を行うのではなく、101のデリゲートユーザー(代表者)をみんなの投票で選び、そのデリゲートユーザーが代表してブロック生成を行う。Liskではマイニング(採掘)とは呼ばず”鍛造”と言う。
上記の”勝手にまとめ”には、こちらの情報も入っております。(後々翻訳できればと思っております)→ Learn More
こんなところでしょうか?最近では、BitFlyerでも取引が始まり非常に楽しみな仮想通貨だと思っています。今後アプリケーションプラットフォームという立ち位置でEthereumと良いライバルになるのではないでしょうか?サイドチェーンがうまく機能しだしたら、Liskに軍配があがかもしれませんね。
Liskの取引はこちら↓からできます!!