【網絡熱話】奧運羽毛球項目鷹眼挑戰成為東亞最熱關注點甚至二創出中華台北新參賽「區旗」
奧運羽毛球比賽近日成為兩岸三地最熱門話題,當中勝負乃兵家常事,贏左故然喜樂,輸左都唔需要鞭屍(民智未開才會責怪銀牌運動員!),畢竟排第一同排第二其實都係咁「叻」咁努力。羽毛球的幾場關鍵決賽除左紅球員仲紅左一個好綠的裁判輔助系統鷹眼系統。如今係網球、羽毛球排球等等比賽中已經成熟運用鷹眼挑戰以多部高速攝影機記錄及追蹤球的飛行軌道協助判決。奧運鷹眼挑戰判定近日成為最熱話題,甚至潮到奧運台灣賽區有呼聲將鷹眼經典判決圖畫成台灣地區奧運區旗,日後以此參加奧運。更詭異係有人利用16進位色彩( hex color )搵出賽場上「強烈的青色」的顏色碼原來蘊藏著有趣嘅巧合。
同時也有55部Youtube影片,追蹤數超過7,860的網紅絶対待機,也在其Youtube影片中提到,DBDリーダーボード(https://dbd.onteh.net.au/)より 総取得BPランキング世界10位 HEXトーテム破壊数世界1位 脱出回数世界4位 スキルチェック数世界2位 発電機修理数世界4位 今回のPTB内容はこちら↓ https://forum.deadbydaylight.co...
「hex 色」的推薦目錄:
- 關於hex 色 在 MenClub Facebook 的最佳解答
- 關於hex 色 在 Taipei Ethereum Meetup Facebook 的精選貼文
- 關於hex 色 在 美劇癮 歐美娛樂資訊平台 Facebook 的最佳解答
- 關於hex 色 在 絶対待機 Youtube 的精選貼文
- 關於hex 色 在 はんこんch・ソロキャンプと軽バンライフ Youtube 的精選貼文
- 關於hex 色 在 はんこんch・ソロキャンプと軽バンライフ Youtube 的最讚貼文
- 關於hex 色 在 [ Alphacamp final exam ] 一個RGB 與HEX 色碼的轉換器 - GitHub 的評價
- 關於hex 色 在 ThunderX3 AH7 Virtual 7.1環繞聲• HEX(1680萬色) 的評價
hex 色 在 Taipei Ethereum Meetup Facebook 的精選貼文
📜 [專欄新文章] Merkle Tree in JavaScript
✍️ Johnson
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
這篇文章會說明 Merkle Tree 的運作原理,以及解釋 Merkle Proofs 的用意,並以 JavaScript / TypeScript 簡單實作出來。
本文為 Tornado Cash 研究系列的 Part 1,本系列以 tornado-core 為教材,學習開發 ZKP 的應用,另兩篇為:
Part 2:ZKP 與智能合約的開發入門
Part 3:Tornado Cash 實例解析
Special thanks to C.C. Liang for review and enlightenment.
本文中實作的 Merkle Tree 是以 TypeScript 重寫的版本,原始版本為 tornado-core 以 JavaScript 實作而成,基本上大同小異。
Merkle Tree 的原理
在理解 Merkle Tree 之前,最基本的先備知識是 hash function,利用 hash 我們可以對資料進行雜湊,而雜湊後的值是不可逆的,假設我們要對 x 值做雜湊,就以 H(x) 來表示,更多內容可參考:
一次搞懂密碼學中的三兄弟 — Encode、Encrypt 跟 Hash
SHA256 Online
而所謂的 Merkle Tree 就是利用特定的 hash function,將一大批資料兩兩進行雜湊,最後產生一個最頂層的雜湊值 root。
當有一筆資料假設是const leaves = [A, B, C, D],我們就用function Hash(left, right),開始製作這顆樹,產生H(H(A) + H(B))與H(H(C) + H(D)),再將這兩個值再做一次 Hash 變成 H(H(H(A) + H(B)) + H(H(C) + H(D))),就會得到這批資料的唯一值,也就是 root。
本文中使用的命名如下:
root:Merkle Tree 最頂端的值,特色是只要底下的資料一有變動,root 值就會改變。
leaf:指單一個資料,如 H(A)。
levels:指樹的高度 (height),以上述 4 個資料的假設,製作出來的 levels 是 2,levels 通常會作為遞迴的次數。
leaves:指 Merkle Tree 上的所有資料,如上述例子中的 H(A), H(B), H(C), H(D)。leaves 的數量會決定樹的 levels,公式是 leaves.length == 2**levels,這段建議先想清楚!
node:指的是非 leaves 也非 root 的節點,或稱作 branch,如上述例子中的H(H(A) + H(B)) 和 H(H(C) + H(D))。
index:指某個 leaf 所在的位置,leaf = leaves[index],index 如果是偶數,leaf 一定在左邊,如果是奇數 leaf 一定在右邊。
Merkle Proofs
Merkle Proofs 的重點就是要證明資料有沒有在樹上。
如何證明?就是提供要證明的 leaf 以及其相對應的路徑 (path) ,經過計算後一旦能夠產生所需要的 root,就能證明這個 leaf 在這顆樹上。
因此這類要判斷資料有無在樹上的證明,類似的說法有:proving inclusion, proving existence, or proving membership。
這個 proof 的特點在於,我們只提供 leaf 和 path 就可以算出 root,而不需要提供所有的資料 (leaves) 去重新計算整顆 Merkle Tree。這讓我們在驗證資料有沒有在樹上時,不需要花費大量的計算時間,更棒的是,這讓我們只需要儲存 root 就好,而不需要儲存所有的資料。
在區塊鏈上,儲存資料的成本通常很高,也因此 Merkle Tree 的設計往往成為擴容上的重點。
我們知道 n 層的 Merkle Tree 可以存放 2**n 個葉子,以 Tornado Cash 的設計來說,他們設定 Merkle Tree 有 20 層,也就是一顆樹上會有 2**20 = 1048576 個葉子,而我們用一個 root 就代表了這 1048576 筆資料。
接續上段的例子,這顆 20 層的 Merkle Tree 所產生的 Proof ,其路徑 (path) 要從最底下的葉子 hash 幾次才能到達頂端的 root 呢?答案就是跟一棵樹的 levels 一樣,我們要驗證 Proof 所要遞迴的次數就會是 20 次。
在實作之前,我們先來看 MerkleTree 在 client 端是怎麼調用的,這有助於我們理解 Merkle Proofs 在做什麼。
基本上一個 proof 的場景會有兩個人:prover 與 verifier。
在給定一筆 leaves 的樹,必定產生一特定 root。prover 標示他的 leaf 在樹上的 index 等於 2,也就是 leaves[2] == 30,以此來產生一個 proof,這個 proof 的內容大致上會是這個樣子:
對 verifier 來說,他要驗證這個 proof,就是用裡面的 leaf 去一個一個與 pathElements 的值做 hash,上述就是 H('30', 40) 後得出 node,再 hash 一次 H('19786...', node) 於是就能得出這棵樹的 root。
重點來了,這麼做有什麼意義?它的巧思在於對 verifier 來說,他只需要儲存一個 root,由 prover 提交證明給他,經過計算後產生的 root 如果跟 verifier 儲存的 root 一樣,那就證明了 prover 所提供的資料確實存在於這個樹上。
而 verifier 若不透過 proof ,要驗證某個 leaf 是否存在於樹上,也可以把 leaves = [10, 20 ,leaf ,40]整筆資料拿去做 MerkleTree 的演算法跑一趟也能產生特定的 root。
但由 prover 先行計算後所提交的 proof,讓 verifier 不必儲存整批資料,也省去了大量的計算時間,即可做出某資料有無在 Merkle Tree 上的判斷。
Sparse Merkle Tree
上述能夠證明資料有無在樹上的 Merkle Proofs 是屬於標準的 Merkle Tree 的功能。但接下來我們要實作的是稍微不一樣的樹,叫做 Sparse Merkle Tree。
Sparse Merkle Tree 的特色在於除了 proving inclusion 之外,還可以 proving non-inclusion。也就是能夠證明某筆資料不在某個 index,例如 H(A) 不在 index 2 ,這是一般 Merkle Tree 沒辦法做到的。
而要做到 non-membership 的功能其實也不難,就是我們要在沒有資料的葉子裡補上 zero value,或是說 null 值。更多內容請參考:What’s a Sparse Merkle Tree。
實作細節
本節將完整的程式碼分成三個片段來解釋。
首先,這裡使用的 Hash Function 是 MiMC,主要是為了之後在 ZKP 專案上的效率考量,你可以替換成其他較常見的 hash function 例如 node.js 內建 crypto 的 sha256:
crypto.createHash("sha256").update(data.toString()).digest("hex");
這裡定義簡單的 Merkle Tree 介面有 root, proof, and insert。
首先我們必須先給定這顆樹的 levels,也就是樹的高度先決定好,樹所能容納的資料量也因此固定為 2**levels 筆資料,至於要不要有 defaultLeaves 則看創建 Merkle Tree 的 client 自行決定,如果有 defaultLeaves 的話,constructor 就會跑下方一大段計算,對 default 資料開始作 hash 去建立 Merkle Tree。
如果沒有 defaultLeaves,我們的樹也不會是空白的,因為這是顆 Sparse Merkle Tree,這裡使用 zeroValue 作為沒有填上資料的值,zeros 陣列會儲存不同 level 所應該使用的 zero value。假設我們已經填上第 0 筆與第 1 筆資料,要填上第 2 筆資料時,第 2 筆資料就要跟 zeros[0] 做 hash,第 2 筆放左邊, zero value 放右邊。
我們將所有的點不論是 leaf, node, root 都用標籤 (index) 標示,並以 key-value 的形式儲存在 storage 裡面。例如第 0 筆資料會是 0–0,第 1 筆會是 0–1,這兩個 hash 後的節點 (node) 會是 1–0。假設 levels 是 2,1–0 節點就要跟 1–1 節點做 hash,即可產出 root (2–0)。
後半部份的重點在於 proof,先把 proof 和 traverse 看懂,基本上就算是打通任督二脈了,之後有興趣再看 insert 和 update。
sibling 是指要和 current 一起 hashLeftRight 的值…也就是相鄰在兩旁的 leaf (or node)。
到這裡程式碼的部分就結束了。
最後,讓我們回到一開始 client 調用 merkleTree 的例子:
以及 proof 的內容:
前面略過了 proof 裡頭的 pathIndices,pathIndices 告訴你的是當前的 leaf (or node) 是要放在左邊,還是放在右邊,大概是這個樣子:
if (indices == 0) hash(A, B);if (indices == 1) hash(B, A);
有興趣的讀者可以實作 verify function 看看就會知道了!
原始碼
TypeScript from gist
JavaScript from tornado-core
參考
Merkle Proofs Explained
What’s a Sparse Merkle Tree?
延伸:Verkle Tree
Merkle Tree in JavaScript was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
hex 色 在 美劇癮 歐美娛樂資訊平台 Facebook 的最佳解答
● #WandaVision E7 #無重點的重點
● Breaking the Fourth Wall 打破第四面牆?
● Darcy HEX 內造型係失望...
● Modern Family 及 The Office 偽紀錄片風...不過如果係Fans,幕後出聲同片尾揭盅係有驚喜!
● Agnes, Fans Theory 確定,但可唔可以唔好咁直接?!
但如果你有跟開News,其實無乜特別驚喜 #首歌想點?
● 如果Pietro Recast 真係Agnes“求其”所為,真係失望 #割凳程度...
● 早前傳說 第789集均為一小時特別集,為 #假消息
● 馬戲團荷里活級千萬金元製作但係只為過鏡,
● Agnes地庫劇情重心但只係小兒科式製作 ,#據報導每集預算高達2500萬美元 #D錢用左去邊!
● 整集鋪墊 Captain Rambeau 成為 Photon 個故事線有一點點夾硬迫你睇!#製服外型refernce自漫畫
● Tommy 及 Billy 基本上交唔到戲令人失望,不過都好擔心最後如何處理兩個小朋友設定!
● 原本外國Fans Theory估提供登月車給Captain Rambeau 的“天文工程師” 是重要角色甚至是 神奇四俠的 神奇先生 Mister Fantastic 本名 Reed Richards ,不過今集揭曉竟是路人角色讓不小人投訴!
● 片尾Bonus Scene 基本無野討論吧!
~~~~~~~~~~~~~~
Join美劇癮Patreon啦 !
★ 美劇癮3.0: Patreon戶口啟動 ★
https://www.patreon.com/meikeknin
hex 色 在 絶対待機 Youtube 的精選貼文
DBDリーダーボード(https://dbd.onteh.net.au/)より
総取得BPランキング世界10位
HEXトーテム破壊数世界1位
脱出回数世界4位
スキルチェック数世界2位
発電機修理数世界4位
今回のPTB内容はこちら↓
https://forum.deadbydaylight.com/ja/discussion/283262/
ツイッター
https://twitter.com/zettaitaiki
◆終了企画◆
バイオ新キャラ3人3転生まで終わりまてん#2235
ネメシス縛りプレ3まで終わりまてん#2218
ほぼほぼツインズのみで3転生するまで終わりまてん#2020
Vtuber華桜みれあさんとコラボ#1935
プレ3までブライト縛り#1885
プレ3までデススリ縛り#1672
ランク1までノーキャントンゴスフェ縛り #1307~1334
レガシーオンリーでランク1目指し #1139~1149
ランク1になるまでウルメメ縛り #554~#583
ノーキャンプノートンネルノーキルでランク1まで縛り #928~#944
リスナーさん参加型「一人死ぬまで帰れまテン
#2000#1823#1501#1112#1046#949#946#860#654#521#464#366
サムネ提供 killkenny (https://twitter.com/killkenny2000)
mameko (https://twitter.com/mame_imo)
可愛い絵のサムネ書いてくれてます。boothにて物販もしているので1度チェックしてみてください。
神奈川の南の方でアパートの管理人してます。住人さん常時募集中です。
詳しくはツイッターDM等個人的に連絡ください。
◆うちの住人さん(元含む)の放送◆↓
アジ吉(元)https://www.youtube.com/channel/UCBNAA4BlXKtDuxCZqRIEPKw
shobosuke(元)
https://www.twitch.tv/shobosuke
とこ。(元) https://www.youtube.com/channel/UC7vK8XuR0eV0kE3thyv-oQQ
★NEW★
くわごん(さざお) twitter→@kuwagongon
https://whowatch.tv/profile/w:U_are_the_one
★帰ってきた男★
ベガス山本
https://www.youtube.com/channel/UCt-06BBNhWjK2xwrWIMLjfA
うちの放送が暇な時に是非是非遊びに!w
◆放送ルール◆
1.Discordは誰でも入れますが、→ https://discord.gg/9f83Uv8
その中で特定人物のみでのグループの作成(俗に言う引き抜き行為)は止めて下さい。及びそれを見かけた場合、勧誘された場合は報告下さい。チャンネル使用時放送する場合は必ず自分の許可を取って下さい。
2.放送内で他の放送主さん等の名前は出さない様にしてください。放送に来て下さい等のアピールも止めて下さい。
3.リスナーさんの呼称は基本呼び捨てになります。コメント多く返す為です。ご了承下さい。
スマホ(IPHONE)からのメンバー登録方法→
https://www.youtube.com/channel
/UChZF5jgtYk1FHVqaGEm1f9A/join
こちらをクリックしてください
ウーバーイーツやってます。これから始めてみたいなぁという方は個人的に連絡下さい!
紹介コード送ります。
欲しリス http://amzn.asia/j3zczOV
Support the stream: https://streamlabs.com/絶対待機
hex 色 在 はんこんch・ソロキャンプと軽バンライフ Youtube 的精選貼文
真夏の雨ハンモックソロキャンしてきました
雨の音聞きながらハンモックゆらゆらするのもオツな物です
今回の動画は疑似体験的な?ASMR的な??BGM無しなのでヘッドフォンなどで雨の音を楽しんで!!
景色眺めて料理して焚き火して酒のんで
どこかで発見したら気軽に声かけてください
チャンネル登録お願いします! https://bit.ly/2S5IFEX
ぼっちかふぇ プレイリスト https://bit.ly/2S22Y6d
良く使用しているものは下にリンクがあります
・twitter
https://twitter.com/han_kon
・instagram
https://www.instagram.com/han_kon
Feel free to contact us.
hankon2525@gmail.com
・カメラ:DMC-G7,12-35,E-PL5,単焦点,Gopro
・音楽:魔王魂様:DOVA-SYNDROME様
使っているもの
ニーモ NEMO ヘキサライト エレメント 6P スターカー NM-HEX-6P-EL https://amzn.to/2ZhtpIJ
テンマクデザイン サーカス TC DX https://amzn.to/2ZHk52S
テンマクデザイン 炎幕 DX https://amzn.to/2EWIDxF
TRUSCO(トラスコ) トランクカーゴ https://amzn.to/2Z25Cjb
スノーピーク(snow peak) コットハイテンション https://amzn.to/2P9G2FH
Alpine DESIGN ポップアップメッシュシェルター https://amzn.to/2NYe2BL
ポップアップソロテーブル フィールドホッパー【ナチュラム別注カラー】 マットブラック ST-N630 https://amzn.to/2PtrBvW
OPTIMUS ガソリンストーブ 123R スベア https://amzn.to/2JBn44L
MSR シングルバーナー・ストーブ ウィスパーライト https://amzn.to/2P56IY6
DUG(ダグ) 焚火缶 3点セット https://amzn.to/2P9Geop
SOTO レギュレーターストーブ 対応 グリルプレート(遮熱板付き) 板厚4.5mm https://amzn.to/2CVPOnc
ユニフレーム ユニセラTG-III https://amzn.to/2JCfwi2
ホットサンドメーカー バウルー シングル https://amzn.to/2CYHrHK
OPINEL(オピネル) カーボンスチール #10 https://amzn.to/2Jz41rv
モーラ・ナイフ Mora knife Companion Heavy Duty MG https://amzn.to/2P55FqR
ソト(SOTO) スライドガストーチ https://amzn.to/2CWQHw2
BODUM ボダム PAVINA ダブルウォールグラス 250ml https://amzn.to/2F0qWxs
サーモス 保冷缶ホルダー イエロー https://amzn.to/2P9QBs3
#野営
#雨ソロキャンプ
#ハンモック
hex 色 在 はんこんch・ソロキャンプと軽バンライフ Youtube 的最讚貼文
真夏の雨ハンモックソロキャンしてきました
雨の音聞きながらハンモックゆらゆらするのもオツな物です
今回の動画は疑似体験的な?ASMR的な??BGM無しなのでヘッドフォンなどで雨の音を楽しんで!!
景色眺めて料理して焚き火して酒のんで
どこかで発見したら気軽に声かけてください
チャンネル登録お願いします! https://bit.ly/2S5IFEX
ぼっちかふぇ プレイリスト https://bit.ly/2S22Y6d
良く使用しているものは下にリンクがあります
・twitter
https://twitter.com/han_kon
・instagram
https://www.instagram.com/han_kon
Feel free to contact us.
hankon2525@gmail.com
・カメラ:DMC-G7,12-35,E-PL5,単焦点,Gopro
・音楽:魔王魂様:DOVA-SYNDROME様
使っているもの
ニーモ NEMO ヘキサライト エレメント 6P スターカー NM-HEX-6P-EL https://amzn.to/2ZhtpIJ
テンマクデザイン サーカス TC DX https://amzn.to/2ZHk52S
テンマクデザイン 炎幕 DX https://amzn.to/2EWIDxF
TRUSCO(トラスコ) トランクカーゴ https://amzn.to/2Z25Cjb
スノーピーク(snow peak) コットハイテンション https://amzn.to/2P9G2FH
Alpine DESIGN ポップアップメッシュシェルター https://amzn.to/2NYe2BL
ポップアップソロテーブル フィールドホッパー【ナチュラム別注カラー】 マットブラック ST-N630 https://amzn.to/2PtrBvW
OPTIMUS ガソリンストーブ 123R スベア https://amzn.to/2JBn44L
MSR シングルバーナー・ストーブ ウィスパーライト https://amzn.to/2P56IY6
DUG(ダグ) 焚火缶 3点セット https://amzn.to/2P9Geop
SOTO レギュレーターストーブ 対応 グリルプレート(遮熱板付き) 板厚4.5mm https://amzn.to/2CVPOnc
ユニフレーム ユニセラTG-III https://amzn.to/2JCfwi2
ホットサンドメーカー バウルー シングル https://amzn.to/2CYHrHK
OPINEL(オピネル) カーボンスチール #10 https://amzn.to/2Jz41rv
モーラ・ナイフ Mora knife Companion Heavy Duty MG https://amzn.to/2P55FqR
ソト(SOTO) スライドガストーチ https://amzn.to/2CWQHw2
BODUM ボダム PAVINA ダブルウォールグラス 250ml https://amzn.to/2F0qWxs
サーモス 保冷缶ホルダー イエロー https://amzn.to/2P9QBs3
#野営
#雨ソロキャンプ
#ハンモック
hex 色 在 ThunderX3 AH7 Virtual 7.1環繞聲• HEX(1680萬色) 的推薦與評價
ThunderX3 AH7 Virtual 7.1環繞聲• HEX(1680萬色)• LED光環• 50mm驅動器•自調式頭帶•可拆卸麥克風• HEX軟件ThunderX3 AM7 靈巧的外形• HEX(1680萬色)• 12000 DPI ... ... <看更多>
hex 色 在 [ Alphacamp final exam ] 一個RGB 與HEX 色碼的轉換器 - GitHub 的推薦與評價
RGB to Hex Converter. 一個RGB 與HEX 色碼的轉換器,支援"輸入值" 與"拖曳" 兩種版面。 Github Page link. 網站截圖. screenshot. 規格. 基本版: ... <看更多>