Phore Blockchain は Segregated Witness -SegWit- をリリースしました

liray
8 min readJul 1, 2018

Phore はPoS/マスターノードプラットフォームの中でも非常に先進的な取り組みである、SegWit/アトミックスワップの導入を成功させました。

Phore Blockchain はSegWitの導入をソフトフォークとして最新のウォレットをリリースしました。このリリースはネットワークに対して多くの機能を追加し、セキュリティ・速度に対して多くの利点が存在します。以下で示すように、将来的に複数の機能のための布石となります。ウォレットのアップグレードは、Phore のウェブサイト( https://phore.io/#wallet )からダウンロード可能です。

ウォレットの50%以上がSegWit対応のウォレットにアップデートされれば、SegWitはネットワークで有効にされます。これはネットワークのスムーズなアップデートに必要なことです。今回のウォレットのアップデートは必須アップデートではありませんが、7/7 ~ 7/8 前後に必須アップデートとして、追加のバグの修正・改善を含むウォレットをリリースする予定です。

SegWit対応ウォレットは、現在公式サイト(https://phore.io/#wallet)よりダウンロードできます。今回のウォレットのリリースでアップデートされる方も、次の7/7付近でのウォレットのリリース後、もう一度アップデートする必要があることを覚えておいてください。

全Phoreユーザーのウォレットのアップデートは、2018/08/01までを期限として行われます。

(つまり、その時点でハードフォークが行われます)

以下にSegWitアップデートの詳細について記載します

SegWit対応ウォレットへのアップデートの方法:

最初にウォレットデータのバックアップをとりましょう。メニュー ”ファイル” > “ウォレットのバックアップ”より、保存してください。また、不測の事態のために、外部のデータストレージなどにも保存されることをお勧めします。

このウォレットのバージョンは Phore Core v1.3.0 です。もし古いウォレットを立ち上げている場合は、そのウォレットを閉じてください。完全に停止した後(停止直後は“ウォレットを停止中です…”のようなウィンドウが出るはず)、公式サイトよりダウンロードしたインストーラーを利用する(Windows)かPhore-Qtを直接 /Applications/ へ保存する(Mac)か、phored, phore-qtを直接保存してください(Linux)。

必須アップデート時には更に詳細な情報について記載予定ですが、SPVウォレット(ブロック同期があまり必要ではない、支払い用途において非常に便利なウォレット)のリリースも検討されています。

SegWitは次のような利点をもたらします:

トランザクション展性への対応:

トランザクション展性は、ネットワークで確認がされる前に、トランザクションのIDを変更できるようにする攻撃です。SegWitにおいては、トランザクションデータから署名を削除することでこれを修正し、署名データを改ざんすることを不可能にしています。SegWitにおいては、トランザクションのIDは改ざんできないデータから計算されるものになります。

誰に利点がある?

・自分の使用したコインを追跡したい人: 自分の支払いトランザクションをIDを用いて追跡することが簡単になる

・未確認のトランザクションを使用したい人

・開発者にとって、Lightning Networkの実装を単純化でき、軽量なLightningクライアントを作成できる

・ブロックチェーンの実装・理解・監視が簡単になるので、全ての人に。

Sighashの操作における線形スケーリング

SegWitはブロックサイズを2倍にし、より高速なトランザクションを可能にします。単純にトランザクションの数が2倍になると、署名操作・検証する署名ごとに必要になるハッシュするデータ量の両方が倍増する可能性があります。SegWitがなければ、トランザクションデータは二次関数の形で増大していくことになります。SegWitがあることで、あくまで線形(一次関数)の形で増大することができるように出来ます(トランザクションが一つのブロックに多く入る)。このスケールでは、ブロックの検証に25秒が必要で、悪意のあるトランザクションは3分以上かかることがあります。

誰に利点がある?

・大規模なグループ間での支払い: トランザクション数を制限せずにブロックサイズを増やすことで、引き続き大規模な支払いをサポートできる。

ハードウェアウォレットでのインプットの署名

ハードウェアウォレットがトランザクションに署名すると、利用された正確な金額を確認することが出来ます。しかし手数料の決定は、実際に全入力データのコピーを持つことで決定することが出来ます。このことはネットワークにおいて各入力トランザクションがハッシュされており、それぞれが偽のデータではないことを保証することを要請しています。SegWitでは、入力の値を明示的にハッシュし、これを可能にします。つまり、ハードウェアウォレットにただトランザクションID, インデックス, 値(+public key)のみを与えるだけで良いということです。これにより大サイズで複雑な取引でも、安全に署名が行えます。

誰に利点がある?

・ハードウェアウォレットの製造者・利用者

・小型の組み込み機器のようなIoT機器での利用

スクリプトのバージョン管理

スクリプト機能の変更により、セキュリティの強化・機能性の向上が簡単になりました。SegWitを利用しないスクリプトにおいては、下位互換性がある(ソフトフォークな)変更のみが実装できます。SegWitにおいては、スクリプトにバージョン情報が含まれているので、ハードフォークが必要なオペコードの追加においては、スクリプトのバージョンを増やすだけでサポートすることが出来ます。つまり、機能追加のためのハードフォークが不要になります(オペコードについては)。

誰に利点がある?

・開発者は、追加のスクリプトの作成をコード化して、実装することが容易になります。

・異なるブロックチェーンの間のサイドチェーンとしての相互互換性をサポートし、暗号通貨をより柔軟性・機能性を高くできるので、暗号通貨を所有する全ての人にとって。

・スマートコントラクトの一種を導入することで、ネットワークの全ての人へ。

未使用なトランザクション出力(UTXO)の増加を減らす

UTXOは、新しいトランザクションが有効か、そうでないかを判断するために各ノードに保持されているデータベースである。データベースにおいては紹介・更新が高速である必要があるので、出来るかぎりそのサイズは小さいものでなければなりません。ネットワーク上のユーザーが多くなればなるほど、維持されるUTXOの数が増え、このデータベースのサイズが増えます。

SegWitにおいては、UTXOによる増加するデータ量を75%少なくできます。これにより、開発者は増加による影響を最小限にとどめスマートコントラクト・新機能の設計が出来ます。

誰に利点がある?

・フルノードを実行する企業・ユーザーはより多くのユーザーがシステムに参入しても、ネットワークの現在のセキュリティを維持することが出来ます

・ユーザー、開発者にとって、このアップデートをしていない人に比べ送金手数料が安いというメリットがあります

署名検証を行わないことによる効率化

ブロックチェーンにおいては、署名データはトランザクションにおいて不可欠な部分で、トランザクションハッシュの計算のために必要なデータです。SegWitにより、署名データを分離できるので、このデータに興味のないノードはこれをディスクから削除出来たり、ダウンロードしないという選択肢が得られます。

誰に利点がある?

・プルーンノードの保持者は、よりダウンロード帯域を少なく、ディスク領域を少なく動作させることが出来ます。

https://phore.io

参考: Bitcoincore.org, Segregated Witness Benefits,https://bitcoincore.org/en/2016/01/26/segwit-benefits/ , Accessed June 17, 2018

--

--

liray

こんにちは。 Phoreの日本コミュニティマネージャーのliray と申します。Phoreについてのご意見・ご質問等はいつでも liray@phore.io かDiscordまでよろしくお願いいたします。