Mindset การรักษาความปลอดภัยสัญญาอัจฉริยะ

บล็อก 1NewsDevelopersEnterpriseBlockchain ExplainedEvents and ConferencesPressจดหมายข่าว

Contents

สมัครรับจดหมายข่าวของเรา.

ที่อยู่อีเมล

เราเคารพความเป็นส่วนตัวของคุณ

หน้าแรกบล็อกการพัฒนา Blockchain

Mindset การรักษาความปลอดภัยสัญญาอัจฉริยะ

หลักการรักษาความปลอดภัย 5 ประการที่นักพัฒนา Ethereum ทุกคนจำเป็นต้องรู้รวมถึงการแลกเปลี่ยนพื้นฐาน โดย ConsenSys มิถุนายน 17, 2020 โพสต์เมื่อมิถุนายน 17, 2020

ความปลอดภัยของ Blockchain

โดย ConsenSys Diligence ทีมผู้เชี่ยวชาญด้านความปลอดภัยบล็อกเชนของเรา.

แม้ว่าอุตสาหกรรมจะเติบโตเต็มที่ แต่การพัฒนาสัญญาอัจฉริยะยังคงเป็นสาขาที่ค่อนข้างใหม่และกำลังเติบโต ดังนั้นคุณควรคาดหวังว่าจะมีการเปลี่ยนแปลงอย่างต่อเนื่องในแนวความปลอดภัยเนื่องจากมีการค้นพบข้อบกพร่องและความเสี่ยงด้านความปลอดภัยใหม่ ๆ และเมื่อมีการพัฒนาแนวทางปฏิบัติที่ดีที่สุดใหม่ ๆ การเรียนรู้และติดตาม ปฏิบัติที่ดีที่สุด เป็นเพียงจุดเริ่มต้นของงานด้านความปลอดภัยที่คุณจะต้องทำในฐานะนักพัฒนาสัญญาอัจฉริยะ.

การเขียนโปรแกรมสัญญาอัจฉริยะต้องใช้ความคิดทางวิศวกรรมที่แตกต่างจากที่คุณคุ้นเคย ต้นทุนของความล้มเหลวอาจสูงและการเปลี่ยนแปลงอาจเป็นเรื่องยากทำให้ในบางวิธีคล้ายกับการเขียนโปรแกรมฮาร์ดแวร์หรือการเขียนโปรแกรมบริการทางการเงินมากกว่าการพัฒนาเว็บหรือมือถือ ดังนั้นจึงไม่เพียงพอที่จะป้องกันช่องโหว่ที่ทราบ แต่คุณจะต้องเรียนรู้ปรัชญาใหม่ในการพัฒนา.

เตรียมพร้อมสำหรับความล้มเหลว

สัญญาที่ไม่สำคัญใด ๆ จะมีข้อผิดพลาด ดังนั้นโค้ดของคุณจะต้องสามารถตอบสนองต่อจุดบกพร่องและช่องโหว่ได้อย่างสง่างาม.

  • หยุดสัญญาชั่วคราวเมื่อมีสิ่งผิดปกติเกิดขึ้น (“ เซอร์กิตเบรกเกอร์”).
  • จัดการจำนวนเงินที่มีความเสี่ยง (การ จำกัด อัตราการใช้งานสูงสุด).
  • มีเส้นทางการอัปเกรดที่มีประสิทธิภาพสำหรับการแก้ไขข้อบกพร่องและการปรับปรุง.

เปิดตัวอย่างระมัดระวัง

จะเป็นการดีกว่าเสมอที่จะจับจุดบกพร่องก่อนที่จะมีการเผยแพร่เวอร์ชันเต็ม.

  • ทดสอบสัญญาอย่างละเอียดและเพิ่มการทดสอบเมื่อพบเวกเตอร์การโจมตีใหม่.
  • ให้ รางวัลบั๊ก เริ่มจากรุ่นอัลฟา testnet.
  • เปิดตัวเป็นระยะพร้อมการใช้งานและการทดสอบที่เพิ่มขึ้นในแต่ละเฟส.

รักษาสัญญาที่เรียบง่าย

ความซับซ้อนเพิ่มโอกาสที่จะเกิดข้อผิดพลาด.

  • ตรวจสอบให้แน่ใจว่าตรรกะของสัญญานั้นเรียบง่าย.
  • โมดูลาร์โค้ดเพื่อให้สัญญาและฟังก์ชันมีขนาดเล็ก.
  • ใช้เครื่องมือหรือโค้ดที่เขียนไว้แล้วหากเป็นไปได้ (เช่นอย่าหมุนตัวสร้างตัวเลขสุ่มของคุณเอง).
  • ต้องการความชัดเจนของประสิทธิภาพทุกครั้งที่ทำได้.
  • ใช้บล็อคเชนสำหรับส่วนต่างๆของระบบของคุณที่ต้องการการกระจายอำนาจเท่านั้น.

ติดตามข่าวสารล่าสุด

