📜 [專欄新文章] EIP-1014 產生可控的智能合約地址
✍️ 飛天的狸貓
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
先前在 Solidity Taiwan 讀書會 群中看到一個討論,裡面應該是一個套利機器人,打開他的合約會發現 Contract 標記著 Reinit,大致上意思是在相同地址上曾經 Self Destruct 後又佈署新的 Byte Code。這其中就用到了 Vitalik 提出的 EIP-1014,來達成在固定的地址上佈署。
合約地址是怎麼產生的
如果對於以太坊智能合約佈署不陌生,應該會知道合約地址是依據佈署者的地址和他的 Nonce 來決定的。假如地址 0xa1 在 Nonce 為 1 的交易中建立了合約,合約地址是 0x01,則當他到了其他鏈而再次使用 Nonce 1 建立合約時,就也會得到相同的合約地址 0x01。
而在以太坊中,Nonce 是嚴格遞增的,這主要是為了避免雙花攻擊,因此很顯然的,再次佈署到同一個地址是不可行的。而在 EIP-1014 以前,在合約中建立的子合約也是透過這個方式達成。
EIP-1014 做了什麼
前面說到合約中可以建立子合約,通常使用的指令是 create,這個指令便會根據主合約的地址與合約本身的 Nonce 來算出子合約的地址。在 EIP-1014 中,提出了另外一個指令 create2,接受的參數是一個 salt 和 init code(建立合約的 Byte Code)。這個指令會透過 keccak256 雜湊,混和參數和主合約的地址來算出子合約地址。
可以留意到,salt 和 init code 都是可控的,主合約地址是固定的,因此就讓子合約地址是可控制的(當然不是說想要產生在哪裡就在哪裡)。在 create 中,Nonce 是漸次增加的,所以無法重複,並且若要控制到特定 Nonce 需要發起多筆交易。
但是當再次佈署到相同地址時,EIP-684 說明若該地址 Nonce 不為零或者存在 Byte Code 時將直接拋出錯誤,因此若要佈署到同一個位置,就必須利用 Self Destruct 來抹去 Nonce 和 Byte Code。
為什麼要 EIP-1014
EIP-1014 在起初是基於 State Channel 的需求,主要是因為某些狀況下可能還沒有要和合約做互動,但需要先知道合約地址。因此只要是需要先知道地址,但沒有要立即使用的合約就十分適合通過這個指令來建立。
例如對於交易所來說,替所有要入金的人建立私鑰有管理上的問題,若透過智能合約則相對有彈性,但卻不是所有申請地址的人都真的會入金,此時就適合利用這個指令先行取得地址,當真的有入金時再佈署合約。
如何使用 EIP-1014
除了直接寫 Opcode 以外,Solidity 0.6.2 加入了利用 create2 建立合約的語法。使用方式是 new Contract{salt: someByte}(...args),其中 new Contract(...args) 就是傳統的佈署方式,而 someByte 是一個 bytes32。
資安疑慮
回到開頭,Etherscan 之所以會標記 Reinit 則是因為可能有資安的疑慮。回顧地址產生的過程,兩個參數都沒有限制條件,因此碰撞的可能也是存在的。如果不肖人士先佈署一個正常的合約,接著通過 Self Destruct 刪除後再佈署假的合約,就可能讓沒注意到的使用者上當。
但或許因為碰撞的機會太低,所以並不太構成問題。而若真的要從使用者的角度防範,可以通過檢查合約有沒有 Self Destruct、Delegate Call、Call Code 指令(如果沒有的話無法刪除合約,再次 create2 時就會被 revert)來避免。
2021/4/23 補充
後來看了幾個討論,也想了一下,資安的疑慮應該遠不只上面這麼簡單。
例如一個宣稱鎖定 ERC-20 代幣的合約,雖然使用者可以檢閱程式碼,並確認其中解鎖 function unlock() 必須在 uint256 block 之後才能執行,並且 block 是無法變更的,但攻擊者可能透過上述方法來消除 block 狀態,進而提前執行 unlock。
參考資料
https://consensys.net/diligence/blog/2019/02/smart-contract-security-newsletter-16-create2-faq/
https://www.chainnews.com/zh-hant/articles/803272341363.htm
如有錯誤敬請指正,原文載於:https://limaois.me/archives/265
EIP-1014 產生可控的智能合約地址 was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
diligence意思 在 AppWorks Facebook 的精選貼文
與機構投資人談募資?怎麼談。
電影裡很常演在咖啡廳聊兩句,投資人就說「好!我投你兩百萬!」的夢幻戲碼,這種情境劇在現實生活不是沒機會發生,但在跟機構投資人聊募資時,近乎不會發生。
機構投資人必須向他們的股東負責,盡受託人之注意義務與忠實義務 (Fiduciary duty),因此決策要經過縝密的調研與思考,不可輕忽隨便,所以幾乎不可能一瞬間決定。到底向專業創投募資這件事情,從頭到尾有哪些關卡?過關斬將前,不妨先了解一下。
#接觸投資人
募資最常的起手式不外乎就是見投資人,如上次提到的,創業者需要先分辨適合自己的創投,然後再去接觸,會有助於提升一點成功機率。而要與投資人搭上線,除了自己主動開發外,透過其他創業者,或者是既有投資人推薦其他案子合作過的創投,都有助於提升信任感。當然,許多時候是創投主動出擊來開發案源。
#投資人盡職調查 (Due Diligence, DD) 與內部投資決策會議
經過幾次了解後,如果團隊與投資人有意願往後談,就會進入到 DD 階段。在這個階段,投資人會極力去取得評估所需要的資訊,不單只是包含產品或服務在數據上的表現,也會對團隊成員、市場...等諸多資訊,評估後多數時會產出一份投資評估報告,在創投內部的投資決策會議討論,決定參與與否以及期望放入的條款。這個期間可長可短,如果時間拉得較長,小秘訣是與投資人保持聯絡,並且將最新的更新讓投資人同步知道,避免才不會產生資訊上的落差,造成誤會。
#投資合約
在投資人回覆想要參與本輪增資後,故事大概進行到一半,也開始進入創業者較不熟悉的階段。於此同時,有個關鍵角色會加入,就是一位 #好的律師。從製作合約開始到完成,需要依賴創業者、律師以及投資方密切的溝通。如果負責案子的律師,對於投資案的熟悉程度不夠,或者溝通的不夠到位,都可能造成案子的延遲。談投資合約時,除了了解字面的條約意思,團隊可以多多想像這些條約對於未來公司發展的影響,同時也試著從投資人的角度去思考,為什麼需要者些條約去保護他們投入的資金。
#簽約打款與Closing
假如你一路過關斬將走到簽約,故事也到了尾聲,不過就像做投資一樣,現金落袋之前,一切都還說不定,務必要神經繃緊到最後一刻,確認資金已經進到銀行。在投資人打款後,團隊也要用最快的速度完成後續的文件處理,如股東登記以及章程變更等等。
談募資的過程,在以上任何階段,都可能發生你預料之外的事,來延長募資的時程,所以團隊在準備募資時,也務必預留給自己充足的時間 (一般來說建議還有 9 個月跑道時啟動下一輪募資,最遲不要低於 6 個月跑道),避免落入現金即將耗盡,下一輪資金卻尚未到位的窘境。
系列回顧
募資這件事,除了錢以外,你了解了多少:https://bit.ly/2FDVaHw
找投資人前,先知道投資人怎麼分: https://bit.ly/3o2Etaf
By Ching Tseng, AppWorks Associate
diligence意思 在 君子馬蘭頭 - Ivan Li 李聲揚 Facebook 的最佳貼文
[LVMH彈弓手唔買Tiffany]Tiffany當然告上法庭,但LVMH話法國政府唔畀,因為美國要收關稅。
TLDR:LVMH連法國政府都出埋,彈弓手唔買Tiffany,照計都係想壓價。Meanwhile Pandora即升,照計純係巧合,但Pandora呢檔嘢真係成功到一個點—仲賺錢過Tiffany。三十幾年歷史嘅公司,朱義盛穿珠仔,泰國廠,可以扮歐洲名牌,行銷一絶。
LVMH scraps $16.2 billion deal with Tiffany(https://bityl.co/3QRM)
1. Er….有點複雜,但簡單嚟講,就係LVMH(冇錯係LV母公司)彈弓手,之前話咗買Tiffany(冇錯係嗰間Tiffany),而家改變主意,唔買咯。Tiffany 當然把幾火,畀你睇晒全相(當然要做Due Diligence)而家話唔買就唔買?玩泥沙嗎?傾好晒架喎。所以就要告LVMH了。
2. 誰是誰非?唔知,我相信你都唔知。法律嘅嘢,上法庭咪知,就唔好大家喱文拗話「唔係講下喎,簽咗都可以唔算數?」「有不可抗力條款」。上法庭慢慢玩飽佢,反正大公司錢多,特別係LVMH
3. 可以參考下,之前私募基金買Victoria Secret,都係在肺炎後撻咗Q(https://bityl.co/3QR4)。當時唔少專家(真專家)都幾意外,居然可以咁walk away
4. 肯定嘅係,導火線一定係肺炎。呢單刁係大半年前,舊年10月尾的,已經兩個世界啦。但未必係好似你咁諗。我嘅陰謀論,就梗係LVMH想壓價,分分鐘最後仲會傾得成。法庭咪法庭咯,和解都成日見啦。正如Tiffany亦只係為股東R最大利益. Nothing Personal, it’s all about business.呢個係我上星期廿幾三十年後重睇《教父》,其中一個領悟。Don Corleone 個仔畀人射到變蜜蜂竇都係咁照同仇家坐低傾,Michael Corleone嗰頭話完「傻啦姐夫唔通我忍心家姐變寡婦咩,冇事嘅,坦白照講啦,但唔好當我白痴」—講完轉頭就搵人勒死佢啦!it’s all about business
5. 你話疫情下經濟不景奢侈品銷受大受打擊?Yes and No.打擊梗有,但睇邊個檔次嘅奢侈品。由愛馬士到LV到Tiffany到Pandora到Swarovski已經十幾廿層。正如Gigi Hadid(唔好意思,仲係停留嗰個年代)又model,求撚其在喜愛夜蒲台北篇出現咗幾秒嘅妹妹仔又model,身價都爭好遠。
6. In general,打擊當然係有,但亦唔止係因為啲友冇錢,好大程度係因為冇得出遊,特別係大陸人冇得去歐洲。但你睇股價呢?唔覺好大打擊。你睇愛馬士LVMH之類嘅股價,離新高其實都唔遠。
7. 所以,我都係覺得LVMH係壓價。呢啲係為股東負責嘅表現:九蚊買到嘅嘢,唔使用十蚊買。
8. Tiffany嘅股價,一早有LVMH個出價頂住,所以並不反映「基本因素」。但你見LV一話唔買股價就插10%(收市都仲跌6%),有理由相信,LVMH係可以壓低啲個價。直接啲講就LVMH唔急,你急之嘛。Tiffany檔次低,仲要比較多係嚟自美國,呢個時勢似乎麻麻地—當然呢兩個特點正係最初LVMH買佢嘅原因,但此一時佊一時。當中種種,舊文有寫過(https://bityl.co/3QRb)
9. LVMH最聰明嘅係,擺政治上枱!點解唔買?LVMH嘅官方理由,唔係想壓價(冇人會咁講),唔係因為營商環境唔同咗,係最衰當撈侵!加關稅!要收法國貨品關稅。咁就唔傾啦,當Material adverse change(https://bityl.co/3QR3)
10. 唔止,連法國政府都擺埋上枱!。成件事都幾神秘下,LVMH大股東兼歐洲首富Bernard Arnault話法國政府寫信畀佢要佢Hold住,1月之前都唔好close(埃汾按:仲唔係針住美國總統?)。咁LVMH冇得揀,就唯有聽話。
11. 背後玩乜?問佢地先知,但Bernard Arnault在法國權力當然極大。係佢擺法國政府上枱,定係法國政府同佢白面黑面,等Tiffany去嘈(埃汾按:有咁大影力?)迫美國唔加關稅,就問佢地先知了。當然美國又會話係法國要收美國公司數碼稅在先,不如由美國獨立開始計起啦,由路易士安那新奧爾良雞翼開始講,慢慢拗
12. 至於嗰封法文信(法國政府寫畀Bernard Arnault唔通寫英文?),係冇公開過嘅!Tiffany都冇見過正本,但當然話法國政府冇可能咁使橫手。就告LVMH,要佢11月(原定死線)前科水,唔好扮嘢
13. 都係嗰句,背後玩乜真係問法國佬先知。到底LVMH真係想買而買唔到,定係想買,定係只係壓價,都冇人知,當然我估係想壓價。因為LVMH之前已經有前科想拉Tiffany埋枱傾過個低啲嘅價,但Tiffany冇睬佢。
14. 結論?唔知。法律嘅嘢。表面睇嚟,個Deal terms似乎唔多容許LVMH就咁行走。之前報導過,Tiffany可以畀6億美金然後反口唔賣,但買家冇呢個option.「唔公平!」。係喎,有人拎支槍迫LVMH簽?我地唔係講緊柬埔寨雛妓下話?
15. 不過啦喎,拉到法國政府落水,又唔同玩法。亦可能因為見到個Deal terms冇乜空間,所以出呢招。當然也不排除係法國政府見到呢個機會去搞搞佢,甚至政府同LVMH齊齊坐低諗都仲得。
16. 股價反應先最重要,Tiffany當然即刻跌,一度跌10%,收市跌6%去到114蚊—留意LVMH出價係135蚊,似乎市場都覺得撻Q機會幾大。但打從肺炎爆發,Tiffany股價都大跌過幾次,因為一路都覺得LVMH有機會反口。
17. 不過最頂癮,應該都係Pandora!股價同時大升!唔知關乜事?可能只係巧合。不過舊年其實有人寫過,萬一LVMH真係買唔到Tiffany,咪買Pandora咯。三份一價錢之嘛。邊個寫?之唔係我(https://bityl.co/3QRd)。
18. 當然你會話檔次不同,唔係同一回事。但,根本最初LVMH就係奢侈品美心味將軍,多品牌,就係想要平價線先要Tiffany(當然另一重點係Tiffany主力美國,而LVMH在美國較弱)。
19. 冇錯Pandora係朱義盛穿珠仔,但有乜所謂,搵到錢就得。麥當勞KFC夠賣垃圾食物,但你邊間米芝蓮餐廳市值大過佢?之前寫丹麥股(https://fbook.cc/3FHF)市都寫過,Pandora今年股價不知幾強勁。
20. 丹麥股市都寫,堅唔堅?記得支持下埃汾Patreon.一星期至少三篇港美市場評點,一個月一舊水唔使,開張一個月已500人訂!仲有兩篇免費試睇:(https://bit.ly/31QmYj7).廣告完。
21. 拿,當時寫文咪話買Pandora係Tiffany三份一價錢?當然係講市值。但此消佊長,而家Pandora市值追到有Tiffany一半了。你計純利,計賺幾多億,其實Pandora仲高過Tiffany!只係Tiffany個PE高啲咁解。
22. 舊文有寫,Pandora嘅純利率極高,食水好深,諗真啲應該不意外,都話朱義盛穿珠仔當名牌,marketing極成功。佢純利率講緊22%—LV,Tiffany,Kering(姑池母公司)都只係15%樓下。就只有愛瑪士做到25%,但另一樣嘢
23. 當然我估最後LVMH最後都買得成Tiffany,買唔成都唔會走去買Pandora,但的確Pandora升極都有,年頭三舊水(丹麥克郎,丹麥冇用歐元呀下),而家五舊。如果3月低位計,直頭就兩舊升到五舊。實情當年LVMH話買Tiffany,本人都係近乎華文媒體第一個寫,因為星期日記者放假,但埃汾唔放假。
24. 當然「買唔到Tiffany,不如買Pandora」呢啲咁無聊嘅angle更加係我先會寫。不過Pandora真係好東西,食水夠深。丹麥(?!)品牌,間公司仲後生過我(是真的,1982年先出世!),泰國廠,但可以扮歐洲名牌,真好嘢。再講一次,marketing一絶
———————————————————
Ivan Patreon 狼耳街華人,一星期至少三篇港美市場評點,一個月一舊水唔使,開張一個月已500人訂!仲有兩篇免費試睇:https://bit.ly/31QmYj7
——————————————————————————
[收費短片第九擊]美股科技股是否泡沫爆破?價值投資之選
課程資訊:https://homebloggerhk.com/course_detail/?code=CC009
內容:
*美股急跌點算好
*科技股係咪泡沫爆煲?
*有乜價值投資之選?
本星期內特惠售價: $80
課程編號:CC009
觀看期限:首次播放後一星期及限每影片4次
客服whatsapp: 63832145
另外想買返第八擊(美國總統大選股票部署)都仲可以:https://bityl.co/3NPn
diligence意思 在 識富天使新創加速計畫- 「DD」Due Diligence (中文多翻為 ... 的推薦與評價
「DD」Due Diligence (中文多翻為「盡職調查」, 但翻譯為「核實調查」會更易理解)... ... <看更多>