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

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

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

eip意思 在 BusinessFocus | 商業、投資、創科平台 Instagram 的最佳解答

2021-05-10 11:10:00

【@businessfocus.io】就算SpaceX指衛星登月計劃可接受「狗狗幣」,但一晚幣值竟然下跌超過4成,散戶唔驚就假。 . 「狗狗幣Dogecoin」擁躉之一的Tesla創辦人馬斯克終於客串主持了美國 NBC 的《週六夜現場》,豈料他在節目中承認「狗狗幣是一場喧擾(hustle)」,觸發狗...

  • eip意思 在 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.

    👏 歡迎轉載分享鼓掌

  • eip意思 在 動區動趨 BlockTempo - 由社群而生的區塊鏈媒體 - Media for Blockchain Facebook 的最佳貼文

    2020-04-18 13:07:14
    有 17 人按讚

    #以太坊 #Vitalik #技術專欄
    【ETHFANS 專欄|借鑑 V 神,以太坊 2020 路線圖與展望】

    ⚡️前陣子你可能錯過了一條消息,Vitalik Buterin 在推特上發了一個 <個人心中的以太坊路線圖>,僅此內文試著從這份路線圖預覽以太坊 2020 年可能出現的亮點

    從當前來看,以太坊上可能發生的進展的粗略順序如下,而 #信標鏈 是最多人致力於在 2020 年實現的項目

    1. 信標鏈(Eth2 Phase 0)在 2020 年推出
    2. LS12-381 曲線預編譯在 2020 年推出(也許這個才是最早推出的)
    3. 如果有人來推動帳戶抽象化和 EIP 1559,他們有可能會在 2020 年推出
    4. Eth2 Phase 1
    5. Eth 1.x 無狀態性
    6. eth1 -> eth2 大合併
    7. (後續)執行模式、隱私和安全性提升、高級密碼學元件

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

    2017-12-18 10:53:18
    有 5 人按讚


    📜 [專欄新文章] What do ERC and EIP stand for?
    ✍️ mingderwang
    📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium

    ERC stands for Ethereum Request for Comment

    最近流行 CryptoKitties , 上次 Taipei Ethereum Meetup 社團活動 討論它的原始碼程式時, 發現 github 裡 cryptokitties-bounty 程式碼提到它是用 ERC-721 token 標準來定義每隻加密貓. 也就是:

    “CryptoKitties are non-fungible tokens (see ERC #721) that are indivisible and unique.”

    也許大家比較熟悉的是 ERC #20. 它是比較早期訂出的 Token 標準. 所以後來想要在一般虛擬幣交易所能交易的 tokens (代幣), 就會用這個標準來寫程式. 也就是後來 ICO 快速延燒的主要原因.

    那麼, ERC-721 跟 ERC-20 有什麼不同, 簡單說就是: ERC-721 是用來定義 Non-fungible token (不可替代的代幣). 每個 token 是 unique (唯一的), 不像 ERC-20 每個 token 都相同.

    以上用加密貓舉例, 是讓大家體會一下什麼是 ERC, 但 ERC 不是只用來討論代幣, 還有其他各式各樣的 ERCs, 因為它是 Ethereum Request for Comment 的縮寫, request for comment 是徵求大家意見 的意思.

    EIP stands for Ethereum Improvement Proposals

    很像有人寫過類似的 EIP 介紹, 但我還是從 ERC 的角度再介紹一次.

    它的清單在 EIPs 裡. 你可以看到討論的過程, 追蹤這些 EIPs 的新訊息, 也許有幫助理解 Ethereum 開發團隊的未來動向; 甚至你也可以全程參與.

    大家都希望 Ethereum 網路的未來技術走向不要集中在幾個硏發人員的手裡, 所以才開放給大家提出 Proposals (建議), 用來改進 Ethereum, 決定未來開發方向. 這就是每個人每件跟 Ethereum 未來發展有關的事情, 都能用 EIP 建議格式 (EIP template) 提出來. 只要被大家選上, 就會正式列入 EIPs 清單.

    而, 你會看到 EIP 定義或討論 issues 裡, 常常會看到它相關的 ERC, 也就是, 討論過程中, 有一些要徵求更多人意見時, 就會把它細節定義放在 ERC 裡. 而且他們會用同一個號碼, 比如 ERC-20 就是對應到 EIP-20.

    簡單講, 討論項目, 一開始會用 EIP 提出建議, 結果與細節會定義在 ERC, 最後會 final (拍板定案), 放在 EIP 清單裡 Finalized EIPs 區.

    (這是我的個人研究與認知, 如果不對, 請留言)

    What do ERC and EIP stand for? was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.

    👏 歡迎轉載分享鼓掌