📜 [專欄新文章] Gas Efficient Card Drawing in Solidity
✍️ Ping Chen
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
Assign random numbers as the index of newly minted NFTs
Scenario
The fun of generative art NFT projects depends on randomness. The industry standard is “blind box”, where both the images’ serial number and the NFTs’ index are predetermined but will be shifted randomly when the selling period ends. (They call it “reveal”) This approach effectively solves the randomness issue. However, it also requires buyers to wait until the campaign terminates. What if buyers want to know the exact card right away? We’ll need a reliable onchain card drawing solution.
The creator of Astrogator🐊 isn’t a fan of blind boxes; instead, it thinks unpacking cards right after purchase is more interesting.
Spec
When initializing this NFT contract, the creator will determine the total supply of it. And there will be an iterable function that is randomly picking a number from the remaining pool. The number must be in range and must not collide with any existing ones.
Our top priority is accessibility/gas efficiency. Given that gas cost on Ethereum is damn high nowadays, we need an elegant algorithm to control gas expanse at an acceptable range.
Achieving robust randomness isn’t the primary goal here. We assume there’s no strong financial incentive to cheat, so the RNG isn’t specified. Implementers can bring their own source of randomness that they think is good enough.
Implementation
Overview
The implementation is pretty short and straightforward. Imagine there’s an array that contains all remaining(unsold) cards. When drawIndex() is called, it generates a (uniform) random seed to draw a card from the array, shortens the array, and returns the selected card.
Algorithm
Drawing X cards from a deck with the same X amount of cards is equal to shuffling the deck and dealing them sequentially. It’s not a surprise that our algorithm is similar to random shuffling, and the only difference is turning that classic algo into an interactive version.
A typical random shuffle looks like this: for an array with N elements, you randomly pick a number i in (0,N), swap array[0] and array[i], then choose another number i in (1,N), swap array[1] and array[i], and so on. Eventually, you’ll get a mathematically random array in O(N) time.
So, the concept of our random card dealing is the same. When a user mints a new card, the smart contract picks a number in the array as NFT index, then grabs a number from the tail to fill the vacancy, in order to keep the array continuous.
Tweak
Furthermore, as long as the space of the NFT index is known, we don’t need to declare/initialize an array(which is super gas-intensive). Instead, assume there’s such an array that the n-th element is n, we don’t actually initialize it (so it is an array only contains “0”) until the rule is broken.
For the convenience of explanation, let’s call that mapping cache. If cache[i] is empty, it should be interpreted as i instead of 0. On the other hand, when a number is chosen and used, we’ll need to fill it up with another unused number. An intuitive method is to pick a number from the end of the array, since the length of the array is going to decrease by 1.
By doing so, the gas cost in the worst-case scenario is bound to be constant.
Performance and limitation
Comparing with the normal ascending index NFT minting, our random NFT implementation requires two extra SSTORE and one extra SLOAD, which cost 12600 ~ 27600 (5000+20000+2600) excess gas per token minted.
Theoretically, any instantly generated onchain random number is vulnerable. We can restrict contract interaction to mitigate risk. The mitigation is far from perfect, but it is the tradeoff that we have to accept.
ping.eth
Gas Efficient Card Drawing in Solidity was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
同時也有87部Youtube影片,追蹤數超過75萬的網紅志祺七七 X 圖文不符,也在其Youtube影片中提到,✔︎ 成為七七會員(幫助我們繼續日更,並享有會員專屬福利):http://bit.ly/shasha77_member ✔︎ 體驗志祺七七文章版:https://blog.simpleinfo.cc/shasha77 ✔︎ 購買黃臭泥周邊商品: https://reurl.cc/Ezkbma 💛 ✔...
more專欄 在 Beginneros Facebook 的最佳解答
【#知識文章︱你追蹤的IG網紅 有可能不是真人?】
//眾所周知,近年IG網紅的影響力越來越大,但今天介紹的他們,是虛擬KOL。 //
_
► #完整文章:
https://beginneros.com/articleDetail.php?article_id=387
_
► #作者投稿:
Social More Hk|小編分享小技巧
------------------------
<有關知識文章>
為達致「知識共享」的理念,Beginneros網上學習平台設有文章專欄,予作者分享自己的知識。Beginneros亦將會每逢一、四在平台分享精選文章。
有興趣的作者歡迎投稿,一起透過知識連繫不同的人。
------------------------
◆ 每日分享冷知識
◆ 網站:https://www.beginneros.com/
◆ Facebook:Beginneros
------------------------⠀
#冷知識 #香港 #hongkong
more專欄 在 Facebook 的精選貼文
連假四天有什麼活動呢?
如果還沒安排🎾
可以一邊做家事🧘一邊聽書
或是一邊打電動🎮一邊聽書
或是一邊做運動🏃一邊聽書
不管手上做什麼,如果不太需要思考,就來聽書🥳
完全免費!註冊即收聽🎶🎶
連假充實滿滿唷
中秋快樂🤸
more專欄 在 志祺七七 X 圖文不符 Youtube 的最佳解答
✔︎ 成為七七會員(幫助我們繼續日更,並享有會員專屬福利):http://bit.ly/shasha77_member
✔︎ 體驗志祺七七文章版:https://blog.simpleinfo.cc/shasha77
✔︎ 購買黃臭泥周邊商品: https://reurl.cc/Ezkbma 💛
✔︎ 訂閱志祺七七頻道: http://bit.ly/shasha77_subscribe
✔︎ 追蹤志祺IG :https://www.instagram.com/shasha77.daily
✔︎ 來看志祺七七粉專 :http://bit.ly/shasha77_fb
✔︎ 如果不便加入會員,也可從這裡贊助我們:https://bit.ly/support-shasha77
(請記得在贊助頁面留下您的email,以便我們寄送發票。若遇到金流問題,麻煩請聯繫:service@simpleinfo.cc)
#恐怖主義 #伊斯蘭教
各節重點:
00:00 前導
01:15「簡訊設計動畫製作」廣告段落
02:05 什麼是恐怖主義?
03:04 血跡斑斑的恐怖攻擊史
04:32 小心!恐怖分子就在你身邊?
05:57 恐怖分子=穆斯林?
07:30 穆斯林有話要說
08:41 我們的觀點
10:28 提問
10:43 結尾
【 製作團隊 】
|企劃:品維
|腳本:品維
|編輯:土龍
|剪輯後製:絲繡
|剪輯助理:歆雅/珊珊
|演出:志祺
——
【 本集參考資料 】
→當前中華民國反恐對策之研究:https://bit.ly/3xvAFm8
→當代恐怖主義發展對全球安全影響之研究:https://bit.ly/3hpcOit
→全球反恐聯盟及其相關問題之探討:https://bit.ly/3dULjes
→清流雙月刊:https://bit.ly/3xmegYm
→中東恐怖組織之源起與發展 https://bit.ly/3Ay4YKO
→2020 年全球恐怖主義指數:恐怖主義造成的死亡人數達到五年來的新低,但出現了新的風險:https://bit.ly/3yC98jg
→誰是恐怖分子?北倫敦清真寺攻擊案的標籤戰:https://bit.ly/36l9w9B
→穆斯林不譴責恐怖主義?19歲女孩用五千筆資料回答你:https://bit.ly/3hmp8jt
→報告:恐攻致死人數連5年下降 政治極右翼威脅增:https://bit.ly/3qVAtdB
→沒有穆斯林的伊斯蘭恐懼症:https://bit.ly/3jVQhvq
→共產主義恐怖主義:https://bit.ly/36jaZ0f
→蔡孟翰|什麼是恐怖主義:https://bit.ly/3qSCjvH
→劉波:恐懼恐怖主義,還是恐懼伊斯蘭?:https://bit.ly/2SUmuIe
→閻紀宇專欄:「穆斯林不全都是恐怖分子,但恐怖分子全都是穆斯林」你認同嗎?:https://bit.ly/3xpqH5S
→極右派:https://bit.ly/3edPC4T
→Islamophobia:https://bit.ly/36m76rq
→Quarter of young British people 'do not trust Muslims’:https://bbc.in/36oqzaG
→Jalal brothers apologise for prank videos, say court action was a 'good wake-up call’:https://ab.co/3hqxPJw
→Can Terrorism Be Defined? | World101:https://bit.ly/3k2tXQu
→Terrorism_Our world in data:https://bit.ly/3jUkBX7
→Terror attacks by Muslims receive 357% more press attention, study finds:https://bit.ly/3jRfffn
→What Is The Definition Of Terrorism?:https://bit.ly/3qULUSv
→the evolution of islamic terrorism: an overview:https://to.pbs.org/3qW4KJ9
\每週7天,每天7點,每次7分鐘,和我們一起了解更多有趣的生活議題吧!/
🥁七七仔們如果想寄東西關懷七七團隊與志祺,傳送門如下:
106台北市大安區羅斯福路二段111號8樓
🟢如有引用本頻道影片與相關品牌識別素材,請遵循此規範:http://bit.ly/shasha77_authorization
🟡如有業務需求,請洽:hi77@simpleinfo.cc
🔴如果影片內容有誤,歡迎來信勘誤:hey77@simpleinfo.cc
more專欄 在 志祺七七 X 圖文不符 Youtube 的最佳解答
本集廣告與 「【芒狗狗】素養教育學習箱」合作播出
【芒狗狗】素養教育學習箱,是專們為台灣孩子打造的在地原創素養教材,內容針對台灣情境設計。
#芒狗狗素養教育學習箱
#讓孩子的潛力發光
👉🏻 現在參與募資 https://bit.ly/3y06Rid
本集節目內容由志祺七七頻道製作,不代表 【芒狗狗】素養教育學習箱 立場。
✔︎ 成為七七會員(幫助我們繼續日更,並享有會員專屬福利):http://bit.ly/shasha77_member
✔︎ 體驗志祺七七文章版:https://blog.simpleinfo.cc/shasha77
✔︎ 購買黃臭泥周邊商品: https://reurl.cc/Ezkbma 💛
✔︎ 訂閱志祺七七頻道: http://bit.ly/shasha77_subscribe
✔︎ 追蹤志祺IG :https://www.instagram.com/shasha77.daily
✔︎ 來看志祺七七粉專 :http://bit.ly/shasha77_fb
✔︎ 如果不便加入會員,也可從這裡贊助我們:https://bit.ly/support-shasha77
(請記得在贊助頁面留下您的email,以便我們寄送發票。若遇到金流問題,麻煩請聯繫:service@simpleinfo.cc)
各節重點:
00:00 開頭
00:56 【繪本募資】一分鐘廣告
01:48 美國的邊境問題
02:54「非法」還是「無證」?
04:06 川普的移民政策
05:20 那道「又大又美」的牆,後來怎麼了?
06:51 拜登的移民政策
08:28 我們的觀點
09:35 問題
10:00 結尾
【 製作團隊 】
|企劃:力寧
|腳本:力寧
|編輯:土龍
|剪輯後製:鎮宇
|剪輯助理:歆雅/珊珊
|演出:志祺
——
【 本集參考資料 】
→拜登不蓋美墨高牆了! 上任首日推翻川普政策:https://bit.ly/3yOTgKR
→曾被川普當成重要政績 美國防部暫停蓋美墨圍牆:https://bit.ly/34xzg1v
→拜登移民政策大轉彎? 將繼續興建美墨邊境圍牆:https://bit.ly/3yMziAy
→美墨邊境面臨20年最大移民潮,拜登呼籲:「不要再來了!」:https://bit.ly/2Rb6XTE
→Biden tells migrants 'don't come over' in ABC News exclusive interview:https://abcn.ws/3yJSQpj
→拜登上任湧現移民潮 美墨邊界2月扣留近10萬人:https://bit.ly/3yS0X2Y
→美墨邊境移民湧入 拜登指派賀錦麗親自處理:https://bit.ly/34LrEsB
→Biden Denies Reports of Restarting Trump's Border Wall:https://bit.ly/2TlVmlc
→Biden admin to 'surge' aid to Central America, offer 'legal paths' to stem historic migration:https://abcn.ws/3vwMBTH
→Joe Biden's border challenge: reversing Trumpism – podcast | News | The Guardian:https://bit.ly/3i1uH7H
→Biden’s Dilemmas, Part 2: Children at the Border - The New York Times:https://nyti.ms/3c5VnQT
→歐巴馬特赦500萬非法移民 共和黨譏「皇帝」揚言彈劾:https://bit.ly/3c8ouTM
→Why Walls Won't Secure The U.S.–Mexico Border:https://bit.ly/3wLhmEB
→美國邊境拘留所實況曝光》毫無人性!上千移民塞鐵籠,有人擠到只能站著不動,稱女性被迫喝馬桶水:https://bit.ly/3i5Gi5O
→母子冒險走逾千公里 美墨邊境遭擋下:https://youtu.be/Wc5f11Bskco
→美墨邊境偷渡頻繁 人藏貨車活活被熱死:https://youtu.be/7sZ4BRw6xY0
→拆散非法移民家庭,真是川普的錯嗎?:https://bit.ly/3c2WDo0
→邊境圍牆預算卡關 美國聯邦政府停擺 :https://youtu.be/aTOkozlcwNo
→鐵了心築牆!川普宣布:美國進入緊急狀態:https://youtu.be/5iCYGu-tdOk
→擋川普執意蓋牆,13名共和黨議員「倒戈」美眾院通過撤銷國家緊急狀態:https://bit.ly/3uHR58Y
→川普「美墨邊境建牆」仍擋不住?疑毒販挖跨國地道犯罪:https://bit.ly/3wHLJvC
→Privately Funded Border Wall Near Completion In New Mexico:https://n.pr/3yT9jaz
→Trump wall: How much has he actually built?:https://bbc.in/3c5MdnD
→美國法官下令 川普政府須全面恢復追夢人計畫:https://bit.ly/3icAIhI
→Fact Sheet: President Biden Sends Immigration Bill to Congress as Part of His Commitment to Modernize our Immigration System:https://bit.ly/3i61wR4
→移民湧入美墨邊境 收容所擁擠簡陋:https://youtu.be/OvEi4L4I6MY
→美墨邊境監視器直擊 走私客四米高圍牆丟2童至美境內:https://youtu.be/ZwTyx2Ty1CA
→美眾院通過法案 無證移民有機會獲合法身分:https://bit.ly/3i2prk3
→承諾廣收移民 拜登卻維持川普1.5萬人上限:https://bit.ly/3wJbDit
→Immigration Agencies Ordered Not To Use Term 'Illegal Alien' Under New Biden Policy:https://n.pr/3i5EV6U
【 延伸閱讀 】
→【美國大選.特別報導】川普與拜登大相逕庭的移民政策,台美人怎麼看?:https://bit.ly/3fCkxsu
→移動專欄--不合法移民的名稱之爭illegal immigrants 還是undocumented immigrants還是...?:https://bit.ly/3yRQFA4
→美墨邊境生活:https://youtu.be/Mb6ZaAHZnck
→In a ‘Sanctuary City,’ Immigrants Are Still at Risk:https://nyti.ms/3p3AlHZ
→Crying Toddler On Widely Shared 'Time' Cover Was Not Separated From Mother 2018:https://n.pr/3p7gmrC
→Yes, Obama deported more people than Trump but context is everything:https://cnn.it/2R6b0Ar
→KIDS IN CAGES AND OTHER SCENES FROM TRUMP’S “ZERO-TOLERANCE” BORDER:https://bit.ly/3fz3DLi
→From ‘zero tolerance’ to now: How America’s migrant policies have changed in the Trump and Biden years:https://bit.ly/2TqBX2B
\每週7天,每天7點,每次7分鐘,和我們一起了解更多有趣的生活議題吧!/
🥁七七仔們如果想寄東西關懷七七團隊與志祺,傳送門如下:
106台北市大安區羅斯福路二段111號8樓
🟢如有引用本頻道影片與相關品牌識別素材,請遵循此規範:http://bit.ly/shasha77_authorization
🟡如有業務需求,請洽:hi77@simpleinfo.cc
🔴如果影片內容有誤,歡迎來信勘誤:hey77@simpleinfo.cc
more專欄 在 Gavinchiu趙氏讀書生活 Youtube 的最讚貼文
趙氏曾任教於美國Bryant University 、北京理工大學珠海學院、深圳大學、香港樹仁大學、臺灣中央研究院近史所等多間學府,歷任助理教授、副教授、研究員、客座教授、高級訪問學者;
2018年獲中國經濟思想史優秀(一等)著作獎,研究題目包括經濟思想、經濟史、政治經濟學,出版著作二十一部,論文三十餘篇。英國權威出版社 Routledge給予 "中國和西方頂尖學者(leading Chinese and Western scholar)" 的評價。
《趙氏讀書生活》,一個歷史學者的視頻,分享學術、社會、政治經濟觀察
收費平台可獲參考資料和專欄分享,請以每月5元或更多的美元支持:
https://www.patreon.com/Chiusreading
或於YOUTUBE 上按加入成為會員,可獲影片的參考資料
https://www.youtube.com/channel/UCmi1257Mo7v4ors9-ekOq1w/join
https://www.facebook.com/drgavinchiu/
PayPal.me/chiusreading
工作洽談:higavinchiu@gmail.com
#金髮美女
#自私的基因
#演化學