読んだサイトまとめ
【概要】
全部1次情報で読みたいし,読んで独自のバリューを出したいところだけど,
・時間がない
・根本的な知識があまりにない
ので,とりあえずn次情報でもなんでも読んで備忘録として載せておきます.
間違っているところがあったらコメントいただけると嬉しいです!!
※日々追加しているので,階層構造とかがメタメタな部分あるけど許してね
レイヤー1とは
・L1だけでスケーラビリティを解決するのはむずいので,開発者はレイヤー1のネットワークにセキュリティとコンセンサスを依存するレイヤー2のプロトコルを作成する.
レイヤー2とは
・取引の過程で、一旦、メインとなるレイヤー1の外でブロック生成に必要な計算処理等を行い、最終的な取引結果のみをブロックチェーンに戻して記録します。このプロセスを踏むことで、レイヤー1の負荷を減らしながら膨大な量のデータ処理や高速処理が可能となるのです。
ライトニングネットワーク
・ビットコインで使われる
・レイヤー1のブロックチェーンの外で「ペイメントチャネル」という1対1のペアでチャネルを立ち上げる手法が基礎となります。あるノードとノード同士が、決まった通貨量をデポジット(保証金の意)し、その範囲内に限って取引ができます。
・ペイメントチャネルは、2者間でしか取引できませんが、ノード同士を数珠のようにして複数経由すること(=ライトニングチャネル)で、チャネルが繋がっていない者同士でも高速かつ低コストでの送金が可能となります。
→チェーン外で限られた金額の範囲で二者間取引をする.複数のノードを経由すれば,直接つながってない人同士でも取引ができる.
ライデンネットワーク
・イーサリアムにおけるライトニングネットワーク
Plasma
・イーサリアムのオンチェーン型のL2
・レイヤー1を「親」として,その下に「子」,「孫」のチェーンを階層的に作る.必要に応じてチェーン数を増やし、それぞれに役割を持たせて、レイヤー1の負荷を軽くしながら、取引の高速化と低コスト化を実現.
・レイヤー1以外はスマコンで能力をもたせられる.
→レイヤー2がオフチェーンというのはウソ・・・?
スマートコントラクト
あらかじめ設定したルール通りに自動的に取引を行うようにプログラミングされたイーサリアム特有の仕組み
レイヤー2のデメリット
オフチェーン型のデメリット
・レイヤー1とは切り離して外部で取引やその計算を行い、結果だけをレイヤー1に戻し,そのレイヤー2での取引内容はわからないため,結果を信じるしかなく,不正があってもわからない.
・ペイメントチャネルは脆弱性が指摘されている.
オンチェーン型のデメリット
・特定の管理者に管理を任すことができないため、悪意のある第三者に暗号資産をハッキングされるリスクがある.
→はあ,,,ブロックチェーンだから過半数握られたらまずいってこと?
・これを回避するためには、レイヤー2にあたるブロックチェーンをすべてダウンロードして監視するほかなく、非常に手間.
レイヤー 2が不要なブロックチェーンもある
・Solana
→Solena!
シャーディングとは
ブロックチェーン関係ないページから
→論理的には単一のDBだが,実際は複数のDBで分散して違うデータを持つ的な.
・イーサリアム開発者のVitalik氏は「そもそも現状、全てのノードが全部のトランザクションを処理している。これはEthereumの処理能力が1つのノードの処理能力と同じになってしまっているということだ。」と述べています。
・
①ブロックチェーン上にあるノードをシャード(shard)という複数のノードからなるグループにランダムに分割します。
②各シャードは割り当てられたトランザクションのみを処理します。
③その結果をシャード間で共有し、コンセンサスを取ります。
④シャード内のノードは定期的に、そしてランダムに入れ替えられます。
→②で,あるトランザクションの検証を行うノードの数が減っているので,セキュリティ的に大丈夫なのか?④みたくシャード内のノードが定期的にランダムに入れ替えることで問題なくなるんかな?
あと,③のシャード間で共有して,コンセンサスをとるというのは,あるシャードの結果を単純に他のシャードにいるノードが特に検証もなしに受け入れるってこと?
と思って,読んでいたら,PoWじゃなくて,PoSにすることでセキュリティの問題に解決するらしい.
ハッシュパワー
・ハッシュレート(ハッシュパワー)とは、マイニングにおける計算速度を指しています。適切なナンスを探すべく、世界中のマイナーたちが計算を行っているわけですが、その際の1秒当たりの計算速度がハッシュレートです。ハッシュレートの単位は、「Hash/s」などと表現されます。
キャスパー
イーサリアムはコンセンサスアルゴリズムにPoWを用いているが、これをPoSへ移行させるためのプロジェクト
アバランチコンセンサス
・基本ルールは、「各ノードは周りのノードの大多数の意見に合わせる」というもの
・例えば、ある部屋に64人の人がいたとします。この64人の人は、ランチに何を食べたいか決めようとしています。個人個人で別のモノを食べるのではなく、全員で同じモノを頼まなければいけません。仮に選択肢がピザかバーベキューかの二択だとします。当然ながら、ピザを食べたい人もいれば、バーベキューをしたい人もいます。そのうちの一人(Aさん)は、ピザを食べたいと思っていると仮定します。
64人の総意を決定するための方法として、部屋にいる全ての人が、それぞれランダムに選択した数人の人に「ピザとバーベキューどっちがいいですか?」と聞きます。Aさんもランダムに選択した数人に、この質問をします。
今回質問する人数は5人に設定します。5人のうち半数以上の3人が「ピザ」と答えた場合、Aさんはそのまま「やっぱりピザが食べたい」と思い続けます。一方で3人以上が「バーベキュー」と答えた場合、Aさんは「みんながバーベキューと言っているから自分もバーベキューにしよう」と自分自身の好みを変更します。このように、最初の自分の好みがどちらであろうと、大多数が好む方に自分の選択肢も変更します。
Aさんだけでなくこの部屋にいる参加者全てが同時並行的に、質問する相手を変更しながら、この質問プロセスを何度か繰り返し行っていきます。Aさんのように最初の好みがピザであったとしても、質問の結果バーベキューに好みを変更した場合、次のラウンドではバーベキューを自分の好みとして、質問に答えていきます。
これを何度か繰り返して行っていくと、多数派の意見がさらに支持者を増やしていくことになり、部屋にいる人全員が徐々に同じ意見を持つようになっていきます。何度このラウンドを繰り返しても多数派の答えが変わらなくなったところで、つまり、どのランダムな5人に何度質問してもピザ(またはバーベキュー)との答えしか返ってこなくなったところで、このプロセスを終了します。
→これおもしろいな.これで効率的にコンセンサス取れるのか.具体的にどれくらい1ノードが何ラウンド,質問を繰り返すのだろうか?数学的な証明も気になる.
ユニスワップとは
・イーサリアム・ブロックチェーン上で動作する最大の分散型取引所(DEX)
価格決定メカニズムの分散化:AMMの実装による流動性上昇の実現
ユニスワップ以前のDEXの問題点
価格決定のメカニズムにオーダーブック形式を採用しており、その結果、流動性、手数料、中央集権性、取り扱い銘柄等、様々な点において問題
- オーダーブック形式:買い手と売り手の希望価格をマッチングして価格が決定される形式
AMMとは
流動性プールからトークンの交換を行い、流動性プールにあるトークンの割合によって価格が自動的に決定される仕組み
- 流動性プール:資産が貯められている貯金箱のようなもので、このプールには2種類以上のトークンが預けられており、トレーダーはこのプールを相手に取引を行う
- AMMのレート決定:x*y=k(xは一種類目のトークンの数、yは二種類目のトークンの数,kは定数)
銘柄選定の分散化:上場審査が存在しない
「ERC-20規格」を利用して発行されたトークンであれば、どんな通貨でもユニスワップに上場可能
→他のチェーンのトークンとも交換できるDEXって存在するんかな?
運営の分散化:ガバナンストークンを採用
- ガバナンストークン:ユーザーが重要なプロトコル変更等に投票できる権利が付与されたトークンのこと
- イールドファーミング:Defi(分散型金融)サービスに仮想通貨を預け入れることで報酬を得る仕組みのこと
https://www.caica.jp/media/crypto/yield-farming/
ユニスワップの歴史
2018年11月 V1がローンチ
2020年5月 V2がローンチ
ERC-20トークン同士の直接トレードが可能に.v1ではETHをブリッジとして利用する必要があり、2回分の手数料が発生していた
2020年8月 SUSHISWAPによるヴァンパイアアタック事件
SushiswapがUniswapにヴァンパイアアタックを仕掛け、Uniswapの流動性のうちなんと半分を奪い取った事件
参照の説明がわかりやすいのでそれを見る.
- ヴァンパイアアタック:同じタイプの機能をもつ新興のBプラットフォームが有力なAプラットフォームを使ってるという実績を基にBプラットフォームで使えるトークンをエアドロップして、BがAに預けていた流動性・資金とユーザーをBに移動してしまって、Aの力を吸い取ってBに持っていくこと
→日本語が分かりづらい.(有力なAプラットフォームと)が「同じタイプ」の前に入る?
https://note.com/daolaunch/n/n58e6cfbd22e6 - LPトークン:流動性提供者に、流動性提供の証明として与えられるトークン
2020年9月 ガバナンストークン「UNI」をローンチ
ヴァンパイアアタック事件の反省から.
2021年5月 V3がローンチ
価格変動リスクを抑えるために流動性提供の範囲指定が可能になり、LPトークンがNFTに仕様変更され、手数料率が選択できる仕様に.
感想
わかりやすかった.圧倒的感謝👊.しかし,この記事自体もn次情報のまとめであり,私はn+1次情報を読んだことになる.そもそもこういった事件の1次情報とはどこにあるのか?クリプト界隈の信用に足るメディアは何なのか?わからぬ.
Curve Stable Swap
・TVL(Total Value Locked):るDeFi(分散型金融)プロトコルに預けられた暗号資産(仮想通貨)の価値をいう。日本語では「預かり資産」などと表される。
Priceとは
Price X/Y とはXとYの交換比率のこと
→払った分Xの返ってくる分Yで計算.表記はX/Y.分かりづらい.
・slippage:あらかじめ設定した指値の価格と実際の約定価格の差のこと
→Xを支払ったあとのYのプール量がX*Y=Kを満たすようにして,Xが決まる.
・一般化すると,支払いをa,XとYの関係をy=f(x)とすると,p=f(x)-f(x+a)/aとなる.これはa→0としたとき-f(x)の1回微分.つまり支払いの量が小さければ小さいほど,1回微分した値に近づく.
Constant Swap
プール内のトークンの量に関わらずpriceは1を返す.
x+y=k
しかし,xを無限に売れることはなく枯渇してしまう.
Curve Stable Swap
プールの量が均衡している(比率1:1)付近では x + y = kを、プールの量が偏っているときには x* y = kとなるような式を使用する.
xとyが等しいときは以下のように,constant swapとuniswapのAMMの式は表現できる.
x+y=D
x * y= (D/2)^2
次元を合わせるために,ConstantSwapの両辺にλDを乗じて,両式を足し合わせる.
λD(x+y) + xy = λD^2 + (D/2)^2
λが大きいときはconstantswapに,小さいときはuniswapに近づく
→いい感じにλを設定すれば,この式で1:1で交換することも,無限に近いトークンを交換し続けられるってこと?
これではx=0 or y=0の点が存在する.枯渇するかもしれん.
理想的なλは、プールの量が均衡している時は定数、プールの量が偏るにつれて0となる動的な λ(x,y)λ(x,y) である必要がある.
Aを定数として,
λ= AxY/(D/2)^2
とする.xyを(D/2)^2割るということは(x*yは両式を足し合わせたあとのx,yであることに注意),偏りが存在するとき,小さくなるということ.つまり,偏れば偏るほど,λは0に近づく.λが0に近づけば近づくほど,uniswapになる.
また,Aが大きければconstant swap,小さければuniswapへと近づく.
増幅係数A の決定方法
・プール量が均衡しているときは,増幅係数が大きいほうが価格が安定する.(傾きを見る)
・逆のときは増幅係数は小さい方が良い.
この増幅係数の意思決定はveCRVを用いたDAOによって行われる.
基本的には新規でローンチしたプールのAは低く、安定するに従ってAを上げていく場合が多い.
→Aを小さくすることでUniswapの式に近づき,枯渇することがなくなるからか.
・増幅係数を大きくすることでレバレッジをかけ,少ない量でプールを作れる.価格が安定しているステーブルコインの流動性供給で非常に資本効率がよくなる.
Curve DAO
The DAO
・The DAOは、イーサリアム上のスマートコントラクトを通じて実行される、自律分散化されたファンドの形態として2016年4月に生まれた
→へー!ファンドの形態として生まれたのか.
流動性マイニング
保有している仮想通貨をプラットフォーム(DEX)に提供することで流動性を提供し、報酬としてガバナンストークンなどを得る仕組みのこと
Tokenomics
トークンを介したプロダクトのインセンティブシステム
Curve FinanceのDAO, Tokenomics
-
Curve FinanceのガバナンストークンCRVも流動性マイニングを通じて手に入れることができる
-
それまでのプロダクトとの違いは、CRVはそのままでは効力を持たないというところ
-
CRVを一定期間ロックし、その対価としてveCRVをもらうことで初めて以下の効力を得る
-
投票力
-
プロトコルが得るFeeの50%
-
Liquidity Gaugeから得られるCRVのブースト
-
-
ロックとインセンティブのメカニズムにより、その排出量にもかかわらず売り圧が軽減されている
-
Curve Financeにおいて、投票力は非常に重要。なぜなら、Liquidity GaugeのWeightを決定する権利があるから
Liquidity GaugeのWeight
CRVの排出量に対して各プールがどれだけの割合でCRVを受け取ることができるか.プールの量が大きければ大きいほど$1あたりの受け取れるCRVの量が減る.
Gauge Type Weight
グルーピングの機能を持ち,例えば、ETH系のプールのWeightを0にして、CRV排出を終了するといった用途で用いられる.
veCRV
- VotingEscrowにCRVをロックすることによってのみ得ることができるトークン。購入も譲渡もできない.
- ユーザーは保有しているCRVを、選択可能な期間t_lでロックできる.そのt_lまでの残り時間をt, CRVの保有量をaとするとveCRVの量wは以下の数式で表される.
w=a * t/t_max - つまり受け取ったCRVを常にロックし続けなければ、投票力は減少していくという仕組み
- 各Liquidity Gaugeが受け取るCRVの量は、排出量(インフレ率)r、 Gauge Weightをw_g、Gauge Type Weightをw_tとすると
r'=w_g* w_t* r
- このWeightをユーザーは投票で決めることができる
- 預け入れたLPトークンの量をb, Gauge全体のLPの量をSとすると、ユーザーが受け取るCRVの量Iは、
I =r' *b / S
b/Sは自分のLPのシェアが全体の何パーセントかということ。そのシェアに各Liquidity Gaugeの配分量がかけられる
- r'、b、Sは定数でなく時間によって変化するので、r'(t)、b(t)、S(t)と時間tによる関数とし、ある期間でのユーザーの受け取るCRVの量を以下の積分値で求めることができる
※数式打つのが面倒なので省略するが,普通に積分すれば良い.
-
上記の積分式を計算するためには全ユーザーのLPトークンの変化量を常に記録しておく必要があるが,それはむずいので,I_is(integrate_inv_supply)という,b(t)を抜いた式を使う.
-
数式打つのが大変なので省略するが,入金時間の前後に関する等式(IとI_isとbを使う)が出てくる.
→なんか,b(t_k)を積分記号から出した状態にしてイコールで結んじゃうのよいのか?って感じしたが,t_k, t_k-1の区間だとb(t_k)は定数なので問題ないよう. -
この式の意味するところは、LPトークン量が変化する前の受け取り量 I(t_k-1)に、その時点から現在までの受け取り量を足しているということ.だから,ユーザーのLPトークンの変化量をすべて記録していかなくても、 I_{is}から積分値を求めることができる.
ブースティング
-
ユーザーへガバナンスへの参加を促す仕組みの一つとして、veCRVの保有量に応じて、CRVの受け取り量をブーストする機能がある
-
全体に占める自分のveCRV保有量が大きければブースト係数は上昇
-
預け入れるLPトークンの全体のプール量が大きければブースト係数は上昇
CRVの獲得戦争
- ユーザーはveCRVを自分で保有してブーストをかけることはできますが、CRVを手に入れロックしなければならないため効率的ではありません。
- そのため既にCRVを保有しているイールドアグリゲーターを使用します。現在最も有名なのはYearn FinanceとConvex Financeです。
Defi Botterになってみよう
→他のPCのプログラムを実行できる的な?
OpenSeaの仕組みを理解しよう
openseaで売買する3つの方法
Buy Now:売り手が固定の価格を提示して、買い手がそれを受ける
Make Offer:買い手が価格を提示して、売り手がそれを受ける
Auction:オークション形式で落札を行う
NFTの売り手
1NFTの移動をOpenseaの代理人に頼む
2金額や期間を設定し,SellOrderを作る
3SellOrderに署名する
4↑をOpenseaにわたす
5OpenseaはSellOrderをオフチェーンで管理する
NFTの買い手
1OpenseaからSellorderをダウンロードし,買いたい注文を選ぶ
2BuyOrederをつくって,SellOrderとともにOpenseaのコントラクトにトランザクションを発生させる.
3OpenseaはトランザクションからBuyOreder,SellOrder,ETHをうけとり以下を実行
①BuyOrederのパラメータチェック
②SellOrderの署名の検証
③Sell Orderの有効性のチェック
④送られてきたETHを売り手へ移動
⑤手数料分のETHをOpenSeaのアドレスへ移動
⑥売り手の代理人を呼び出し、NFTの移動を依頼
Gas代の節約とセキュリティ
・代理人にコントラクトを承認してもらうのにガス代がかかる
・SellOrderを作る行為はオフチェーンなので金がかからず
・イーサリアム外にSellOrderを保存しているわけだが,署名しているのでSellOrderを改ざんできない
注文キャンセル
売買が成立する前ならば、注文をキャンセルすることができます。
注文のキャンセルは、キャンセルしたい側がトランザクションを発生させ、OpenSeaはContract上にCancel Orderを保存します。
キャンセルする場合はGas代がかかります。
・オフチェーンで保存している注文だけを削除しても、事前に署名済みのOrderを入手していれば売買できてしまうから,キャンセルしたという情報をチェーン上に書きこむ必要があるのでGas代がかかる.
売り注文の価格は下げられない
・例えば、あるNFTを5ETHで売りに出したとしましょう。
そこから値段を6ETHに変えたとします。
このとき、既に初めに出した5ETH のSell Orderを入手していれば、5ETHで注文を出すことができます。
チェーンの外で注文の保存を行っているため、最新の注文が6ETHであると保証できないからです。
→理解できなかった...
Make offer
買い手
WETHの移動をOpenSea内の代理人(TokenTransferProxy)に承認する。(ERC20.approve)
買いたいNFTに対して金額や期間を設定し、買い注文 Buy Order を作成
Buy Orderに署名を行う(Signed Message)
署名済みのBuy OrderをOpenSeaのサーバーに送信する
OpenSeaのサーバーはBuy Orderをオフチェーン(イーサリアムの外)で保管する。
売り手
買い手の出したBuy Orderをロードする。
売りたい注文を選ぶ(acceptする)
NFTの移動を代理人(AuthenticatedProxy)に承認する(ERC721.setApproveForAll)
Sell Orderを生成し、Buy OrderとともにOpenSeaのContract(WyvernExchange)へ向けてイーサリアムのトランザクションを発生させる。(WyvernExchange.atomicMatch_)
Sell Orderのパラメータのチェックを行う
Buy Orderの署名の検証を行う
Buy Orderの有効性のチェックを行う(有効期限切れてないか等々)
以下のWETHの移動を代理人(TokenTransferProxy)に依頼する
手数料分
売り手→買い手
売り手の代理人(AuthenticatedProxy)を呼び出し、NFTの移動を依頼
なぜWETHが必要なのか?ETHじゃだめなのか
トランザクションの発生元とトークンの送り元が違うので、transferFrom(第三者がAからBへトークンを移動させる)が実装されていないETHは使用することができません。
→なるほど.
BuyNow:トランザクションの発生元は買い手であり,代理人が買い手から売り手へETHをトランスファーする
MakeOffer:トランザクションの発生元は売り手であり,代理人が買い手から売り手へWETHをトランスファーする
ということか.
OpenSeaのフィッシングを理解しよう
→読んだが,ユーザがただ間違えて署名をしただけ.絶対よくわからないDM,メールを開いちゃダメ!
そこそこやさしいBlockChain間接続
IBC
通信規格.どのチェーンが通信を担うとかはない.Cosmos HubがIBCの通信を担うとかはない.どのチェーンもIBCを担える.COSMOSが死んでもIBCは残る.レイヤー1のブロックチェーン同士が通信するための規格.
COSMOS IBC
レイヤー0と異なり,コントラクトという概念と一切関係がない.
あるのはポートという概念(数字ではなく通信したいモジュールの名前を概念で示せば良い).
決定的ファイナリティのあるコンセンサスアルゴリズムが必要.確率的ファイナリティではダメ.
決定的ファイナリティさえあればCOSMOS SDK以外で作られたブロックチェーンにもIBCを搭載できる.規格に従うだけだから.HyperLedgerと繋げる実験も行われている.
ポートはチャネルとは別の概念.ポートはエンジニア側しかみない.チャネルはユーザも見る.
→具体的にはどういう違いなんだろうか
XCM
18:54
Cross Consensus Management Format
Polkadotの中でブロックチェーン同士がやりとりする規格.まだまだ発展途上か.
通信規格と言うよりもデータのフォーマット.
XCMはあくまでデータの規格であって,そのデータをどう送信するかについては言及していない
Polkadotのリレーチェーンがパラチェーンを面倒見てあげるのがほぼ前提.外に対しては通信できない.
パラチェーン枠の数は限定される.
データが中でどういう順番で読み込まれるかが決まっている.
LayerZERO
規格というよりはブリッジ実装のためのライブラリ群+ブリッジ実装
イーサリアムにも使える.すぐに試せる.
LayerZEROがすでに対応しているチェーンでは,専用の仕組みを備えたコントラクト(オムニチェーンコントラクト)を作る必要がある.
LayerZEROが対応してないチェーンでは,リレイヤーを作る必要がある.(ここでライブラリを使う)
HyperLedgerにIBCを繋げるぐらいの難しさがある.
後付できるが,チェーンの数が増えれば増えるほど個別にリレイヤーを作らないといけない.
あとづけさせてもらえるとも限らない.
決定的ファイナリティが必要ないとは言っているが,,,
Avalanche
40:57
ゼロ知識証明
→「俺知ってるで!」っていうことを知っている内容を伝えずに周りの人に証明できること?
証明できる主張の種類
言語への所属
知識の所持
能力の所持
証明者の持つ知識とは
「証明者が現実的な時間で計算できるもの」.現実的な時間とは多項式時間で計算できること.
以降も読んでみたが,あんまりよくわからなかった.なんか最近Zkという単語をよく聞くのでもうちょい粘りたい.
これ読む
マルチシグ (まるちしぐ)
顧客が暗号資産を売買・送金する際、資産を守る鍵に当たる電子署名(シグネーチャー)を複数(マルチ)利用する方式。多くの暗号資産取引所が採用しています。管理者が複数のコンピューターに電子署名を分散させ、不正アクセスやウイルス感染によって一つが流出しても盗難を防止できます。