tBTCホワイトペーパー。システムアーキテクチャ:堅牢なマルチウォレットマルチ署名者プロトコルの設計

Aizhan Z
30 min readDec 20, 2020

--

tBTC:分散型の償還可能なBTCで裏付けられたERC-20トークン

このドキュメントの残りの部分では、これらの欠陥に対処するプロトコルを指定し、イーサリアムで堅牢なBTCに裏打ちされたベアラーアセットを提供することに専念します。

高レベルでは、それは記述されたプロトコルがしなければならないことを意味します

-マルチウォレットアーキテクチャを使用する
-地理的に分散した署名者が多数いる
-単一障害点を削除します

このプロトコルは、これらの要件の二次的影響と、マルチ署名者の支払い、より複雑なボンディングシステム、担保が不足している署名者を検出して処理するためのアプローチ、ビットコイン証明システムなど、単一署名者の例でスキップした詳細にも対抗する必要があります。両方のチェーンでの障害の堅牢な処理。

このプロトコルに必要ないくつかのコンポーネントは、このドキュメントの外部で説明されており、想定されます。特に、

-署名者を選択するための十分に分散された作業トークン
-署名者選択のためのランダムビーコン
-secp256k1曲線上の効率的な分散キー生成プロトコル
-secp256k1曲線上の効率的なマルチパーティしきい値ECDSAプロトコル

これらはすべて、Keepネットワークによって実装されています。これらの重要性については、次のセクションで説明します。

アーキテクチャは次のように分類されます。

-預金と署名者の選択
-ボンディングと価格フィード
-ミンティング
-署名者料金
-署名
-ウォレットの障害
-償還
-ガバナンス

預金

概要

tBTCシステムは、ビットコインに裏打ちされた1対1の非ビットコイン*ホストチェーン*(tBTC v1では最初のホストチェーンはイーサリアム)上にトークンTBTCを作成するためのメカニズムを提供します。 TBTCの作成に関心のある当事者は、システムがビットコインウォレットアドレスを提供することを要求します。システムは一連の*署名者*を選択します。これらの署名者は、秘密/公開キーペアを生成してシステムに提供する役割を果たします。次に、利害関係者はビットコインをウォレットに送信することで*デポジット*になります(必要なビットコインの量については、ロットのセクションで別途説明します)。預金は、良好な行動を保証するために署名者がETHボンドを提示する必要があるため、預金を無料で維持することはできません(預金の経済性に関するセクションを参照)。これらの費用をカバーするために、預金は、預金期間のセクションで別途説明されている、預金所有者の預金償還独占権のセット*期間*をカバーする料金に署名することによって支払われます。

これらの各ステップは、以下の図に示され、後続のセクションで説明されています。

デポジットリクエスト

TBTCを取得するための開始点は、*デポジットリクエスト*を生成することです。 このリクエストは、tBTCのホストチェーン上のスマートコントラクトへのトランザクションであり、送信者が*デポジット*によって仲介される署名グループに裏打ちされたウォレットを必要としていることを通知します。 署名グループには固有の作成コストがあるため、デポジットリクエストでは、署名グループの作成をカバーするために、ホストチェーンのネイティブトークンで少額の支払いが請求されます。 署名グループがタイムアウト後に公開鍵の生成と公開に失敗した場合、この支払いは返金されます。

署名者の選択

入金リクエストを受信すると、ビットコインウォレットをバックアップするための*署名者*のセットをランダムに選択することで署名グループが作成されます。 これは、次の図で説明されているマルチパートプロセスです。

署名グループを作成する要求が来ると、tBTCシステムは安全な分散型ランダムビーコンからランダムシードを要求します。結果のランダムシードは、適格な署名者のプールから署名グループメンバーをランダムに選択するために使用されます。最後に、これらの署名者は、グループの公開ECDSAキーを生成する分散キー生成プロトコルを調整します。これは、ウォレットアドレスを生成するために使用され、ホストチェーンに公開されます。これで署名者の選択フェーズが完了します。

