対象サイトはこちら
segwitのメリット
segwitは高度に技術的なものも含めて多くの広範囲に及ぶ特徴を含んでいる。このページではそれらの特徴が持つメリットのうちのいくつかを要約する。The Segregated Witness soft-fork (segwit) includes a wide range of features, many of which are highly technical. This page summarises some of the benefits of those features.
Malleability(展性)修正
Bitcoin transactions are identified by a 64-digit hexadecimal hash called a transaction identifier (txid) which is based on both the coins being spent and on who will be able to spend the results of the transaction.ビットコイントランザクションはコインが使われたことや誰がそのコインを使うことができるのかといった情報に基づく64bitの16進数ハッシュからなるトランザクション識別子(txid)と呼ばれている。
Unfortunately, the way the txid is calculated allows anyone to make small modifications to the transaction that will not change its meaning, but will change the txid. This is called third-party malleability. BIP 62 (“dealing with malleability”) attempted to address these issues in a piecemeal manner, but was too complicated to implement as consensus checks and has been withdrawn.残念なことにtxidが計算される方法はトランザクション自体が持つ意味は変えずにtxidを変えるということを誰かにできるようにさせてしまう。これをサードパーティMalleabilityという。BIP62ではこれらの問題に断片的に働きかけようとしていたがこれはコンセンサスチェックのように実装するのがとても複雑だったので撤回されてしまった。
For example, you could submit a transaction with txid ef74…c309 to the network, but instead find that a third-party, such as a node on the network relaying your transaction, or the miner who includes your transaction in a block, modifies the transaction slightly, resulting in your transaction still spending the same coins and paying the same addresses, but being confirmed under the completely different txid 683f…8bfa instead.例えばあなたが"ef74...c309"というtxidを持ったトランザクションをネットワークに伝搬できたとしてもあなたのトランザクションに依存するネットワーク上のノードやあなたのトランザクションをブロックに含んでいるようなマイナーといった第三者がトランザクションをわずかに、あなたのトランザクションが未だに同じコインを同じアドレスに向けて消費してるように、変更するが完全に異なるtxid"683f...8bfa" の元で確認されることとなる。
私見)トランザクションに依存するネットワーク上のノーどとはSPVクライアントのことか?
More generally, if one or more of the signers of the transaction revise their signatures then the transaction remains valid and pays the same amounts to the same addresses, but the txid changes completely because it incorporates the signatures. The general case of changes to signature data (but not the outputs or choice of inputs) modifying the transaction is called scriptSig malleability.より一般的にいうと、もしトランザクションの署名者の一人もしくは複数が彼らの署名を修正するとトランザクションは有効で同量を同じアドレスに支払うことができるがこの行為は署名を組み込んでしまうためtxidは完全に変更されてしまう 。この一般的な署名データがトランザクションを修正することに対する変更事例(アウトプットやインプットを選ぶことではない)はscriptSig malleabilityと呼ばれている。
私見)txidは署名を含めたトランザクション全体のハッシュ値であるということ
segwitはビットコインユーザーによるサードパーティもしくはscriptSigのmalleabilityを対してトランザクションにおける展性的な部分をトランザクションwitnessに移動させることで妨げることができるしwitnessの分離によってtxidの計算とwitnessを無関係にさせる変更である。Segwit prevents third-party and scriptSig malleability by allowing Bitcoin users to move the malleable parts of the transaction into the transaction witness, and segregating that witness so that changes to the witness does not affect calculation of the txid.
私見)訳がヘンテコであるが、witnessをtxidの計算に含めないことによってtxidの変更による混乱を避けることができるということだろう。
誰の利益になる?
使われたビットコインを追跡するウォレット作成者:単にtxidで探されるあなたの伝搬されようとしているトランザクションの状態を観察することが容易になる。しかしサードパーティmalleabilityの存在するシステムだとウォレットは変更されたtxidを扱うための余分なコードを実装しなければならない。
- Wallet authors tracking spent bitcoins: it’s easiest to monitor the status of your own outgoing transactions by simply looking them up by txid. But in a system with third-party malleability, wallets must implement extra code to be able to deal with changed txids.
未確認のトランザクションを使用しようとしている誰か:もしアリスがトランザクション1でボブに支払う場合、ボブはそれをトランザクション2のチャーリーに対する支払いで使う、そしてその時アリスの支払いは展延され異なるtxidで確認される、その時トランザクション2は無効になってチャーリーは支払いを受けられなくなった。もしボブが信頼できるなら、彼はチャーリーに対する支払いを再発行するだろうがもし彼がそうでなければ彼はそれらのビットコインを彼自身で保持することができてしまう。
- Anyone spending unconfirmed transactions: if Alice pays Bob in transaction 1, Bob uses that payment to pay Charlie in transaction 2, and then Alice’s payment gets malleated and confirmed with a different txid, then transaction 2 is now invalid and Charlie has not been paid. If Bob is trustworthy, he will reissue the payment to Charlie; but if he isn’t, he can simply keep those bitcoins for himself.
ライトニングネットワーク:サードパーティmalleabilityとscriptSig malleabilityが修正されるとライトニングネットワークは実装するのに複雑でなくなるしブロックチェーン上のスペース利用において明らかに効率的になる。scriptSig malleabilityが除去されると、フルビットコインノードになることが必要とされている高速クライアントの代わりにブロックチェーンの監視をアウトソースする軽量かつ高速なクライアントを実行できるようになる。
- The Lightning Network: with third-party and scriptSig malleability fixed, the Lightning Network is less complicated to implement and significantly more efficient in its use of space on the blockchain. With scriptSig malleability removed, it also becomes possible to run lightweight Lightning clients that outsource monitoring the blockchain, instead of each Lightning client needing to also be a full Bitcoin node.
ブロックチェーンを使ういずれの人も:マイクロペイメントチャネルのような今日のスマートコントラクトや高度化された新たなスマートコントラクトをデザインし理解し観察することが今より複雑でなくなる。
- Anyone using the block chain: smart contracts today, such as micropayment channels, and anticipated new smart contracts, become less complicated to design, understand, and monitor.
- Note: segwit transactions only avoid malleability if all their inputs are segwit spends (either directly, or via a backwards compatible segwit P2SH address).
注記:segwitトランザクションは全ての入力がsegwitによるものである場合のみmalleabilityを回避できる。(直接、または介護完成のあるsegwit P2SHアドレス経由)
0 件のコメント:
コメントを投稿