คุณทุกคนคุ้นเคยกับโทเค็น ERC20 เนื่องจากคุณอาจเป็นเจ้าของสองสามตัวซึ่งแจกจ่ายโดยการขายโทเค็นบางประเภท แต่คุณรู้หรือไม่ว่ามีมาตรฐานอื่น ๆ อีกมากมายนอกเหนือจาก ERC20 Ethereum มีมาตรฐานที่พัฒนามายาวนาน.
เพื่อให้คุณมีความคิดที่ดีขึ้นว่า ERC หมายถึงอะไรจึงย่อมาจาก“ Ethereum Request for Comment” นี่คือข้อเสนอที่ส่งมาเพื่อการอภิปรายและข้อเสนอแนะต่อมาตรฐานที่แท้จริง หมายเลข (เช่น 20) หมายถึงหมายเลขปัญหาบนแพลตฟอร์มการแชร์รหัส Github. ก่อนอื่นมาดูมาตรฐาน ERC20.
มาตรฐาน ERC20
มาตรฐาน ERC20 คืออะไร?
การถือกำเนิดของโทเค็น ERC20 ได้ปฏิวัติตลาดคริปโตเคอเรนซีและเปิดประตูไปสู่ ICO cryptocurrency โครงการที่ทั่วโลกได้เห็นในช่วงปี 2017 ซึ่งเปิดตัวในปี 2015 รหัส ERC20 จะแสดงรายการกฎเฉพาะที่โทเค็นที่ใช้ Ethereum ที่กำหนดต้องปรับใช้ทำให้กระบวนการเขียนโปรแกรมฟังก์ชันของโทเค็นบนบล็อกเชนของ Ethereum ง่ายขึ้น โดยทั่วไปโทเค็น ERC20 เป็นสัญญาอัจฉริยะรูปแบบพิเศษที่ใช้บล็อคเชนของ Ethereum.
ตัวอย่างที่โดดเด่นที่สุดของโทเค็น ERC20 ได้แก่ Bancor, EOS, Tronix, BNB, VeChain และ Bankex.
ก่อนที่จะมีการสร้างมาตรฐาน ERC20 สำหรับโทเค็น Ethereum ผู้เข้ารหัสต้องสร้างมาตรฐานการใช้งานเฉพาะสำหรับการพัฒนาโทเค็นและเปิดใช้งานบนเครือข่ายของ Ethereum อย่างไรก็ตามรหัสโทเค็น ERC20 ได้ทำให้กระบวนการสร้างโทเค็นง่ายขึ้นด้วยโปรโตคอลที่มีประสิทธิภาพและมาตรฐานสัญญาอัจฉริยะ รหัส ERC20 ช่วยลดความซับซ้อนที่เกี่ยวข้องกับการดำเนินการตามสัญญาอัจฉริยะของโทเค็นซึ่งช่วยลดความเป็นไปได้ในการทำลายสัญญาของโทเค็นลงอย่างมาก.
ณ เดือนเมษายน 2561 มี 66,468 ERC20 โทเค็นสัญญา, ด้วยความสม่ำเสมอของรหัสโทเค็นที่จัดทำโดยมาตรฐาน ERC20 ซึ่งทำให้การแลกเปลี่ยนสกุลเงินดิจิทัลสามารถแสดงรายการโทเค็นต่างๆบนแพลตฟอร์มการซื้อขายได้อย่างง่ายดาย ด้วยเหตุนี้มาตรฐาน ERC20 จึงช่วยให้ชุมชน crypto เอาชนะปัญหาด้านสภาพคล่องที่อาจเกี่ยวข้องกับโทเค็นที่ใช้ Ethereum จำนวนมหาศาล.
ฟังก์ชันโทเค็น ERC20:
รหัส ERC20 สรุปฟังก์ชันเฉพาะหกอย่างสำหรับโทเค็นซึ่ง ได้แก่
1- รับโทเค็นทั้งหมดผ่านทาง "totalSupply" ฟังก์ชัน
2- การดึงยอดโทเค็นของบัญชีอื่นที่เชื่อมโยงกับ "_เจ้าของ" ที่อยู่ผ่านทาง " balanceOf (address _owner) ผลตอบแทนคงที่ (uint256 balance)" ฟังก์ชัน.
3- การส่งโทเค็นจำนวนหนึ่ง "_value" ไปยังที่อยู่ที่ระบุผ่านทางไฟล์ " การโอน (ที่อยู่ _to, uint256 _value) ส่งคืน (ความสำเร็จบูล)" ฟังก์ชัน.
4- ส่งโทเค็นจำนวนหนึ่ง "_value" จากที่อยู่โทเค็น (สัญญา) หนึ่งไปยังที่อยู่โทเค็น (สัญญา) อื่นผ่านทาง "transferFrom (ที่อยู่ _ จากที่อยู่ _to, uint256 _value) ส่งคืน (ความสำเร็จบูล)" ฟังก์ชัน.
5- การเปิดใช้งานบัญชีเฉพาะเพื่อถอนโทเค็นจากบัญชีของตนซ้ำ ๆ ในขณะที่กำหนดขีด จำกัด สูงสุดสำหรับจำนวนโทเค็นที่จะถอนออกด้วย "_value" พารามิเตอร์. ซึ่งสามารถทำได้ผ่านทางไฟล์ "อนุมัติ (ที่อยู่ _spender, uint256 _value) ส่งคืน (ความสำเร็จบูล)". ขีด จำกัด สูงสุดสำหรับการถอนเช่น "_value" พารามิเตอร์สามารถเขียนทับได้เมื่อเรียกคืนฟังก์ชัน.
6- การส่งคืนจำนวนโทเค็นที่เหลือภายในจำนวนที่ตั้งไว้ซึ่งกำหนดโดยขีด จำกัด สูงสุดที่อนุญาตให้ใช้โดย "_spender" เพื่อถอนออกจากบัญชีของ "_เจ้าของ". สิ่งนี้สามารถดำเนินการผ่านไฟล์ "ค่าเผื่อ (ที่อยู่ * _ เจ้าของ * ที่อยู่ * _spender *) ผลตอบแทนคงที่ (uint256 ที่เหลือ)" ฟังก์ชัน.
ฟังก์ชันทั้งหกนี้ที่กำหนดโดยรหัส ERC20 แสดงถึงปัญหาการทำงานที่เป็นรากฐานที่สำคัญซึ่งรวมถึงวิธีการโอนโทเค็นระหว่างบัญชีต่างๆและวิธีที่ผู้ใช้สามารถดึงข้อมูลที่เกี่ยวข้องกับโทเค็น ERC20 ที่กำหนด กลุ่มฟังก์ชันเหล่านี้ถูกกำหนดเพื่อให้แน่ใจว่าโทเค็นที่ใช้ Ethereum จะทำงานในลักษณะเดียวกันภายในส่วนใด ๆ ของแพลตฟอร์มของ Ethereum ด้วยเหตุนี้ crypto wallets ทั้งหมดที่สอดคล้องกับ ether coin จะรองรับโทเค็นตามมาตรฐาน ERC20.
ข้อผิดพลาดที่สำคัญ:
กกพ. 20 เป็นมาตรฐานโทเค็นแรกของ Ethereum บ่อยครั้งที่รหัสใหม่มีข้อบกพร่องหรือความผิดพลาดทางตรรกะ ERC20 ถือว่าสองวิธีในการทำธุรกรรมโทเค็น ก่อนอื่นฟังก์ชันการโอนจะช่วยให้คุณสามารถส่งโทเค็นไปยังที่อยู่ของใครบางคนได้ หากคุณต้องการฝากโทเค็นเข้ากับสัญญาอัจฉริยะคุณควรใช้ชุดค่าผสม “อนุมัติ + โอนจาก” คุณควรอนุญาตสัญญานี้ในการถอนโทเค็นของคุณผ่านฟังก์ชันอนุมัติ จากนั้นคุณจะต้องเรียกใช้ฟังก์ชันของสัญญาที่จะจัดการเงินฝากของคุณและถอนโทเค็นของคุณผ่านฟังก์ชัน TransferFrom.
จะเกิดอะไรขึ้นถ้าคุณฝากโทเค็นโดยไม่ได้ตั้งใจกับสัญญากับฟังก์ชันการโอน? การทำธุรกรรมจะประสบความสำเร็จ แต่สัญญาของผู้รับจะไม่รับรู้ธุรกรรมนี้ ตัวอย่างเช่นหากคุณส่งโทเค็นไปยังสัญญาแลกเปลี่ยนแบบกระจายอำนาจสัญญาแลกเปลี่ยนจะได้รับโทเค็นของคุณ แต่จะไม่ให้เครดิตโทเค็นนี้ในยอดคงเหลือโทเค็นแลกเปลี่ยนของคุณ ยิ่งไปกว่านั้นหากสัญญาแลกเปลี่ยนแบบกระจายอำนาจไม่ได้ใช้ฟังก์ชันการสกัดโทเค็นฉุกเฉินก็จะไม่สามารถเรียกคืนโทเค็นของคุณได้ไม่ว่าในกรณีใด ๆ จะส่งผลให้โทเค็นสูญหายอย่างถาวร เนื่องจากข้อผิดพลาดนี้ระบบนิเวศของ Ethereum ได้สูญเสียเงินหลายล้านดอลลาร์ไปแล้ว.
เหตุใดเราจึงยังคงใช้มาตรฐาน ERC20?
ผู้ใช้ Reddit คุณ / Dexaran, ผู้สร้างมาตรฐาน ERC223 เป็นหนึ่งในนักพัฒนารายแรกที่แจ้งชุมชนเกี่ยวกับข้อบกพร่องดังกล่าว เราถามเขาว่าเหตุใด ERC20 จึงยังคงใช้กันอย่างแพร่หลายแม้ว่าจะรู้เกี่ยวกับข้อบกพร่องที่สำคัญนี้ก็ตาม เขาให้เหตุผลดังนี้
- เนื่องจากความไม่รับผิดชอบทางอาญาของนักพัฒนาโทเค็นสำหรับการกระทำของพวกเขา.
- เนื่องจาก Ethereum Foundation ยังคงส่งเสริมมาตรฐานโทเค็น ERC20 แม้ว่าจะทราบว่ามีจุดบกพร่องก็ตาม สถานการณ์เช่นเดียวกับที่เคยเกิดขึ้นกับ TheDAO ก่อนหน้านี้ พวกเขาจำเป็นต้องพูด "หยุดตอนนี้" แต่พวกเขาจะไม่ทำ.
- เนื่องจากเหตุผลหลักของการพัฒนาโทเค็นคือการกอบโกยเงินทุนมากกว่าการสร้างผลิตภัณฑ์.
- เนื่องจากการใช้มาตรฐานที่แตกต่างกันจะนำไปสู่ผลกระทบเครือข่ายที่สูงขึ้น นี่ไม่ใช่สิ่งที่เราต้องการจริงๆเนื่องจากเครือข่าย Ethereum มีปัญหาเรื่องความสามารถในการปรับขนาดอยู่แล้ว.
ERC223 มาตรฐาน
กกพ. 223 มาตรฐานเสนอโดย u / Dexaran ซึ่งช่วยสร้างบทความนี้ ERC223 เป็นมาตรฐานโทเค็นที่อนุญาตให้การโอนโทเค็นทำงานเหมือนกับธุรกรรมอีเธอร์ ERC223 ใช้การจัดการเหตุการณ์ (พิจารณาธุรกรรมเหตุการณ์) เพื่อป้องกันไม่ให้โทเค็นสูญหายในธุรกรรมที่ไม่ได้จัดการ มาตรฐานที่ได้รับการปรับปรุงนี้แก้ไขข้อผิดพลาดที่สำคัญของ ERC20 โดยการทำให้ฟังก์ชันการโอนทำให้เกิดข้อผิดพลาดในการโอนที่ไม่ถูกต้องและยกเลิกธุรกรรมเพื่อไม่ให้เงินสูญหาย ในระยะสั้น ERC223 มุ่งเน้นไปที่ ความปลอดภัย.
เพิ่มเติมและปัญหา
ERC223 เพิ่มพารามิเตอร์ข้อมูลเพิ่มเติมให้กับฟังก์ชันการถ่ายโอนเพื่อให้สามารถดำเนินการที่ซับซ้อนได้มากกว่าการโอนโทเค็น.
ข้อกังวลหลักของ Dexaran คือผู้คนจำนวนมากเกินไปอาจสูญเสียโทเค็นโดยส่งไปยังสัญญาโดยใช้ฟังก์ชันการโอนไม่ใช่วิธีการอนุมัติและโอนจากวิธีการตามที่กล่าวไว้ก่อนหน้านี้ วิธีแก้ปัญหาของเขาคือการปรับเปลี่ยนวิธีการโอนเพื่อตรวจสอบว่าที่อยู่ผู้รับเป็นสัญญา (เช่นมีข้อมูล) หรือไม่ หากเป็นสัญญาจะถือว่ามีฟังก์ชัน tokenFallback เพื่อเรียกกลับ จุดอ่อนหลักคือหากไม่มี tokenFallback ฟังก์ชันทางเลือกของสัญญารับจะถูกเรียกใช้และโทเค็นที่ส่งอาจยังสูญหาย.
ERC777 มาตรฐาน
ERC777 เป็นมาตรฐานโทเค็นแบบใหม่ที่ใช้ ERC820 (Contract pseudo-introspection Registry) และพยายามแก้ไขปัญหาของ ERC20 เช่นการขาดกลไกการจัดการธุรกรรมที่นำไปสู่การสูญเสียเงินหลายล้านดอลลาร์จากระบบนิเวศของ Ethereum ในระยะสั้น ERC777 มุ่งเน้นไปที่ การรับเป็นบุตรบุญธรรม โดยเสนอ กลไกการจัดการธุรกรรมที่หลากหลาย.
สิทธิประโยชน์
ข้อได้เปรียบหลักของ ERC777 คือใช้วิธีการใหม่ในการรับรู้อินเทอร์เฟซสัญญา มาตรฐานนี้ถือว่ามีการลงทะเบียนกลางของสัญญาบนเครือข่ายของ Ethereum (ซึ่งถูกกำหนดไว้ใน ERC820) ทุกคนสามารถเรียกใช้รีจิสทรีนี้เพื่อทราบว่าที่อยู่บางแห่ง (ไม่สำคัญว่าที่อยู่นี้จะเป็นสัญญาหรือไม่) สนับสนุนชุดฟังก์ชันบางอย่างเช่น “อินเทอร์เฟซ”.
ปัญหาหลักอย่างหนึ่งของ Ethereum คือการไม่สามารถรู้ได้ว่าสัญญามีหน้าที่อะไรบ้าง ERC820 มีไว้เพื่อแก้ปัญหานี้ ERC777 ใช้ประโยชน์จากแนวทางนี้ซึ่งเป็นความคิดที่ดี.
ในทางกลับกันคุณสามารถสร้างโทเค็นที่จะใช้ฟังก์ชันเริ่มต้นของ ERC20 ควบคู่ไปกับฟังก์ชั่น ERC777 ใหม่โดยไม่ต้องแทนที่ (และเป็นทางเลือกที่จะสืบทอดจุดบกพร่องที่สำคัญของ ERC20) สิ่งนี้สามารถรับประกันผลเครือข่ายที่ดีสำหรับมาตรฐานโทเค็นใหม่นี้และการนำไปใช้งานได้เร็วขึ้น ดังที่แสดงให้เห็นในทางปฏิบัติเป้าหมายหลักของนักพัฒนาโทเค็นคือการหาเงินซึ่งถือว่าพวกเขาจำเป็นต้องผลักดันโทเค็นของพวกเขาไปสู่การแลกเปลี่ยน การแลกเปลี่ยนจะสนับสนุนโทเค็นที่ใช้ฟังก์ชัน ERC20 แบบเดิมได้ง่ายขึ้น (ไม่สำคัญว่าฟังก์ชันเหล่านี้จะมีข้อบกพร่องหรือไม่) โดยไม่ต้องค้นคว้าเกี่ยวกับฟังก์ชันใหม่ ๆ ของมาตรฐานโทเค็นใหม่ ยิ่งการแลกเปลี่ยนสนับสนุนโทเค็นในมาตรฐานใหม่ง่ายขึ้นเท่าไหร่นักพัฒนาก็จะใช้มันมากขึ้นเท่านั้น สิ่งนี้ช่วยเพิ่มการใช้ ERC777 ในขณะที่ ERC223 ไม่มีคุณสมบัตินี้.
อะไรที่แตกต่าง?
มาตรฐานโทเค็นนี้กำหนดชุดฟังก์ชันใหม่ทั้งหมดนั่นคือฟังก์ชัน “ส่ง” แทนฟังก์ชัน “โอนย้าย” “authoriseOperator” แทน “อนุมัติ” ฟังก์ชันตัวจัดการ “tokensReceived” แทนฟังก์ชันตัวจัดการ “tokenFallback”.
แนวทางดังกล่าวสามารถรับประกันได้ว่าฟังก์ชันของมาตรฐานนี้จะไม่ข้ามและแทนที่ด้วยฟังก์ชันของมาตรฐานโทเค็นอื่น ๆ ดังนั้นจึงเป็นไปได้ที่จะสร้างโทเค็นที่เข้ากันได้กับมาตรฐาน ERC777 และ ERC820 พร้อมกัน.
ในที่สุด ERC777 ก็ได้มาตรฐาน มิ้นท์และเบิร์น การทำงานของโทเค็น.
ประเด็นความล้มเหลวและข้อกังวลด้านความปลอดภัย
ERC777 ใช้ฟังก์ชัน “authoriseOperator” ซึ่งช่วยให้บุคคลอื่นสามารถจัดการโทเค็นในนามของคุณได้ Dexaran อธิบายให้เราฟังว่าเขาคิดว่าวิธีนี้เลิกใช้แล้วและไม่ควรใช้ นอกจากนี้การอนุญาตให้บุคคลอื่นจัดการโทเค็นในนามของคุณจะทำให้แบนด์วิธของเครือข่ายเสียหายและต้องใช้ก๊าซมากขึ้น “authoriseOperator” เป็นตัวแทนของธุรกรรมหนึ่งรายการอยู่แล้วและจำเป็นต้องมีธุรกรรมอื่นเพื่อดำเนินการ "การถอนที่ได้รับอนุญาต". ดังนั้นจึงต้องมีธุรกรรมสองรายการในการโอนซึ่งสามารถทำได้ด้วยธุรกรรมเพียงรายการเดียว.
ถัดไปมาตรฐาน ERC777 จะมีแฟล็กที่เป็นทางเลือกเพื่อป้องกันโทเค็นที่ค้างอยู่โดยทำการตรวจสอบบางอย่างเกี่ยวกับอินเทอร์เฟซ ITokenRecipient และเพื่อตรวจสอบว่าแอดเดรสนั้นอยู่ในรายการที่อนุญาตหรือไม่ เนื่องจากมาตรฐานนี้มุ่งเน้นไปที่การรักษาความปลอดภัยของเครือข่ายที่จัดการโทเค็นที่มีมูลค่าหลายล้านดอลลาร์จึงไม่ใช่เรื่องดีที่จะทำให้การตรวจสอบเหล่านี้เป็นทางเลือก.
มาตรฐานอื่น ๆ
มีมาตรฐานอื่น ๆ อีกมากมายเช่น กกพ. 827 ซึ่งรวมข้อดีบางประการของ ERC223 เข้ากับฟังก์ชัน ERC20 แบบเดิม กกพ. 664 มาตรฐานมุ่งเน้นไปที่โมดูลาร์ของมาตรฐานโทเค็น มาตรฐานนี้อนุญาตให้อัปเกรดสัญญาโทเค็นได้ แต่ได้รับการสืบทอดข้อบกพร่องที่สำคัญของ ERC20 มาตรฐานอื่น ๆ ได้แก่ ERC721, ERC677 และ ERC820 แต่เป็นที่รู้จักน้อยกว่า.
ความเข้ากันได้ระหว่างมาตรฐาน
เราถาม Dexaran ว่ามาตรฐานใดบ้างที่เข้ากันได้แบบย้อนหลัง เขาบอกเราก่อนว่าเราควรทำความเข้าใจว่า “ความเข้ากันได้แบบย้อนกลับ” หมายถึงอะไร: “ความเข้ากันได้แบบย้อนกลับเป็นคุณสมบัติของระบบผลิตภัณฑ์หรือเทคโนโลยีที่ช่วยให้สามารถทำงานร่วมกันได้กับระบบเดิมที่เก่ากว่าหรือด้วยอินพุตที่ออกแบบมาสำหรับระบบดังกล่าว”
กกพ. 20 & กกพ. 223: โทเค็น ERC223 เข้ากันได้กับ ERC20 ทุกอย่างที่ออกแบบมาให้ทำงานร่วมกับ ERC20 ได้อย่างถูกต้อง (เช่นกระเป๋าสตางค์) สามารถทำงานร่วมกับ ERC223 ได้เช่นกัน ข้อยกเว้นประการเดียวในที่นี้คือสัญญาที่อาศัยการอนุมัติ + โอนจากรูปแบบการฝากโทเค็น อย่างไรก็ตามเป็นไปได้ที่จะใช้งานฟังก์ชัน Appro + transferFrom กับโทเค็น ERC223 แม้ว่าตอนนี้จะไม่รวมอยู่ในมาตรฐานก็ตาม สำหรับกระเป๋าสตางค์และบริการของบุคคลที่สามใด ๆ ที่ไม่ใช่สัญญาอัจฉริยะจะสนับสนุน ERC223 โดยอัตโนมัติเนื่องจากข้อมูลการโทรเข้าของโทเค็น ERC20 นั้นถูกต้องสำหรับ ERC223.
กกพ. 20 & กกพ. 777: คุณสามารถค้นหาคำสั่งต่อไปนี้ได้ในส่วน “ความเข้ากันได้ย้อนหลัง” ของข้อเสนอ ERC777: “EIP นี้ไม่แนะนำความเข้ากันไม่ได้ย้อนหลังและเข้ากันได้กับมาตรฐานโทเค็น ERC-20 รุ่นเก่า”
อย่างไรก็ตาม Dexaran บอกเราในทางตรงกันข้ามและให้ตัวอย่างนี้กับเรา:“ กระเป๋าสตางค์และบริการดังกล่าวเช่น MetaMask, Mist และ MyEtherWallet กำลังทำงานร่วมกับโทเค็น ERC20 อินพุตที่ออกแบบมาสำหรับโทเค็น ERC20 คือการเรียกสัญญาที่มีพารามิเตอร์ที่เข้ารหัสและลายเซ็นของฟังก์ชัน การเรียกใช้ฟังก์ชันใน Ethereum Virtual Machine ถูกระบุโดยข้อมูลสี่ไบต์แรกที่ส่งมาพร้อมกับธุรกรรม ลายเซ็น 4 ไบต์เหล่านี้ถูกกำหนดให้เป็นสี่ไบต์แรกของแฮชของการแทนมาตรฐานของลายเซ็นฟังก์ชัน ซึ่งหมายความว่าฟังก์ชัน “ โอน (ที่อยู่, uint256) `และ ‘ส่ง (ที่อยู่, uint256)’ จะมีลายเซ็นที่แตกต่างกัน ดังนั้นอินพุตที่ออกแบบมาสำหรับโทเค็น ERC20 จะไม่ถูกต้องสำหรับโทเค็น ERC777” เนื่องจากเราใช้คำจำกัดความของความเข้ากันได้แบบย้อนหลัง ERC777 จึงไม่เข้ากันได้กับมาตรฐานโทเค็น ERC20.
เมื่อใดควรใช้มาตรฐานใด
กกพ. 20: ผู้ใช้ Reddit u / Dexaran ให้คำแนะนำเชิงประชดประชันนี้กับเราว่า“ เมื่อคุณต้องการให้นักลงทุนของคุณเสียเงินเพราะข้อบกพร่อง”
กกพ. 223: มาตรฐานโทเค็นนี้ยังสามารถใช้ร่วมกับ ERC777 ได้อีกด้วย ERC777 มีคุณสมบัติที่สวยงามบางอย่างที่ ERC223 ขาดไป แต่ตรรกะของ ERC223 นั้นตรงไปตรงมาเมื่อเทียบกับ ERC777 ซึ่งสามารถรับประกันได้ว่ามันมีมาก รหัสที่มีข้อผิดพลาดน้อยกว่า. ยิ่งไปกว่านั้น ERC223 ไม่ได้อาศัยบริการส่วนกลางใด ๆ ซึ่งหมายความว่าโทเค็น ERC223 ของคุณจะขึ้นอยู่กับการนำไปใช้งานของคุณเองเท่านั้น ดังที่เราได้กล่าวไปก่อนหน้านี้ ERC223 มีเป้าหมายที่การปรับปรุงความปลอดภัย แต่โทเค็น ERC223 ที่แสดงผลนี้ไม่สอดคล้องกับมาตรฐาน ERC20.
ERC777: มาตรฐานโทเค็นนี้ใช้งานได้แล้ว ในทางกลับกัน ERC777 มีข้อกังวลด้านความปลอดภัยดังที่ได้กล่าวไว้ข้างต้น พวกเขายังพึ่งพาการลงทะเบียนสัญญากลางซึ่งเป็นปัญหาด้านความปลอดภัยเช่นกัน รีจิสทรีส่วนกลางสามารถทำให้ชีวิตของนักพัฒนาง่ายขึ้น แต่ยังทำหน้าที่เป็นจุดศูนย์กลางของความล้มเหลวเช่นเดียวกับ Parity Multisig Parity Multisigs ทั้งหมดอาศัยไลบรารีรหัสกลาง เกิดข้อผิดพลาดในห้องสมุดและถูกใช้ประโยชน์ เป็นผลให้ Parity Multisigs ทั้งหมดพัง นอกจากนี้ ERC777 ยังกำหนดชุดฟังก์ชันใหม่ นี่เป็นความพยายามที่จะอนุญาตให้นักพัฒนาโทเค็นทำให้โทเค็นเข้ากันได้กับทั้งมาตรฐาน ERC20 และ ERC777 พร้อมกันเพื่อการนำไปใช้ ซึ่งหมายความว่านักพัฒนาสามารถสืบทอดจุดบกพร่องของ ERC20 ใน ERC777 ได้ แต่จะช่วยให้นักพัฒนาสามารถใช้เหตุการณ์การจัดการธุรกรรมได้มากขึ้น.
โดยทั่วไป: โทเค็นทั้งหมดมีกรณีการใช้งานที่คล้ายกัน – ICO ฉันจะบอกว่า ERC223 และ ERC777 กำลังพยายามแก้ปัญหาหนึ่งของ ERC20 ด้วยวิธีที่แตกต่างกัน ERC223 กำลังเข้ามาเฉพาะกลุ่ม Ethereum Classic แทนกกพ. 20.
บทความนี้สร้างขึ้นด้วยความช่วยเหลือของ Dexaran ผู้พัฒนา ERC223 ความคิดเห็นบางส่วนของ Paul Edge เกี่ยวกับมาตรฐานโทเค็นของ Ethereum ก็ถูกนำมาใช้เช่นกัน.