ติดตามการพัฒนาด้านความปลอดภัยใหม่ ๆ.

  • ตรวจสอบสัญญาของคุณเพื่อหาจุดบกพร่องใหม่ ๆ ทันทีที่พบ.
  • อัปเกรดเป็นเครื่องมือหรือไลบรารีเวอร์ชันล่าสุดโดยเร็วที่สุด.
  • ใช้เทคนิคการรักษาความปลอดภัยใหม่ ๆ ที่มีประโยชน์.

ระวังเรื่อง Idiosyncrasies ของ EVM

แม้ว่าประสบการณ์การเขียนโปรแกรมส่วนใหญ่ของคุณจะเกี่ยวข้องกับการเขียนโปรแกรม Ethereum แต่ก็มีข้อผิดพลาดบางประการที่ต้องระวัง.

  • ระมัดระวังอย่างยิ่งเกี่ยวกับการเรียกสัญญาภายนอกซึ่งอาจเรียกใช้โค้ดที่เป็นอันตรายและเปลี่ยนขั้นตอนการควบคุม.
  • ทำความเข้าใจว่าหน้าที่สาธารณะของคุณเป็นสาธารณะและอาจถูกเรียกว่าเป็นอันตรายและตามลำดับใด ๆ ข้อมูลส่วนตัวในสัญญาอัจฉริยะยังสามารถดูได้โดยทุกคน.
  • คำนึงถึงต้นทุนก๊าซและขีด จำกัด ของก๊าซบล็อก.
  • โปรดทราบว่าการประทับเวลาไม่ชัดเจนในบล็อกเชน: นักขุดสามารถมีอิทธิพลต่อเวลาในการดำเนินธุรกรรมภายในระยะเวลาไม่กี่วินาที.
  • การสุ่มนั้นไม่สำคัญในบล็อกเชนวิธีการส่วนใหญ่ในการสร้างตัวเลขสุ่มนั้นสามารถเล่นเกมได้บนบล็อกเชน.

การแลกเปลี่ยนขั้นพื้นฐาน

มีการแลกเปลี่ยนพื้นฐานหลายประการที่ต้องพิจารณาเมื่อประเมินโครงสร้างและความปลอดภัยของระบบสัญญาอัจฉริยะ คำแนะนำทั่วไปสำหรับระบบสัญญาอัจฉริยะใด ๆ คือการระบุความสมดุลที่เหมาะสมสำหรับการแลกเปลี่ยนพื้นฐานเหล่านี้.

ระบบสัญญาอัจฉริยะในอุดมคติจากอคติทางวิศวกรรมซอฟต์แวร์เป็นแบบแยกส่วนใช้รหัสซ้ำแทนการทำซ้ำและรองรับส่วนประกอบที่อัพเกรดได้ ระบบสัญญาอัจฉริยะในอุดมคติจากอคติของสถาปัตยกรรมที่ปลอดภัยอาจแบ่งปันความคิดนี้โดยเฉพาะอย่างยิ่งในกรณีของระบบสัญญาอัจฉริยะที่ซับซ้อนมากขึ้น.

อย่างไรก็ตามมีข้อยกเว้นที่สำคัญที่แนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัยและวิศวกรรมซอฟต์แวร์อาจไม่สอดคล้องกัน ในแต่ละกรณีจะได้รับความสมดุลที่เหมาะสมโดยการระบุคุณสมบัติที่เหมาะสมที่สุดตามขนาดของระบบสัญญาเช่น:

  • แข็งเทียบกับอัพเกรดได้
  • เสาหินเทียบกับโมดูลาร์
  • การทำซ้ำกับการใช้ซ้ำ
แข็งเทียบกับอัพเกรดได้

ในขณะที่ทรัพยากรหลายรายการรวมถึงทรัพยากรนี้เน้นลักษณะความสามารถในการปรับเปลี่ยนได้เช่นรูปแบบ Killable, Upgradeable หรือ Modifiable แต่ก็มีการแลกเปลี่ยนพื้นฐานระหว่างความสามารถในการอ่อนตัวและความปลอดภัย.

รูปแบบความอ่อนตัวตามคำจำกัดความจะเพิ่มความซับซ้อนและพื้นผิวการโจมตีที่อาจเกิดขึ้น ความเรียบง่ายมีประสิทธิภาพโดยเฉพาะอย่างยิ่งกับความซับซ้อนในกรณีที่ระบบสัญญาอัจฉริยะดำเนินการชุดฟังก์ชันที่ จำกัด มากสำหรับช่วงเวลาที่ จำกัด ที่กำหนดไว้ล่วงหน้าเช่นระบบสัญญาขายโทเค็นกรอบเวลา จำกัด.

เสาหินเทียบกับโมดูลาร์

