Back to list
Aug 26 2017

Skycoinの概要

Skycoinの紹介

Skycoinは、公開ブロードキャストチャンネルと呼ばれる新しい暗号要素を使った技術に基づいています。 Obeliskと呼ばれる新しい合意形成アルゴリズムの実装も導入されています。 Bitcoinの基礎となっているプルーフ・オブ・ワークとマイニングプロセスに起因するコミットメント問題を緩和し、これに関連するセキュリティ上の問題に対応します。 Obeliskは単一のアルゴリズムではなく、いつかのセキュリティ上の保証を実現するために複数の手法を採用した実装です。

Bitcoinと現在のブロックチェーンプロトコルによる革新と欠陥

Bitcoinでは、新しいトランザクションがブロックに配置され、ブロックチェーンに追加されます。 Bitcoinネットワーク内のすべてのノードは、新しいブロックを作成できます。 したがって、各ブロックが持つ親は1つですが、有効な後継子(子)は1つ以上になり得ます。 チェーンがツリーを形成しますが、Bitcoinは、正当なチェーンがどれであるかを、ネットワーク内の全てのノードがどのように合意するのかという重要な問題を解決します。

Bitcoinは、プルーフ・オブ・ワーク(PoW)という手法を使用して、一意のブロックチェーンを決定します。 有効なブロックは、そのハッシュ値が目標値以下である必要があります。 ノードは新しいブロックにトランザクションを追加し、ブロックのハッシュ値が目標値以下になるまで、ナンスをランダムに変えて試します。

関数を使用して、ブロックツリー内の合計連鎖次数が計算されます。 最も難易度が高く、それを生成するために必要なハッシュ計算が最も多いチェーンは、「最長チェーン」であり、合意チェーンとなります。 「ブロックの深さ」と「難しさ」の概念から、ブロックツリーのすべてのチェーンについて合計連鎖次数が計算され、生成するために最も計算リソースを消費するチェーンのみが合意チェーンとして受け入れられます。

Bitcoinノードはランダムに相互に接続し、各ノードは、それぞれが知っている最も難しいチェーンを接続相手に中継します。 もしあるノードが他の接続されたノードより難しいチェーンを持っている場合、他のノードはそのチェーンを順番に受信します。 ノードは関数を使用し、受け取ったチェーンがより難しいものであることを確かめ、そのチェーンが最長チェーンであることに合意するかどうかを決めるでしょう。 ノードは、新しいチェーンを他のノードに配信します。 このようにして、合意がネットワーク全体に広がり、すべてのノードが同じ合意に達します。

Bitcoinは、ノードがアイデンティティを持っていると仮定せず、ノードが正当であるとも仮定しません。 ノードは他のノードに自由にデータを送信できますが、難易度は各ノードが独立して検証できるため、合意形成に影響を与えることはできません。

Bitcoinが起こした革新

* ブロックチェーン

誰もが持つことができる単一のデータ構造です。

* 取引のための公開台帳

ブロックチェーンに金融取引を格納します。

* PoWの利用と、一定のブロック生成速度を維持するための難易度調整

* アドレスとしての公開鍵ハッシュの利用

公開鍵は使用するまで公開されません。

* 残高整合性を保つための「アウトプット」の利用

分割可能なデジタル通貨を作ろうとする必要はありません。 $25のアウトプットから$20を払うためには、$20を相手に送り$5を自分自身に送ります。

* PoW難易度関数とブロック深度

ブロックツリーの合計連鎖次数を定義する関数を使用します。 公開台帳は、従来のデジタル通貨につきまとっていた二重支出問題を回避します。

Bitcoinの主な欠陥

以下に挙げるものは、新しい暗号通貨の開発で取り組まなければならない課題です。 Bitcoinは、今後の開発によって改善する必要がある、原始的な暗号通貨と見なされるべきです。 Skycoinの基盤となるテクノロジーは、分散合意システム全体を再設計することで、Bitcoinの大きな欠点に対処します。

* Bitcoinの合意は最終決定ではなく、元に戻すことができます

十分なハッシュ計算力をレンタルまたは購入できる人や組織は、トランザクションを元に戻すことができます。

* Bitcoinはネットワーク上で合意を形成しますが、個々のBitcoinノードは、パケットが通過するルータを制御する攻撃に対して非常に脆弱です

ルータを制御する攻撃者は、ノードの視野を制御し、ノードの合意決定に任意に影響を与えることができます。

* Bitcoinの取引所は、攻撃に対して非常に脆弱になっています

