[爆卦]byte意思是什麼?優點缺點精華區懶人包

雖然這篇byte意思鄉民發文沒有被收入到精華區:在byte意思這個話題中,我們另外找到其它相關的精選爆讚文章

在 byte意思產品中有3篇Facebook貼文,粉絲數超過3,460的網紅Taipei Ethereum Meetup,也在其Facebook貼文中提到, 📜 [專欄新文章] EIP-1014 產生可控的智能合約地址 ✍️ 飛天的狸貓 📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium 先前在 Solidity Taiwan 讀書會 群中看到一個...

byte意思 在 Kenneth Lau Instagram 的最讚貼文

2020-05-11 21:49:36

/ 近這一兩年爆 hit 的全新生字,都是用 blending 寫成一些合併字,大家應該都認識有: phubbing 低頭族 (phone + snubbing) emoticon (即是有 emotion 的 icon) edutainment (現在教育也講娛樂成份) hellabyte (數量...

  • byte意思 在 Taipei Ethereum Meetup Facebook 的最佳貼文

    2021-04-24 00:57:11
    有 9 人按讚

    📜 [專欄新文章] 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.

    👏 歡迎轉載分享鼓掌

  • byte意思 在 Weifan Chang 張衞帆 Facebook 的最佳貼文

    2018-06-22 11:25:58
    有 36 人按讚


    剛看了Dark Soul作曲家Motoi Sakuraba的專訪,有一段很有意思

    GS: What kind of research do you need to do for your work?

    你為你的工作做了什麼研究?

    MS: I do not make any research.

    Motoi Sakuraba:我沒有做任何研究

    其實我覺得創作上有意思的地方就是這個。創作這件事並沒有什麼明確的邊界和對錯。創作者的經歷和對故事解讀的角度就是創作的本身,而這些部分也許可以用一些技法來代替,我說,運氣好的話。

    以我的經歷來說,我覺得很多很棒的創作都非技法的本身,而一種態度、一種角度。這部分不見得研究就可以得到什麼,好好活著,自己把事情想清楚再把想法提出來,這才是最重要的事。

    https://www.gamespot.com/…/sound-byte-meet-th…/1100-6337813/

  • byte意思 在 Lamp Disco Facebook 的精選貼文

    2016-06-21 21:33:33
    有 137 人按讚

    6/25這個禮拜六,我們有來自智利的世界冠軍DJ Byte!!別錯過了喔

    BTW那時看到他在2015東京的演出後,心想:這人的出頭太多了,無論他有沒有贏都一定要敲來表演,誰知道真的冠軍了,價格立刻三級跳的意思⋯

    影片在這,無聊就認真看完它不要滑走,看完你們會懂我的感覺的!