สัญญาที่มีอยู่ในตัวเสาหินช่วยให้ความรู้ทั้งหมดสามารถระบุตัวตนและอ่านได้ในท้องถิ่น ในขณะที่มีระบบสัญญาอัจฉริยะเพียงไม่กี่ระบบที่มีความสำคัญสูงซึ่งมีอยู่ในรูปแบบเสาหิน แต่ก็มีข้อโต้แย้งที่ต้องทำสำหรับพื้นที่ที่มีข้อมูลและการไหลที่รุนแรงตัวอย่างเช่นในกรณีของการเพิ่มประสิทธิภาพการตรวจสอบโค้ด.

เช่นเดียวกับการแลกเปลี่ยนอื่น ๆ ที่พิจารณาในที่นี้แนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัยมีแนวโน้มที่จะห่างไกลจากแนวทางปฏิบัติที่ดีที่สุดด้านวิศวกรรมซอฟต์แวร์ในสัญญาสั้น ๆ ที่เรียบง่ายและแนวโน้มไปสู่แนวทางปฏิบัติที่ดีที่สุดด้านวิศวกรรมซอฟต์แวร์ในกรณีของระบบสัญญาต่อเนื่องที่ซับซ้อนมากขึ้น.

การทำซ้ำกับการใช้ซ้ำ

ระบบสัญญาอัจฉริยะจากมุมมองด้านวิศวกรรมซอฟต์แวร์ต้องการเพิ่มการนำกลับมาใช้ใหม่ในกรณีที่สมเหตุสมผล มีหลายวิธีในการนำรหัสสัญญามาใช้ซ้ำใน Solidity การใช้สัญญาที่ได้รับการพิสูจน์แล้วซึ่งคุณเป็นเจ้าของโดยทั่วไปเป็นวิธีที่ปลอดภัยที่สุดในการนำโค้ดกลับมาใช้ใหม่.

การทำสำเนามักใช้ในกรณีที่ไม่มีสัญญาที่นำไปใช้ก่อนหน้านี้เป็นของตนเอง ความพยายามเช่น OpenZeppelin’s Solidity Library พยายามจัดหารูปแบบเพื่อให้รหัสปลอดภัยสามารถใช้ซ้ำได้โดยไม่ต้องทำซ้ำ การวิเคราะห์ความปลอดภัยของสัญญาจะต้องมีรหัสที่ใช้ซ้ำซึ่งก่อนหน้านี้ยังไม่ได้กำหนดระดับความไว้วางใจให้สอดคล้องกับเงินทุนที่มีความเสี่ยงในระบบสัญญาอัจฉริยะ.

การสร้างและเปิดตัวแอพพลิเคชั่นบน Ethereum ถือเป็นขอบเขตที่น่าตื่นเต้นที่สุดสำหรับวิศวกรซอฟต์แวร์ในปัจจุบัน แต่ต้องใช้การสร้างแบบจำลองภัยคุกคามอย่างต่อเนื่องการตรวจสอบความปลอดภัยและการวางแผนรับมือกับเหตุการณ์.

ทีม Diligence อยู่ที่นี่เพื่อช่วยให้คุณระมัดระวังและสร้างความมั่นใจในการปรับใช้ของคุณ.

จองการตรวจสอบความปลอดภัยของ Blockchain

บทวิจารณ์ 1 วันของเราช่วยคุณสร้างความปลอดภัยให้กับรหัสบล็อกเชนตั้งแต่เริ่มต้นเพื่อให้คุณสามารถประหยัดเวลาและค่าใช้จ่ายในระยะยาว จองวันนี้ความปลอดภัยสัญญาอัจฉริยะจดหมายข่าวสมัครรับจดหมายข่าวของเราเพื่อรับข่าวสารล่าสุดของ Ethereum โซลูชันระดับองค์กรทรัพยากรสำหรับนักพัฒนาและอื่น ๆ ที่อยู่อีเมลเนื้อหาพิเศษวิธีสร้างผลิตภัณฑ์ Blockchain ที่ประสบความสำเร็จการสัมมนาผ่านเว็บ

วิธีสร้างผลิตภัณฑ์ Blockchain ที่ประสบความสำเร็จ

วิธีการตั้งค่าและเรียกใช้โหนด Ethereumการสัมมนาผ่านเว็บ

วิธีการตั้งค่าและเรียกใช้โหนด Ethereum

วิธีสร้าง Ethereum API ของคุณเองการสัมมนาผ่านเว็บ

วิธีสร้าง Ethereum API ของคุณเอง

วิธีสร้างโซเชียลโทเค็นการสัมมนาผ่านเว็บ

วิธีสร้างโซเชียลโทเค็น

การใช้เครื่องมือรักษาความปลอดภัยในการพัฒนาสัญญาอัจฉริยะการสัมมนาผ่านเว็บ

การใช้เครื่องมือรักษาความปลอดภัยในการพัฒนาสัญญาอัจฉริยะ

อนาคตของการเงินสินทรัพย์ดิจิทัลและ DeFiการสัมมนาผ่านเว็บ

อนาคตของการเงิน: สินทรัพย์ดิจิทัลและ DeFi

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me
Like this post? Please share to your friends:
Adblock
detector
map