巧みな攻撃者は、Bitcoin取引所で51%攻撃とアルトコインの売買を行い、取引所を破産に追い込むことができます。

* 銀行とギャンブルのサイトは51%攻撃に対して脆弱になっています

* Bitcoinが成熟するにつれて、Bitcoinに対抗するオプションの購入とネットワークに対する攻撃がより利益的になっています

将来、Bitcoinに対する攻撃が成功すれば、オプション取引の利益は数億ドルになる可能性があります。

* 競争力のある企業と同様に、強い資本規制力を持つ州は、金融利益を守るためにBitcoinネットワークを直接攻撃するかもしれない

このような存在は、ネットワークの攻撃コストを負担して、Bitcoinのセキュリティを損なう可能性があります。

* サードパーティが提供する「クラウドハッシュ計算」と計算パワーのレンタルサービスがますます成功している

現在、多くの大規模プールでは、ハッシュ計算パワーをレンタルすることができ、51%攻撃に使われる恐れがあります。

* ハッカーは、銀行や取引所からコインを盗むために、ルータやネットワーク機器にある数多くのセキュリティホールを使用することができます

攻撃者は、Bitcoinノードに接続されているノードをすり替え、攻撃者が制御するノードに接続させることができます。 例えば、攻撃者は、銀行側のブロックチェーンに偽の預け入れトランザクションを記録した後、 銀行に引き出しトランザクションを発行させ、それをメインネットワークに中継することができます。

* Bitcoinは低コストでセキュリティを提供できない

Bitcoinネットワークは、膨大な電力を指数関数的に使用しています。 Bitcoinのセキュリティは、できるだけ多くの電気を無駄にすることに意図的に依存しています。 セキュリティは、過半数のハッシュ計算力を達成するコストに関連するため、Bitcoinネットワークを実行するコストは常に上昇します。 うまく設計されたシステムでは、$1が費やされたセキュリティを破るためには$1000かかります。 Bitcoinでは、この比率は$1対$1です。さらに、これは地球環境に対して無責任です。

* Bitcoinは基本的に、セキュリティを損なうことなく決済にかかる時間を短縮できない

Bitcoinトランザクションは、ブロックに含まれるまでに平均10分かかるため、セキュリティを強化するためにはさらに時間がかかります。

金融台帳の分散合意システムに求められる特性

Bitcoinを改善できるポイントは次のとおりです。

* 二重支払なし

一度トランザクションが実行されると、合意形成を元に戻すことは不可能です。 合意形成は可能な限り不可逆的でなければなりません。

* 効率

完璧に安全な台帳を実行するコストは、非常に低くすべきです。

* 速度

システムは、トランザクションが数秒以内に確認されるようにする必要があります。

* 透明性

悪意のあるノードを調査して識別することは容易でなければなりません。

* ルータ攻撃のセキュリティ

ノードは、自身の合意がネットワークと異なるかどうかを検出できるはずです。

ネットワーク内のノードの大部分が悪意を持ち結託していても、一部のセキュリティー・プロパティーはそのまま残るはずです。

基本的なレベルでは、Bitcoinシステムに関連するセキュリティ問題の多くは、プルーフ・オブ・ワークとマイニングプロセスに起因するコミットメント問題から発生します。 そのセキュリティ問題は現実のビザンチン将軍問題を表しています。 参加者には検証プロセスを改ざんする動機(贈収賄やハッキングに関与するなど)が存在します。 攻撃者はシステムクロックを操作し、ルーターを危険にさらし、ハッシュ衝突を使用し、数十万のボットでネットワークを氾濫させ、トランザクション展性を悪用します。

安全なシステムは、あらゆる既知の攻撃から保護するだけでなく、将来の攻撃に対応して進化し適応するように十分に堅牢でなければなりません。 トランザクション展性などの、Bitcoinのいくつかの問題を修正することができます。 プルーフ・オブ・ワークやマイニングへの依存など、その他の問題は根本的なものであり、まったく新しいフレームワークを定義しなければ対処できません。

Skycoinのセキュリティ哲学

セキュリティは、脅威に対する継続的な識別と防御のプロセスです。 優れたシステムは「徹底的な防御」を達成し、複数の冗長システムを持ち、個々の対策のどんな失敗からも生き残ります。 よいセキュリティは、実害のある脅威と単なるいやがらせとの区別を必要とします。