署名者のボンディング

署名グループの選択されたメンバーが分散キー生成を実行する前に、ホストチェーンのネイティブトークンに結合(*署名者結合*)を設定する必要があります。この結合は、いくつかの場合に使用されます。

-預金が担保不足の危険にさらされている場合に備えて、預金を清算すること。
-配布されたキーの生成が完了した後、許可されていないデータに署名した場合に署名グループを罰すること。
-要求されたときにシステムの署名を生成できなかった署名グループを罰するため。
-署名グループが結成されなかった場合に預金者が確実に返金されるようにするため。

最後の場合を除いて、押収された債券は、預金所有者に預金額を補償するためにTBTCに競売にかけられます。

署名者は、署名グループに選ばれるために、預金を裏付けるのに十分な保証金を持っている必要があり、保証金は、署名者を選択するのと同じトランザクションで預金によって取得される必要があります。

ボンディングについては、独自のセクションで詳しく説明しています。

分散キーの生成

署名グループが受ける分散キーの生成に関するいくつかの小さなメモ。分散キー生成プロトコルは、次の3つのプロパティをもたらす必要があります。

1.署名グループ全体で* ECDSA公開鍵*が必要です。これはホストチェーンで共有され、その署名グループが所有するビットコインウォレットに対応します。
2.署名グループの各メンバーは、*しきい値ECDSA秘密鍵共有*を持っている必要があります。これを使用して、署名グループのウォレットに関連するすべてのトランザクションの*しきい値ECDSA署名共有*を作成できます。
3.署名グループの各メンバーは、自分自身とグループの他のメンバーからの署名共有のしきい値数を組み合わせて、署名グループに代わって実行される特定のトランザクションの署名付きバージョンを生成できる必要があります。

デポジットをする

tBTCシステムが特定のデポジットリクエストに使用できるウォレットアドレスを取得すると、*デポジッター*はビットコイントランザクションをブロードキャストして、自分が管理するウォレットから署名グループのウォレットアドレスにBTCを送信できます。取引がビットコインチェーンによって十分に確認されたら、預金者はホストチェーンに取引を発行して、*預金*が資金提供されたことを証明する必要があります。

ビットコインチェーンとホストチェーンの間の唯一のリンクはtBTCシステムであり、ホストチェーン上で一連のスマートコントラクトとして実行されます。そのため、tBTCシステムが預金者にBTCを署名者ウォレットに正常に預金したかのように動作させる前に、預金者によって発行されたビットコイントランザクションをtBTCシステムに証明する必要があります。署名グループが特定のタイムアウトウィンドウ内に公開鍵を提供しなかった場合(*署名グループ形成タイムアウト*)、*預金者*は、預金の返済を受け取るために、これが発生したことを預金に通知できます。署名者は、署名グループの選択プロセスの一部として提出します。所定のタイムアウトウィンドウ(*預金資金のタイムアウト*)内に預金証明が受信されない場合、署名グループは、これが発生したことを預金に通知して、グループを解散し、メンバーの債券を返却できます。

ライトリレー

預金を証明するために、預金者は、トランザクションが有効なビットコインブロックに含まれており、その後に十分な作業が蓄積されていることを証明するものを提出します。証明は、ホストチェーン上の単純な支払い検証(SPV)スマートコントラクトによって検証されます。クロスチェーンSPVシステムとそのセキュリティプロパティのより完全な概要は、SPV付録に含まれています。

ライトリレーは、tBTC用に開発されたオンチェーンSPVの新しいバリアントです。彼らは、コンパクトで効率的なステートレスSPVプルーフを利用すると同時に、各ステートレスプルーフに追加の最新性保証を提供するのに十分な情報を中継しようとしています。これは、ビットコインのプロトコルの難易度調整機能を利用することで実現します。ビットコインは、2016ブロックごとに、その期間の最初と最後のブロックのタイムスタンプに基づいて難易度を調整します(Satoshiクライアントでのオフバイワンエラーのため、1つのブロック間期間が難易度の計算から除外されます)。変更は決定論的であり、ある程度の許容範囲内で、最後のブロックのマイナーによって設定される場合があります。

