📜 [專欄新文章] Ethereum RNG (RANDAO & VDF)
✍️ Kimi Wu
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
Ethereum RNG solution(RANDAO & VDF)
RNG是Random Number Generator,也就是亂數產生器
在現實世界中要產生真正的隨機數,其實不容易,各個語言的library所提供的隨機數,都是偽隨機數,是可以預測的,不過在大部分的應用場域,都是可以應付的。區塊鏈的世界,面對的是全世界的人,怎麼產生不可預測的隨機數,就很重要,不然就可以被有心人所操作。例如Ethereum Beacon chain(POS chain)中的validator/attester(產塊跟驗證的角色),若是可以被預測,那大概就沒有人會相信這條鏈了。而這也是Ethereum Serenity(Eth-2.0),所遇到的問題之一。目前隨機數的產生,就由RANDOA + VDF所產生,以下就分別介紹
RANDAO
RANDAO是利用經濟模式(獎勵跟處罰)的方式,促使在公共場域中能產生隨機變數
原理很簡單,想參加的人把拿錢來抵押,需要產生隨機數的人要付錢。所以參加者就可以從中分潤,當然不守規矩抵押的錢也就會被沒收,利用獎勵跟處罰的方式迫使大家都守規矩。詳細步驟如下:
首先,會有個收集seed的時間,例如6個block的時間。接著,想參與的人,投入某個數量的ETH到RANDAO這個smart contract(作質押),然後附上secret(某個只有你知道的值s,然後作sha3)。
等收集時間結束,就是驗證時間。此階段所有參與著需要把s傳入smart contract做驗證,smart contract會把s作sha3,去驗證是不是跟第一階段傳進來的一致。最終會把驗證過的s當作seed去產生隨機數。
最後,就是產生隨機數,然後把隨機數傳給之前有請求過的contract。然後歸還質押的ETH跟利潤分給參與者。
此外有幾個附加條件
第一階段若收集到數筆一樣的secret,只接受第一筆
第一階段會規定基本人數,若結束後未到達人數門檻,則此次的產生就失敗
若第二階段需提供s3.1 若未提供,則質押的ETH會被沒收3.2 若此階段有一個以上參與著未提供s,則此次產生失敗,並且把沒收的 ETH分給有提供s的參與者。且退還請求者所支付的ETH。
VDF
VDF 全名為Verifiable delay functions,從字面上有點難懂在幹嘛,從運作方面做解釋,就是輸入一個值,然後運算一段時間(delay),得出一個結果,最後這個結果是可以被輕易驗證的。如下列算式,
f(x) = g(g(g(g(….g(x)….)))) where g(x) = xor(x^((p+1)/4), 1) mod p 其反函數為h(x) = xor(x, 1)² mod p
上面提到「運算一段時間」的運算,其實是重複做同一種運算,從數學式看就很清楚,把x帶入g(x),然後把算出的結果再帶入g(x)。所以同一段時間,如果能迭代的次數比其他人多,那其他人就猜不到結果,也就沒辦法預測亂數結果。
最後,介紹一下這兩個方法怎麼運用在Ethereum Serenity中
首先,RANDAO會在內建在Beacon chain的邏輯中,而不是一個獨立的smart contract,但RANDAO有個缺點,就是最後一位可以預測/操縱結果。如下圖,因為最後一位可以知道前面的值,所以在最後可以決定要出值或是不出,因此可以操縱結果。(目前epoch是64個slot,而每個slot是6秒,所以epoch約是6.4 minutes)
source : Justin Drake slides on DevCon4
所以設計上除了RANDAO,還多一層VDF。 VDF把RANDAO產生出來的亂數當種子去產生亂數,而且計算時間要夠長(至少要一個epoch,目前規劃是10個epoch,不過相信還會有變動),如下圖
source : Justin Drake slides on DevCon4
實際的lifecycle會像這樣,在VDF計算完後,會有一個epoch的緩衝讓這個亂數可以上鏈,然後接著下一個RANDAO mixing。
source : Justin Drake slides on DevCon4
但問題來了,怎麼確保沒有人算得比你快??
所以Ethereum Foundation計畫做硬體,設計新的ASIC晶片來計算VDF,以確保沒人可以預測最終的亂數。實際設計當然不是Foundation的researcher們,他們找了學界跟產業的IC design專家做設計,因為硬體研發費用龐大,Filecoin也一起支援這項計畫。更多細節的部分,可以參考Minimal VDF randomness beacon
other references :RANDAO中文白皮書Justin Drake explains “Ethereum 2.0 randomness” on Devcon4
Originally published at kimiwublog.blogspot.com.
Ethereum RNG (RANDAO & VDF) was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
同時也有1部Youtube影片,追蹤數超過7,890的網紅Teri Timeout,也在其Youtube影片中提到,本年度最陽剛又最性感的MV就是Lil Nas X了😆 喜歡的話記得留言讓我知道,也別忘了訂閱我的頻道和開啟通知哦! Hey all! Make sure to leave a comment to show love, and don’t forget to LIKE, SHARE, and SU...
ic number中文 在 Teri Timeout Youtube 的最佳貼文
本年度最陽剛又最性感的MV就是Lil Nas X了😆
喜歡的話記得留言讓我知道,也別忘了訂閱我的頻道和開啟通知哦!
Hey all!
Make sure to leave a comment to show love, and don’t forget to LIKE, SHARE, and SUBSCRIBE to my channel and RING THE BELL so you don’t miss anything from me.
-TERI xx
【完整翻譯】Lil Nas X & Jack Harlow - Industry Baby
Baby back, couple racksCouple Grammys on him, couple plaquesThat's a fact, throw it backThrow it back
我回來了 帶著滿架子的獎牌
葛萊美拿了好幾座 白金唱片得了一堆
這一切鐵證如山
所以趕快轉過去熱舞來討好我
And this one is for the championsI ain't lost since I beganFunny how you said it was the endThen I went did it again
這是獻給稱霸的冠軍
踏上路以來 我從來就未曾迷失
你不覺得好笑嗎? 酸民說我玩完了
但我回來了 又大獲全勝
I told you long ago on the roadI got what they waiting for
I don't run from nothing, dogGet your soldiers, tell 'em I ain't layin' low
早在那條老街上 我就說了吧
我有大家引頸期盼的東西
我可不會隨便逃跑
所以告訴你的大軍 我沒有要低調引退的意思
You was never really rooting for me anywayWhen I'm back up at the top, I wanna hear you sayHe don't run from nothin', dogGet your soldiers, tell 'em that the break is over
反正你也從來沒喜歡過我
當我重返榮耀 我要聽到你說
「他不會輕易離場」
所以集結你的大軍 告訴他們休息時間結束了
Need to get this album doneNeed a couple number onеsNeed a plaque on every song
Need mе like one with Nicki now
我得把這張專輯完成
我得再拿下幾座冠軍
我要每一首歌都有白金獎牌
我要和Nicki一起站上高峰
Tell a rap nigga I don't see yaI'm a pop nigga like Bieber
I don't fuck bitches, I'm queer
But these niggas bitches like Madea
告訴嘻哈饒舌仔 我眼裡根本沒有你
我就像小賈斯汀一樣 流行到爆
妹子?我沒興趣 我是酷兒
你們這些酸民就像個老媽子一樣
let's do it
I ain't fall off, I just ain't release my new shit
I blew up, now everybody tryna sue me
You call me Nas, but the hood call me Doobie
開工吧
我沒有跌落神壇 我只是新歌還沒發
我一夕爆紅 現在每個人都想告我
你們叫我Nas 但我家鄉的人叫我Doobie
[Jack Harlow]
My track record so clean, they couldn't wait to just bash meI must be gettin' too flashy, y'all shouldn't have let the world gas me
我沒拿什麼獎 他們等不及就說我沒實力
我肯定是太招搖了 你們不該讓全世界噴爆我
It's too late 'cause I'm here to stay and these girls know that I'm nastyI sent her back to her boyfriend with my handprint on her ass cheek
太遲了 因為老子我已經要在這裡待下
妹子們都愛我
讓我在她的翹臀上留下紅紅的掌印
再回去找她男朋友
City talkin', we takin' notesTell 'em all to keep makin' postsWish he could, but he can't get close
OG so proud of me that he chokin' up while he makin' toasts
I'm the type that you can't control, said I would, then I made it so
謠言四起 我們做著筆記
告訴大家繼續po文吧
他只是羨慕 但他永遠趕不上我
嘻哈大老們為我驕傲 他敬酒的時候還在哽咽
我完全不受控 我就是說到做到
I don't clear up rumors, where's y'all sense of humor?
I'm done makin' jokes 'cause they got old like baby boomers
Turned my haters to consumers, I make vets feel like they juniors
Say your time is comin' soon, but just like Oklahoma
我從來沒在闢謠的 你們難道都沒幽默感嗎
我也不想在開玩笑了 不然怎麼講都是老梗
把我的酸民變粉絲 讓老兵變年輕
你說你的時代已經要來了
Mine is comin' sooner, I'm just a late bloomerI didn't peak in high school, I'm still out here gettin' cuter
All these social networks and computersGot these pussies walkin' 'round like they ain't losers
但我的時代來的更快 我是大器晚成
我在高中不受歡迎 但現在我越來越討喜
這些鍵盤戰士 總是故意說著妹子怎樣 顯得自己比較不魯
☾ ALSO FOLLOW ME ON 追蹤我
Instagram:@teri.timeout
Facebook:https://www.facebook.com/teri.timeout/
Giva Divas:goo.gl/pVSAiC
☾ INQUIRIES 合作邀約:[email protected]
☾ This is not a sponsored video.
0:00 歌曲背景
3:59 歌詞解析
11:34 Industry Plants爭議
13:59 總結