単一のシステムがすべてのセキュリティ脅威を排除し、同時に上に挙げたすべての目的を達成することはできないことは明らかです。 Skycoinは、セキュリティのためにモジュールレイヤー化されたアプローチを取り、特定のセキュリティ保証を実現するために複数の異なるシステムを使用するため、次世代の暗号通貨技術であると言えます。 Skycoinのセキュリティは、Bitcoinが直面する実在の脅威に対処し、ユーザー、ステークホルダー、および機関投資家に最大の損失を与えるような攻撃に対して最高レベルの保護を提供することを試み、日々の脅威からユーザーを保護することに重点を置いています。 これには、ウォレットの生成からブロックチェーンの合意形成までの全ての範囲におけるBitcoinの完全な再設計と、その他のいくつかの領域で根本的な革新が必要です。

Bitcoinの損失のほとんどは、ソフトウェアや数学の基本的な技術攻撃ではなく、設計の不備、ユーザビリティの欠如、およびエンドユーザーの間違いに由来します。 Skycoinは、実在する数学的な脅威と、Bitcoinのユーザーエクスペリエンスに対する不完全で不十分な配慮が作り出したセキュリティの危険性の両方に対処する必要があります。 ユーザビリティと設計の貧弱さは、安全性を損なうことを余儀なくされており、何百万ドルもが不安定なWebウォレットに日常的に依存しています。 数多くの盗難が毎日報道されているにもかかわらず、多くのBitcoinが犯罪者の努力以上に、使い勝手の問題から失われています。

既存のBitcoinの半分以上が最初のアドレスから移動されたことはなく、また今後も移動されないでしょう。 なぜなら、それらは回復不能なウォレットファイルや、紛失したウォレット、またはウォレットファイルにバックアップされたものが何であるかを誤解したことにより、失われたからです。 Mt. Goxは最近、彼らが気づかずにBitcoinを移していたウォレットから200,000 Bitcoinを「発見」したと報告しました。 ウォレットは以前は無視されていたので、誤って削除される可能性が大いにありました。 ソフトウェアが、「古すぎる」ソフトウェアによって作成されたウォレットを読み込めなかったため、ウォレットは頻繁に空であると誤認されました。 このように、Bitcoinに関するほとんどのセキュリティ問題は、ユーザビリティ、エンドユーザーおよび取引所セキュリティのレベルで発生します。

このセクションの残りの部分では、ネットワークレベルのセキュリティ問題に対処し、従来のネットワークよりもSkycoinブロックチェーンのセキュリティを強化するためにパートナーと協力して開発したいくつかの新しい技術について説明します。

私たちは、我々のシステムが合意を形成し、必要なセキュリティ特性を持ち、通常のネットワーク条件下でも良好に動作することを数学的に証明しました。 これまでコインやソフトウェアには見られなかったエキサイティングな新しいデータ構造があります。 現時点では、導入のためにシステムの試作を行っています。 Skycoinの開発プロセスは反復的です。 詳細を確認し、既知の欠陥に対処し、システムをテストし、フィードバックを得ることを繰り返しながら、変更、改良、改善が行われます。

透明性とセキュリティ:Obeliskと公開ブロードキャストチャンネル

Bitcoinシステムに関連するコミットメント問題に対処するために、Skycoinの基礎となるテクノロジーは、公開ブロードキャストチャンネルの形式でブロックチェーンを実装しています。 誰もがチェーンを読むことができますが、所有者だけがチェーンを作ることができます。 個人のチェーンが有効であるためには、各ブロックは所有者の秘密鍵によって署名されなければなりません。 この合意アルゴリズムシステム(Obelisk)の各ノードは、各個人のブロックチェーンを持ち、これはObeliskシステムのコアとなる要素です。

公開ブロードキャストチャンネルには、次のような制約があります。

* 一度ブロックが発行されると、取り消しできません

ブロックはすべての参加者にp2pで複製されます。 一度ブロックが公開されると、ブロックはすべての参加者に広がります。 インターネットからブロックを消去するには、ブロックを受け取ったすべての端末を破壊する必要があります。

* ノードは、以前のブロックの別のバージョンを気づかれずに公開することはできません

ブロックには番号が付けられ、同じシーケンス番号を持つ2つの異なるブロックにノードが署名した場合、それは検出されます。

* ノードは、ブロックの発行を遅らせることなく、ブロック記録のタイムスタンプを巻き戻すことはできません

タイムスタンプはブロックシーケンスカウントとともに単調に増加するのみです。

* チェーンの途中にあるブロックは、それ以降のブロックをすべて無効にすることなく変更することはできません

ハッシュチェーンでは、各ブロックのヘッダーには前のブロックのハッシュが含まれます。

Obelisk