ライトリレーは、すべてのブロックヘッダーを格納するわけではありません。代わりに、難易度調整イベントの周りのヘッダーのスライスのみを保存し、現在の2016ブロックエポックの難易度を記録します。このスライスは、その客観的なプルーフオブワークによって検証され、最初のヘッダーの難易度が現在のエポックの難易度と一致し、変更がスライス内の予想されるインデックスで発生し、新しい難易度がビットコインの調整アルゴリズムに準拠していることを確認します。言い換えれば、私たちのライトリレーはビットコインの現在の難易度のみを追跡し、その状態に関する他の情報は追跡しません。

現在の難しさを知ることは、基本的なステートレスSPV証明に、追加の、より強力な最新性の保証を与えます。新しく生成されたステートレスSPVは、ヘッダーチェーンにその難易度を含める必要があり、その難易度は事前にどの当事者にも知られていません。ハッシュレートの「n」分数(通常、51%の仮定のため、「n> = 2」)を持つマイナーは、難易度を設定できる「1 / n」の可能性があるため、「1」 / n` 2週間前に正常に予測できる可能性(偽の証明を生成し、それらが有効であるように見えるように難易度を設定することにより)。一般的に、これは、難易度の調整期間(「2t」週間)を事前に正常に予測できる「1 / nt」のチャンスです。したがって、ライトリレーを使用すると、追加の検証ステップとして使用すると、ステートレスSPVプルーフに強力なセキュリティプロパティが提供されます。これは、大量のマイニングリソースを持つエンティティでさえ、偽のプルーフを作成する可能性が大幅に低下するためです。

たくさん

デポジットを作成するときは、デポジットの*ロットサイズ*を指定する必要があります。 tBTCシステムは、利用可能なロットサイズの管理可能なセットをサポートし(詳細については、ガバナンスのセクションを参照)、少なくとも1つのBTCロットサイズが利用可能であることのみを保証します。 v1は、0.002 BTC、0.01 BTC、0.1 BTC、0.2 BTC、0.5 BTC、および1BTCの6つの利用可能なロットサイズで起動します。デポジットリクエスターは、これらのロットサイズのいずれかでのみデポジットを作成でき、ロットサイズでは、対応する量のTBTCのみを作成できます。預金者がシステムがサポートする最大ロットサイズを超えて預金したい場合は、複数の預金要求を作成し、複数の預金に資金を提供する必要があります。

簡単にするために、この仕様の残りの部分は、1BTCの預金が開かれていることを前提に書かれています。ただし、ロットサイズに依存するもの(署名料など)は、ロットサイズに比例する値として定義されます。

最大上限のある限られたロットサイズにより、各預金を異なる署名グループで裏付けることができ、署名グループの結合を簡素化し、悪意のあるかどうかにかかわらず、署名グループの障害に対するシステムの回復力を向上させます。

預金をする間違い

システムは、システムパラメータとして指定されたすべての預金に対していくつかの事前定義されたロットサイズで機能するように設計されています。 **預金者は、資金調達トランザクションで正確なロット金額のBTCを送信するか、資金の損失を予想する必要があります。**システムがユーザーに特定の金額を送信するように強制することはできないため、理想的には、システムは過払いを適切に処理し、支払い不足。過払いと過少支払いの主な影響は、特定の預金の担保比率にあります。システムは、過払いと過少支払いを預金者の行動の誤りとして扱い、関連する費用を預金者に転嫁します。

過払い

特定の預金の過払いを許可すると、署名者の保証が不十分になります。過剰資金が発生すると、システムは資金証明を受け入れますが、通常のロットサイズに従ってTBTCを作成します。

効率的な市場では、このように資金が過剰になっている預金は、不足している価値を取り戻すために、預金者がすぐに償還する必要があります。代わりに、預金者がTBTCをミントしてロックを解除することを選択した場合(ミントのセクションを参照)、償還者は超過資金を裁定取引として受け取ることを期待するため、預金は別のアクターによって直ちに償還される必要があります。

>ロットサイズが1BTCの預金に対して1.6BTCの資金調達証明を提供するユーザーは、1.0TBTCしかミントしません。 1.0 TBTCを燃やすユーザーは、1.6 BTCのデポジットを請求し、含まれているUTXOを利用して、約0.6BTCの利益を得ることができます。

過少支払い

対照的に、特定の預金の過少支払いを許可すると、署名者が過剰に結合されます。これを防ぐために、システムは特定の預金のロットサイズ未満の資金証明を受け入れません。これは、資金調達トランザクションで預金ロットサイズ未満を送信したユーザーは、*どの* TBTCも受け取らず、資金調達トランザクションでロックされたBTCを署名グループに没収することを意味します。署名グループは、*預金資金のタイムアウト*の後、預金に資金が提供されていないことを通知し、資金を取り戻すことができます。その後、署名グループは、預金が解決された後、トランザクションで資金のロックを解除して均等に分割できます。鎖。

複数のUTXO

欠陥のある預金者は、人的またはソフトウェアのエラーが原因であるかどうかにかかわらず、署名者グループのアドレスに複数のUTXOを送信する場合もあります。残念ながら、各UTXOはSPVを介して証明され、その署名が明示的に承認される必要があるため、資金を預金者に返還すると、チェーン上でかなりの複雑さとガス料金が課せられます。さらに、UTXOの合計値が不明であるにもかかわらず、署名者に各トランザクションへの署名を経済的に強制するメカニズムを開発する必要があります。そのため、システムは、デポジットロットサイズより大きい最初のUTXOのみを受け入れます。署名グループに送信された他のすべてのBTCは没収されます。したがって、預金者は適切な値のUTXOを1つだけ送信することが不可欠です。

>特に有害な例として、ナイーブな人間の預金者を考えてみましょう。あるトランザクションでロットサイズの半分を誤って送信し、別のトランザクションで半分を送信した場合、両方のUTXOは没収されます。これは、資金の大幅な損失が発生する可能性があるため、ユーザーインターフェイスで慎重に対処する必要がある預金者にとって深刻な落とし穴を表しています。

資金提供者の中止を要求する

システムには、資金不足またはマルチUTXOシナリオ用の小さなエスケープハッチが含まれています。預金が資金調達でタイムアウトしたとマークされた後、預金者は*資金の中止*をリクエストできます。このリクエストには、資金不足のUTXOを預金者に送り返すためのビットコインアドレスが含まれています。このエスケープハッチは完全に署名者の誠実さに依存しており、システムは預金者にビットコインを取り戻すという経済的保証を提供することはできません。

預金経済学

署名者は利他主義者ではありません。彼らが提供するサービスに対して報酬が支払われます。

署名者の料金は、常に前払いまたはエスクローする必要があります。これを実現するには、署名者の料金をミンティングで保証する必要があり、預金の有効期間は予測可能である必要があります。

署名者料金の詳細な取り扱いについては、独自のセクションをご覧ください。

条項

定期預金とは、預金ごとに署名者手数料を簡単に計算できることを意味します。 6か月という標準的な期間は、預金者が手数料の予算を立てることができ、署名者は自分の債券にアクセスできなくなる期間を知ることができることを意味します。期限内の償還を奨励するために、システムは、預金は期間中に預金の所有者のみが償還できるように構成されていますが、期限に達すると誰でも預金を償還できます。さらに、期限付きの償還は、手数料が自動販売機によってエスクローされていない限り、預金所有者からの署名手数料を請求します。

将来的に預金にアクセスする必要がない預金者は、システムのコストを最終的な償還者に転嫁したり、BTCのロットサイズや代替可能性を超える額面を希望したりする可能性があります。これらの預金者は、別のユーザーによる預金の(期限前の)償還時に手数料リベートを支払う、代替不可能な手数料リベートトークンを受け取ることを選択できます。リベートメカニズムについては、ミンティングに関するディスカッションで詳しく説明しています。

預金期間の終了時に、預金は署名者自身を含む誰でも償還することができ、署名者料金は預金所有者が支払う必要があります。このメカニズムについては、償還のセクションで詳しく説明しています。

ボンディング

署名者は共謀して引き出しを検閲したり、資金を放棄したりできるため、各裏付け署名者からの預金ごとに保証金が必要です。

署名者の選択に使用される賭けられた作業トークンとは異なり、署名者の債券は時価総額の大きい流動資産である必要があります。この制限により、相場操縦によって担保の価格が上下する可能性がある市場ベースの攻撃のコストが増加します。

結合された署名者は、共謀した署名者が操作を妨害した場合に預金者に頼ることができます。タイムアウト(*償還署名タイムアウト*)内に要求された償還署名を提供しない署名グループは、その結合を失います。同様に、許可されていない資料に確実に署名する署名グループは、彼らの絆を失い、さらに彼らの作業トークンの利害関係を危険にさらします。

許容可能な担保

TBTCと基礎となる作業トークンの2つのトークンは、債券担保に署名するための明白な選択肢として提示されます。ネットワークのブートストラップフェーズでは、流動性が低いため、どちらも適切な候補ではありません。

相場操縦を避けるために、署名者の債券は広く取引されている資産で建てられる必要があるため、次に最も明白な債券の選択は、ホストチェーンのネイティブトークンです。 tBTC v1の場合、これはETHを意味します。エコシステムが成熟するにつれて、より複雑な実装を犠牲にして、他の債券担保オプションが実現可能になる可能性があります。

セキュリティの測定

明らかに、セキュリティ上の懸念から、預金のロットサイズに比例する債券に署名する必要があります。共謀する署名者からの負の期待値を維持するために、不正な署名者によって没収される金額は、彼らが獲得しなければならない金額よりも厳密に大きくなければなりません。ロットサイズが1BTC、BTCと担保資産間の一定の為替レート、および預金を裏付ける署名者のM-of-Nグループを想定すると、各署名者の最小担保は `(1 BTC)/ M`であり、担保されている資産(基本ケースではETH)。

3 of5の署名者グループが支援する1BTC預金について考えてみます。最悪の場合、署名者のうち3人が悪意を持って預金を盗もうとする可能性があり、これにより、各1 / 3BTCがネットになります。その結果、5人の署名者全員がETH建ての0.33BTCをそれぞれ結合する必要があります。

注意

tBTC v1の場合、署名プロトコルの帰属可能性の制限は、署名者グループが3対3であることを意味します。その結果、必要な署名者ごとの債券は、署名者ごとのロットサイズの50%、合計150%の債券になります(BTCに対するETHの値下げに関する次のセクションを参照してください)。後のバージョンでの帰属可能性により、署名グループのサイズとしきい値の両方を増やすことにより、結合を減らすことができます。

価格の通貨変動

上記は、BTCとETHの間の為替レートが一定であることを前提としていますが、実際には、2つの通貨は相互に変動し、場合によっては激しく変動します。

BTCと比較したETHの値下げ

ETHの価値がBTCに比べて急激に下がる場合、署名者によって結合されたETHのドル価値は、彼らが支援したBTC預金のドル価値よりも低くなる可能性があります。預金で。

それを回避するために、債券は過剰担保されている必要があります。 ETH署名者が担保を提供するたびに、追加の50%を提示する必要があり、合計で150%の担保率になります。

> **過剰担保なし:** 1BTCは$ 10000の価値があり、1ETHは$ 200の価値があります。署名者は、デポジットを裏付けるために50ETHを支払う必要があります。市場の状況により、ETHは25%下落して150ドルになりますが、BTCはその価値を維持します。 50 ETHは7500ドルの価値があります。つまり、署名者は預金を盗むことで2500ドルの利益を上げることができます。

> **過剰担保あり:** 1BTCは$ 10,000の価値があり、1ETHは$ 200の価値があります。署名者は、デポジットを裏付けるために75 ETH(50の150%)を支払う必要があります。市場の状況により、ETHは25%下落して150ドルになりますが、BTCはその価値を維持します。 75 ETHは11250ドルの価値があり、これはBTCのドル価値を上回っています。つまり、署名者は失うものが多いため、正直な行動を維持する必要があります

一般に、合計150%の過剰担保( `3/2 * 100%`)は、署名者のインセンティブをシステムの幸福に合わせて最大33%低下させます( `(1–2 / 3)* 100%`)預金の資産に対する担保付き資産の価格。この割合を増やすと、システムの堅牢性が向上する可能性がありますが、署名者の機会費用が犠牲になり、料金で補償する必要があります。

ETHの値がセキュリティのしきい値を超えると、未決済の預金は清算前に入り、その後清算されます。

ETHと比較したBTCの値下げ

署名者の手数料は、保管されているBTCごとに表示されるため(過剰担保が考慮されます)、担保付き資産に対するBTCの値の低下は、署名者の手数料の低下につながります。これはTBTC準備金に問題を引き起こさないことに注意してください、しかしそれは彼らの資産で料金を稼ぐ署名者にとってシステムをあまり魅力的にしません。

署名者は、そのような過度に担保された預金を見越して市場からTBTCを購入する必要があり、可能な場合はそれを使用してこれらのポジションを償還し、他の預金を裏付けるために使用できるETH流動性を取り戻す必要があります。別の方法は、署名者に債券のバランスを安全に150%に戻す機能を提供することです。ただし、これは実装の複雑さをもたらし、その結果、メカニズムの初期展開に適したソリューションではありません。

> 1BTCが$ 10,000の価値があり、1ETHが$ 200の価値があるとします。署名者は、1BTCのデポジットを裏付けるために75ETHを支払う必要があります。署名者は、15,000ドルの担保(10,000ドルの150%)に対して10,000ドルの保証金に対して5ベーシスポイントの署名者料金を支払うことが期待されており、その見返りとして、75ETHを別の用途に使用する可能性を放棄します。別の使用法では、ETHで表される5ベーシスポイントが返されると想定します。市場の状況により、ETHは25%上昇して250ドルになりますが、BTCはその価値を維持しています。署名者は引き続きTBTCで5ベーシスポイントを獲得しますが、ETHで獲得できたはずの5ベーシスポイントの価値が高まりました。預金のロックが解除され、署名者が過剰担保が続くことを合理的に期待している場合、署名者は1.0005 TBTCを支払い、1 BTCを回収し、すべての署名者によってロックされた75ETHのロックを解除することによって預金を償還する必要があります。大幅に担保が過剰になっているすべての署名者は、流動性のあるETHを持っており、これを使用して別の預金を裏付け、新しいTBTCを作成し、ETHの担保要件を低くしたり、さまざまな用途に使用したりできます。

弾力性のある価格フィード

一般的な合成安定コインスキームとは異なり、tBTCシステムの設計では、BTCと比較してTBTCの価値を安定させる努力はしていません。TBTCは市場によって価格設定されます。代わりに、目標は、TBTCの供給がその裏付けとなるBTCの準備金よりも厳密に少ないことを保証することです。

このため、システムが理解する必要がある唯一の価格関係は、署名債券担保とBTCの間です。

tBTC v1の場合、これはBTCに対するETHの価格を意味します。アセットの1つのペアの価格のみが必要なため、tBTCは最初は単純な価格フィードを使用します。

担保不足

清算前:表敬訪問

最初のしきい値である125%で、預金は清算前に入ります。これは「礼儀コール」とも呼ばれます。この状態では、デポジットがロックされている場合でも、誰でもデポジットを引き換えることができます(詳細については、引き換えとミントのセクションをご覧ください)。事前清算は、署名者が事前清算期間後に預金を閉じるか、強制清算に直面する必要があることを示します。預金が6時間以内に閉鎖されない場合、または預金担保が110%の担保を下回った場合、清算が続きます。これにより、各署名者は、深刻な担保不足になる前にポジションをクローズするインセンティブを得ることができます。あるいは、ETHBTC比率が回復し、預金が6時間の間に少なくとも125%担保されるようになった場合、預金は安全であり、清算前の状態から離れます。

システムの将来のバージョンでは、より複雑な事前清算メカニズムが導入される可能性があります。初期バージョンでは、進行中の担保不足に対して大きなペナルティを伴う単純なメカニズムを選択するのが賢明なようです。さらに、担保が不足している、または担保が大幅に多いポジションの償還を奨励することにより、署名者は長期間ETHが長くなることから保護されます。

清算

合理的な署名者は清算が必要になる前に預金を償還するため、強制的な清算はまれです。ただし、署名者の不正行為を防ぐためには、清算による極度の処罰の可能性が必要です。清算は、署名者が償還要求に応じて有効な署名を作成しなかったため、署名債の価値が清算のしきい値を下回ったため、表敬訪問に応答しなかったため、または署名者が不正を作成したために発生する可能性があります署名。

清算プロセスの主な目標は、預金の安全性を損なう誤った署名者の行動や外部のダイナミクスに直面して、預金の所有者全体を作ることです。第二の目標は、そのような行動が証明できる場合、誤った行動に対して最大限に署名者を罰することです。

システムが保有する最も価値のある資産は、署名者の債券です。したがって、清算プロセスは署名者の債券を差し押さえ、債券の価値を使用してTBTCを購入し、預金の所有者に補償しようとします。預金所有者が補償された後に残った署名者の債券は、不正行為の報告を担当するアカウント(詐欺の場合)または署名者と清算をトリガーしたアカウント(担保の問題の場合)に分配されます。

預金の所有者を補償するために、契約は押収された署名者の債券で下落価格のオークションを開始します。 TBTCの未払い額と引き換えに、署名者の債券の66.6667%を提供します。この金額は、預金が150%で適切に担保されていることを前提としています。これにより、適切に担保された預金が誤って高いETH値と見なされる可能性のある価格フィードの誤動作を防ぎます。誰かがそれを購入することを選択するか、オークションが債券の100%に達するまで、販売中の債券の量は時間とともに増加します。オークションは、購入者が見つかるまで開いたままになります。

このプロセス中に受信したTBTCは、預金所有者に送信されます。所有者が自動販売機である場合、自動販売機は供給ペグを維持するためにTBTCを燃やさなければなりません。清算後に債券の価値が残っている場合、次の2つのいずれかが発生します。

-**担保不足または中止**による清算の場合、残りの債券の価値は、清算をトリガーしたアカウントと署名者の間で50〜50に分割されます。
-**詐欺**による清算の場合、残りの債券の価値は、詐欺を証明することによって清算をトリガーしたアカウントに送られます。

清算の終わりに、無反応または不正な署名者が預け入れられたBTCを管理します。それらの署名者がtBTCシステムの外部でBTCを使用して行うことは、彼らが決定することです。分割されたり、署名者の過半数によって盗まれたり、永久に失われたりする可能性があります。

注意

清算された預金に対して手数料リベートトークン(FRT)がミントTBTCに配布された場合(ミンティングのセクションを参照)、FRT所有者は清算中に返金されません。 FRTと引き換えにエスクローされた料金は、代わりに署名者への補償に使用され、FRTは補償の対象ではなくなります。

1.署名者は、0.02 BTC / ETHで75ETHに裏打ちされた1BTCの預金を保護します(ETHで1.5 BTC、150%の担保比率)。
2.ETH価格は0.01333BTC / ETHに下がります。 75 ETHは現在、預金の100%のみを担保しています(1 BTC / 75 ETH)
3.清算がトリガーされ、75ETHが押収されてTBTCが買い戻されます。
4.デポジットは1TBTCを購入するために75ETHを使用する必要があります。割引を受けるために、ETHリザーブの66.6667%をオークションにかけます。
5.アービトラージャーは、オークションの90%で1 TBTCを消費し、67.5ETHを取得します。預金の清算はこれで終わりです。アービトラージャーは、オークション中に価格が回復したため、後でまたは別の資産でより高い価格に対してアービトラージするためにETHを使用する予定であるため、または取得した以前の有利なTBTC価格に対してアービトラージするためにこれを行う可能性があります必要なTBTC。
6.残りの7.5ETHの半分は署名者に配布され(詐欺を犯した場合、これは0になります)、残りはイーサリアムスマートコントラクトの清算プロセスを開始したアカウントに渡されます。この時点で、預金はクローズとしてマークされます。 FRT保有者は清算時に返金されないことに注意してください。
7.必要に応じて、Nの署名者は、1BTCデポジットをどのように分配するかを調整して合意します。

価格フィード

価格フィードはシステムの不可欠な部分であり、十分な担保がすべてのtBTC署名者を裏付けることを保証します。 tBTC v1の場合、フィードは、現在MakerDAOによって運用されているMakerDAOのETHBTCMedianizerで構築されます。

最小価格フィードの設計は、以下のインターフェースによって完全に指定されます。

interface PriceFeed {
function getPrice() external view returns (uint256);
function updatePrice(uint256 price) public;
}

これは主に、Etherで価格設定されたビットコインロット預金の価値を計算するために使用されます。 Medianizerモデルでは、価格は外部エンティティによって提供されるため、updatePriceメソッドは含まれていません。

価格エンコーディング

ビットコインには小数点以下8桁があり、最小単位はサトシです。つまり、100 000000サトシ= 1ビットコインです。対照的に、エーテルは小数点以下18桁で、最小単位はweiであり、1 000 000 000 000 000 000 wei = 1エーテルを意味します。

エーテルに対するビットコインの価格を表すには、サトシに対するウェイの数の比率を使用する必要があります。シンプルなデザインは、 `x` wei:1satoshiを使用することです。したがって、32.32 ETH:1 BTC(2019年6月)のときに `getPrice`を呼び出すと、値323 200 000 000weiが返されます。

ただし、1weiが1satを超える価値がある場合、価格を正確にエンコードすることはできなくなります。この「フリッピング」のシナリオでは、1つのイーサリアムが1ビットコインの10,000,000,000倍の価値になると、非常に短期的には起こりそうにありません。時期尚早に最適化して、 `x`weiと` y`の2つの整数比を組み込み、呼び出しのセマンティクスを変更するのではなく、これをガバナンスの将来の演習として残します。

注意

tBTC v1で使用されているMedianizerは、MakerがETHBTCフィードと呼んでいるものです。つまり、BTCで1ETHの価格を小数点以下18桁の精度で返します。 BTCの10進数の18番目の名前はありません。BTCの最小の名前の付いた金種は10–8であるサトシであるため、以降、これを「ウェイトシ」と呼びます。 x wei:1 satoshiの比率を取得するには、tBTCはETHBTC値(weitoshiでは1 ETH)を1satのweiの数に変換する必要があります。これは、1028をMedianizer値で割ることによって行われます。

将来のデザイン

価格フィードはtBTCのセキュリティに不可欠であり、将来的には、主にtBTCエコシステムによって管理されます。最初のアップグレードは、「プライスレスフィード」と呼ばれる逆オークションの課題に基づく新しいプライスフィードメカニズムの組み込みに焦点を当てます。

KEEP NetworkDiscordに参加する

tBTC不和に参加する

--

--

Aizhan Z
0 Followers

Rider, Hiker, Blockchain explorer