先前我們在《報酬順序》的文章中談到,以「平均報酬率」(Average Rate of Return)來做財務預測,最怕的是在試算初期報酬率不如預期的狀況,同樣的年化報酬率,順序調換後對最後剩餘的資產會有截然不同的影響。
在回測上都是利用已發生的過去報酬來進行測試,每一年報酬多少、如何排序都是固定的,按照這樣做常常落入「追逐高報酬」的陷阱。
我們常引用的年化報酬只是理論上的數據,都假設市場每年有多少報酬,但現實中每年的報酬都起起伏伏。
報酬率是我們參考以及評估投資項目、規劃很重要的資料,希望能鑑往知來,但如同綠角在《提領計畫的常見錯誤看法》的文章中寫到:大多數人在做退休時並沒有把順序的重要性考慮在內。
制式的退休計算,完全沒有考量報酬順序,是一種不及格的思考模式。
所以William Bernstein將這種假設每年報酬都一樣的退休計算,稱作Retirement Calculator from Hell─地獄來的退休計算機。
考慮報酬順序的重要性,我們需要考量何時發生熊市,考量我們的資產何時受到傷害。
以往財務運算需要繁雜的電腦技術和大量重複的抽樣,計算成本高且耗時,這一點隨著電腦科技的發展而被改善。
以我自己為例,從EXCEL試算一個案件大約需要半小時,透過系統可以進化到5分鐘內完成。
簡單來說:
蒙地卡羅像模擬城市、模擬飛行,可以幫助我們模擬人生的財務狀況。
蒙地卡羅模擬法可利用上百甚至上千種不同的市場現象來測試某項策略,比起平均報酬率法,蒙地卡羅模擬法是基於大數法則的實證方法,當實驗的次數越多,其平均值也就會越趨近於理論值。
閱讀全文:https://www.pgfinnote.com/monte-carlo/
引用次數多少算高 在 Taipei Ethereum Meetup Facebook 的最佳解答
📜 [專欄新文章] EIP2929, EIP2930 簡介
✍️ Anton Cheng
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
Opcode 加油Proposal,會不會讓以太坊變更貴呢
昨天在同事的推薦下發現了這個YouTube系列:Peep an EIP,也聽了Vitalik和Martin介紹EIP2929 + 2930的這一期。這兩個EIP都已經被列入下一次的硬分岔(Berlin Hardfork),所以我就來寫個學習筆記。先打個預防針,本人對EVM可以說是非常不熟,但也希望藉著這個機會逼自己學習,如果有錯誤的話也希望懂的更多的各路大神可以不吝賜教。
Berlin without hardfork. (By Claudio Schwarz on Unsplash)
EIP2929: Gas cost increases for state access opcodes
乍看之下這是一個極為恐怖的Proposal。在Gas已經高到爆炸的2021年,理論上不應該再通過這種「加油」類的方案。不過不用緊張,其實這個EIP真正改變的是第一次access的價格,如果一筆交易內要執行一樣Opcode動作輛次,那麼gas cost 將降低為100。
Increases gas cost for SLOAD, *CALL, BALANCE, EXT* and SELFEDESTRUCT when used for the first time in a transaction.
大家都知道,合約最終會被Compile成一堆Opcode,這些Opcode也是用來計算最終交易手續費的依據:理論上越是花時間的的Opcode,應該要收越高的手續費。
但是一直以來,state access opcode 太便宜都是一個已知的問題:在2016年的上海DOS攻擊中,其中幾個攻擊的手法就是透過惡意交易大量讀取帳戶資訊、大量的創造合約再銷毀,或是不斷用 EXTCODESIZE 來讀合約大小等等,讓Client必須花大量的IO資源處理交易(需要讀寫disk的動作特別慢),最終使Client程式Crash或是延長出塊時間。儘管大部分的弱點已經透過EIP150中大量提升gas cost獲得改善(還有其後的EIP1884),但在EIP2929中,也引用的這篇Paper的數據:現在replay所有以太坊上的交易,當時那些惡意交易中的worst case還會需要~80秒才能完成。這跟以太坊所定義的13秒出塊時間有著很大的差距,也代表這個潛在的攻擊是可行的。
透過增加這些opcode所需要的gas cost,可以降低每個區塊最大可能的讀取數。以下是偷抄Vitalik PPT 的數據:(12,500,000 為gas limit上限)
Pre-EIP 2929:
BALANCE spam: 12,500,000 / (400 cost + 320 address size + 50 boilerplate) = 16,233 accesses per block
CALL spam: 12,500,000 / (700 + 320 + 50) = 11,682 accesses per block
SLOAD spam: 12,500,000 gas / (800 + 25 boilerplate) = 15,151 accesses per block (but of a smaller tree)
Post-EIP 2929:
BALANCE spam: 12,500,000 / (2,600 + 320 + 50) = 4,280 accesses per block
CALL spam: 12,500,000 / (2,600 + 320 + 50) = 4,280 accesses per block
SLOAD spam: 12,500,000 / (2,100 + 25) = 5,882 accesses per block
說實在的這個數據的解釋也很廢話,就是把Opcode變得用貴,能Spam的數量越少。平均來說Gas cost 變高3倍,所以之前worst case的80秒執行時間可以被下降到大概 ~27秒。
SSTORE changes
在實作層,EVM會維繫一個本筆交易讀取過所有交易的 Set。每次有尚未讀取過的slot時,就會先收取一筆 CLOD_SLOAD_COST (2100) ,然後把這個slot加入這個set中,下次讀寫就會比較便宜。
對於已經讀取過的Slot,再次寫入的Opcode SSTORE 之gas cost為會降低為
5000 — COLD_SLOAD_COST (2100) = 2900
簡單的說,單純只操作一次 SSTORE 的總gas 會維持一樣在 5000 。但如果這個slot是之前有讀過的,則寫入的gas cost就會降低。近一步來說,一個 x += 100 ,其實會變得更便宜:
Pre-EIP-2929: 800 SLOAD + 5000 SSTORE = 5800
Post-EIP-2929: 2100 SLOAD + 2900 warm SSTORE = 5000
其他Side effects
這個改動除了降低了最高能夠spam的次數以外,也降低了以太坊想要做到stateless client,理論上最大的witness 大小。其實這裡的原理跟前面很類似,下圖的表格比較的是目前使用hexary tree所需要的witness大小:若12.5M的區塊全部塞滿該Opcode的witness,理論上最大會佔多少空間。在EIP2929之後由於gas cost增加,就壓縮了最大可能的witness size.
這裡單純只比較增加gas cost後,對於max witness size的影響。影片中有提到其他許多方法旨在減少Witness bytes,包括使用binary tree而不是hexary tree,以及用Code Merklization等等。這些其他方法也能夠降低最後的Max Witness size,但跟這個EIP沒有直接相關。不過可以注意的一點是,這些其他在witness size上面的優化跟 gas cost 所帶來的優化的效果是可以相乘的,例如 SLOAD,更改gas price已經能夠讓max size 縮小2.6倍,若是改用Binary tree可以將 Witness bytes降低到 288 bytes,就會是再3~倍的優化。
對用戶的影響
依照Martin Swende 給出的數據,這個EIP對於一般交易的影響僅有提高0.3~0.4%。理由很簡單,雖然第一次access storage變貴了,但是後面幾次讀寫就會變得便宜。大部分應用的程式邏輯都是類似的幾個變數進行讀寫,因此可能有不少的動作反而會變得更便宜。一個最簡單的例子就是ERC20 Transfer,兩個餘額的 +=和 -= 都會變便宜,所以總共的花費也是變便宜的。
這其中也會對於Solidity的開發pattern有著一定程度的影響,我目前想到的影響可能有兩個:
由於多次的storage access變便宜,永遠cache state variables不再是一個最佳策略。以前我們會盡量想辦法減少寫入state storage的次數,現在可能會基於coding style考量減少一些的memory cache。
之前寫合約都會盡量避免external call,甚至會寫一些一次把所有 variable都回傳回來的笨函示,來避免多次的external calls。這有一部分原因是因為每次external call都會需要使用到 EXTCODESIZE 這個Opcode所以很貴。但如果 EXT 系列的Opcode也變得越call越便宜,那麼這個一次全部call 回來cache 住的pattern也可能改變。
以上兩個想法都還沒有經過實證,如果之後看到更有證據的分析的話,也會來這裡分享。
EIP2930: Optional access lists
EIP2929可能會影響一些鏈上的合約,因為有些合約有hardcode external call的gas 上限。對於這方面的問題,EIP2930提出一個新的交易類型,讓交易中多帶一個access list,即所有這筆交易即將讀寫的storage slot,並且先幫忙付掉第一次讀寫的gas,而真正交易讀寫該storage時,只會被要求付100 gas。
這不但可以避免這次EIP2929帶來的副作用,也可以被使用在其他因為gas price 改變的硬分岔升級而壞掉的合約,例如在EIP1184 增加 SLOAD gas price 時影響到的 Aragon 和Kyber 等等。儘管當時升級前各大專案都有幫助用戶提出migration 方案,但如果有人曾經卡錢在裡面,也可以Follow一下這次柏林Hardfork。
小結
新的一年就用一篇簡單的文章來開頭。最近發現自己以前的學習習慣有點亂無章法,所以新年整理了reading list,逼自己做筆記,順便發想一些想要寫的主題。今年的期許就是學更多Ethereum底層一點的知識,當然還有上層一點Defi的知識。也歡迎大家分享一下自己都是怎麼follow這麼多東西的><
EIP2929, EIP2930 簡介 was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
引用次數多少算高 在 Facebook 的最讚貼文
#葉郎每日讀報
▼ 1. 脫身良機:萬達可能準備(或者已經)出售部分AMC股票
│
在日前的鄉民大戰華爾街的戰役中成為炒作對象的 AMC 娛樂上週五向美國SEC證交會提出一份文件,顯示其大股東中國萬達集團將其持有的B級普通股轉換為A級普通股。這種轉換會損及股東的投票權,甚至有機會使萬達失去公司的控制權,所以一般會這麼做都是為了進行股份出售獲利了結。萬達在2012年以26億美元收購了AMC的多數股份而取得這家世界最大連鎖電影院的控制權,是當時中國民營企業最大的海外收購個案。提交美國證交會的文件看不出來萬達實際轉換了多少A類普通股,也看不出來是否已經開始出售股票。在這波鄉民炒作潮中,AMC股價一度攀上將近每股20美元高點,但上週五收盤時已經跌到6.83美元。
(報導原文:https://bit.ly/2O9YSws)
│
│
▼ 2. 如何用一首爛歌在 Spotify 上致富(然後被逮)
│
網路媒體 Vice 仰賴一些數據和科學道具,完成了一個「一首歌發大財」的神奇計畫:他說如果你用自己的 Spotify 帳號連續播放自己的歌前30秒(版權計次基準)24小時,大約可以獲得7.89英鎊的版權費收入。雖然無法賴以維生,但也算是一筆額外收入,唯一的缺點是必須忍受自己的音樂,因為靜音播放將不被 Spotify 計入次數。接著作者引用了台灣寶可夢阿伯的國際知名案例,建議用上成本最低的 Raspberry Pi 樹莓派主機板360部,並用最容易取得的 IKEA 衣櫃當機櫃。如此一來,360個帳號(當然要用最划算的家庭帳號)連續播放自己的歌前30秒一整年,將有機會使你賺到超過100萬英鎊。問題在於這種版權費農場的神奇機制早就被 Spotify 看破,並將「用自動化程序操弄」列在違反使用者條款的態樣中。It's over Anakin. Spotify have the high ground!
(報導原文:https://bit.ly/3p3VHDg)
│
│
▼ 3. 馬上要變成好萊塢大亨的 Amazon 執行長接班人
│
隨著 Amazon 創辦人 Jeff Bezos 宣佈要交出執行長位置,原本主管 AWS 雲端運算服務、從來沒有任何媒體產業經驗的 Andy Jassy 將毫無準備地在今年夏天擠身成為好萊塢大亨。Amazon 的執行長一職毫無疑問符合是好萊塢大亨的標準:Amazon 不僅經營有7500萬用戶的串流服務 Prime Video,同時也擁有全球直播平台霸主 Twitch,此外他們的 Fire TV 機上盒平台以及 Channels 服務更是牢牢掌握了美國 5000萬人的電視機入口。著名的洛杉磯鄉野奇談是 Bezos 曾在 Prime Video 辦公室咆哮,質問為什麼我們還沒有自己的《Games of Thrones 冰與火之歌:權力遊戲》,隨後 Amazon 立刻以2.5億美元的高價搶走《Lord of the Rings 魔戒》的電視改編權。這十足顯示了 Amazon 執行長這個位置對好萊塢吹皺一池春水的影響力。即將上任的新執行長 Andy Jassy 雖然沒有好萊塢媒體經驗,卻已經用過去主管的雲端運算業務和數家好萊塢片廠密切合作多年。對許多片廠來說,他都不是一張新面孔。
(報導原文:https://bit.ly/3oY9cnV)
│
│
▽ 其他今天也可以知道一下的事請見留言