各Obeliskノード(Skycoinコンセンサスノード)には、公開鍵(身元証明)と個人用ブロックチェーン(公開ブロードキャストチャンネル)があります。 合意の決定と通信は、各Obeliskノードの個人的なブロックチェーン内で行われます。 これは、ノードが行うすべてのことの公開記録です。 これにより、コミュニティは不正行為や不正な結託をしていないかノードを監査することができます。 これは、ネットワーク攻撃に参加しているノードを特定する方法をコミュニティに提供し、ネットワークの決定がどのように行われているか、どのノードがそれらの決定に影響を与えているかを公開します。

各ノードは、配信元となる他のノードのリストを持っています。 より多くの配信先を持つノードは、より信頼され、ネットワークへの影響力がより強くなります。 共同体がそれを代表するノードを信頼しない場合や、ネットワーク内の権力が集中しすぎている(または十分に集中していない)と感じる場合、コミュニティはネットワーク内の信頼関係をまとめて変更することにより、権力をバランスさせることができます。

ノード間の配信関係は、無作為でもよいし、信用の輪を通じて形成(あなたが知っている人のノードやあなたが信頼するコミュニティの人を配信元とする)されてもよいです。

ノードが登録されているチェーンから新しいブロックを受け取ると、ノードは発行するブロックのハッシュ値を公開します。 これは、公開されたブロック受信承認です。 各ブロックはタイムスタンプを付けられ、他のチェーンのブロックから参照されます。 これは、密接に連動したブロック承認のチェーンを生成します。 これらのチェーンは因果関係を確立し、次のセクションで説明するように分散型タイムスタンプ付けシステムとして機能することができます。 これにより、ネットワークは、データが存在しなかったこと、またはネットワークに公開されなかったことを証明したり、特定の時間間隔中に特定のノードがアクティブまたはオフラインであったことを立証したりすることができます。

現在のObeliskの合意形成アルゴリズムは、Ben-Orのランダム合意形成アルゴリズムに基づいています。

ランダムグラフ(最悪の場合)でのSybil攻撃は、Sybilノードが合意形成を制御することを可能にしますが、ノードはトランザクションを元に戻すことができず、ネットワークを攻撃する唯一の経済的動機を取り除きます。 実世界のグラフでは、ネットワークのSybil耐抗性は実際には非常に高く、ノードを実行すると帯域幅が適度に高コストになり、大規模なボットネットが禁止されます。

信頼関係は強くなく、取り消すことができます。 攻撃が行われた場合、ネットワークは信頼性の低いノードへの接続を切断し、より小さな高信頼性ノードのコアに接続することによって抵抗します。 各ノードの個人ブロックチェーンによって残された公開記録により、攻撃に参加しているノードを簡単に識別できます。 攻撃ノードが識別されると、個人はそれらのノードとの関係を切断し、その影響を低減します。 したがって、Skycoinネットワークの主な利点は次のとおりです。

  • Skycoinの合意形成は民主的であり、ノードはコミュニティによって運営されている
  • Skycoinノードの合意形成は公開されている
  • すべてのノードがコミュニティおよび第三者の監査に責任を負う
  • Skycoinの合意形成システムに影響を与えることは、民主的かつ透明である(ただし不平等)

シンプル2択合意アルゴリズム: 2つのブロックからの選択

それぞれが行う意思決定の投票候補は、ハッシュペア(A、B)です。 Aはブロックの親のハッシュ、Bはブロックのハッシュです。 各ノードは、これが次の合意ブロックでなければならないと考えるブロックに投票します。 配信元ノードの40%が同じ候補を支持する場合、ノードは自分が支持するブロックをそのブロックに変更します。 合意に達するまで、ノードは候補間でどちらを支持するかをランダムに変更します。

ブランチ選択肢が複数ある場合の合意形成

より高度なシステムでは、(A、B、P)が発行されます。 ここで、Pは0から1の値です。 ブロックのすべての後継者のPの値は合計で1になります。 これにより、複数のチェーンブランチで同時に合意を形成できます。

ネットワーク内のノードの大半が正直であれば、同じ合意結果に収束します。

またSkycoinには、限定されたプルーフ・オブ・ステークの仕組みがあります。 我々は、より大きな取引手数料を伴うブロックを優先して投票します。

特定の親に対して合意可能な選択肢が2つしかしかなく、両方のブロックがあなたのトランザクションを実行する場合、2つのブロックのどちらがネットワークによって選択されたかに関係なく、トランザクションは効果的に実行されます。 初期の合意決定がくつがえされる確率は、ブロックの深さとともに指数関数的に減少します。