📜 [專欄新文章] Ethereum Casper — 認識 BLS signature
✍️ Kimi W
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
最近重新追了一下Ethereum Casper的進展,發現到好多新東西(應該是之前看得太表面 XD),Casper跟sharding會綁一起,然後又有個beacon chain,zk-STARK(zk-SNARK的升級版)也來湊一腳,短時間有點難消化,有興趣的人可以google上面幾個keyword。
不過,今天想要介紹的是BLS signature(這又是什麼?????),這個新的簽章方式讓Casper往前再邁進一步!
BLS是Boneh–Lynn–Shacham的縮寫,有興趣的可以參考wiki。這個簽章方式厲害的是,可以把所有signature加起來,然後驗證。如果以現今的ECDSA簽章,100個人簽同一個message,那訊息量就是乘以100倍,以Ethereum官方估計,Casper的validators約有30萬,每一個finality都需要2/3的節點做投票,光是驗證signature這件事,大概就要花到一天,所以以現行的ECDSA簽章方式根本不可行。這也是之前Casper的bottleneck之一,Ethereum的researcher, Justin Drake提出了這個方案,當然也不是拿了就可以用的,BLS的介紹可以參考BLS signatures: better than Schnorr,寫得非常清楚也好懂。下面會簡單介紹一下。
首先,就是要找到一個特殊的橢圓對稱曲線可以達到以下的算式
e(a x P, b x Q) = e(P, ab x Q) = e(ab x P, Q) = e(P, Q)^(ab)
也就是某種的交換律
source from: https://medium.com/…/bls-signatures-better-than-schnorr-5a7… (也徵得作者同意)
用上面那邊文章的圖做解釋 pk:私鑰 P :公鑰 H(m):可以看作是hash過的message S:簽章
驗證簽章會滿足 e(P, H(m)) = e(G, S)
也就是signature可以用P(公鑰)跟 H(m)(hash過的message)做驗證,跟我們以往的認知是一致的。從公式看BLS在sign跟verify都很簡潔,資料量的部分也小了許多(好像是33 bytes)。而ECDSA在verify的部分就複雜了一點(需要先算出v值),細節可以參考這裡。簽章的加總(signature aggregation)簡單來講,就是利用上面提到的交換律所達成,細節可以參考上面提到的文章,這裡就不多提了。
省了空間,那效能呢?!
如果有把BLS signatures: better than Schnorr看過,最下面會提到,看起來很美好,其實很不實用,因為要找尋特殊的對稱曲線,其實很困難及複雜,所以在verify時會比原本的ECDSA更久。(啥?! 那Casper幹嘛用它!!)實際上Ethereum用BLS128–381,是去年Zcash發表的,是非對稱的橢圓曲線,針對128bits的應用上做了最佳化,所以也解決了效能上的問題。
根據Justin Drake提供的數據,2/3validators(預估總共validator數量為 312,500)的簽章大約會是40K,verify速度大約在300ms左右,但是離線蒐集跟打包signature大約要9分鐘,所以每次finality大約可以在10分鐘左右完成。
最後!這個是Ethereum中期的簽章方案,長期的預計會使用zk-STARK,zk-STARK的設計是可以抗量子攻擊,但目前資料量約在100kB左右,還會針對Ethereum做最佳化。
附:這有Ethereum meeting 討論BLS的影片
Originally published at kimiwublog.blogspot.com.
Ethereum Casper — 認識 BLS signature was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
同時也有2部Youtube影片,追蹤數超過9,940的網紅AB的異想世界,也在其Youtube影片中提到,畫面有段失焦模糊了 下次改進. :P AB的異想世界電子書:「Game出你的社交圈」免費下載 https://abovelight.com/join-ab-community/ 提昇的你社交自信線上課程「夢想生活 - 全世界都是你的社交圈」 https://abovelight.com/drea...
p(ab) 在 AB的異想世界 Youtube 的最佳解答
畫面有段失焦模糊了 下次改進. :P
AB的異想世界電子書:「Game出你的社交圈」免費下載
https://abovelight.com/join-ab-community/
提昇的你社交自信線上課程「夢想生活 - 全世界都是你的社交圈」
https://abovelight.com/dream-life-social-world/
AB的異想世界黃金訂閱
https://abovelight.com/subscribe/
facebook: https://www.facebook.com/AbovelightLife/
instagram: https://www.instagram.com/abovelightlife/
soundcloud: https://soundcloud.com/shang-rung
iTunes podcast: https://itunes.apple.com/us/podcast/id1207576640
官方部落格網站: https://www.abovelight.com/
p(ab) 在 What is the difference between $p(a,b)$ and $p(a|b) - Math ... 的推薦與評價
I'm going to rephrase a little bit: p(a,b) is the probability that both a and b happen. p(a|b) is the probability that a happens, ... ... <看更多>
p(ab) 在 [中學] P(A-B)是不是聯合事件? - 看板Math - 批踢踢實業坊 的推薦與評價
題目:
設 A, B為兩事件,且P(A∪B)=3/4,P(A’)=2/3,P(A∩B)=1/4。
求
(1) P(B)
(2) P(A-B)
試解
P(A∪B)=P(A)+P(B)- P(A∩B)=1 - P(A’) + P(B) - P(A∩B)
∴P(B) = 3/4 – 1/3 + 1/4 = 2/3 ←←←答案(1)
問題:P(A-B) 是甚麼意思? 怎麼算 ? 參考答案 1/12
謝謝各位好心的大大!
聯合事件是:兩個或者以上的事件,透過交集或聯集之運算所構成的事件。
交集的符號是∩ 聯集的符號是 ∪
請問 P(A-B) 可以用聯合事件的符號表示嗎? 如果可以是甚麼表示法?
各位大大、P(A-B) 白話文翻譯是甚麼意思? 小的有查書。書裡面沒寫。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.241.96.53
※ 文章網址: https://www.ptt.cc/bbs/Math/M.1468572187.A.0B5.html
... <看更多>