Formal Verification คืออะไรในสัญญาอัจฉริยะ?

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

การแนะนำ

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

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

ในบทความนี้เราจะสำรวจคำถามที่เป็นกลางเกี่ยวกับการตรวจสอบอย่างเป็นทางเป็นทางการของสัญญาอัจฉริยะ โดยพูดถึงข้อดีข้อเสียผลกระทบต่อระบบคริปโต และอื่น ๆ โดยเน้นที่เอเทอร์เรียม

ประวัติย่อของสัญญาอัจฉริยะ


แหล่งที่มา: CryptoSlate

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

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

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

Formal Verification คืออะไร?


ต้นฉบับ: Medium

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

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

ประเภทของข้อกำหนดอย่างเป็นทางการสำหรับสัญญาอัจฉริยะ


Source: เคยมาตราส่วน

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

ข้อมูลเฉพาะระดับสูง

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

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

ข้อมูลเฉพาะทางระดับต่ำ

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

เทคนิคสำหรับการตรวจสอบอย่างเป็นทางการของสัญญาอัจฉริยะ


Source: Ever Scale

การตรวจสอบโมเดล

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

การพิสูจน์ทฤษฎี

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

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

การทดสอบด้วยสัญลักษณ์

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

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

สัญญาอัจฉริยะคืออะไร?


Source: Tenderly

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

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

ความชุกชุมด้วยสัญญาอัจฉริยะ

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

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

วิธีการทำงานของการตรวจสอบสัญญาอัจฉริยะคืออย่างไร?


Source: Certik

กระบวนการประกอบด้วย:

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

คุณสมบัติหลักของสัญญาอัจฉริยะ


แหล่งที่มา: Certik

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

ทำไมการตรวจสอบสัญญาอัจฉริยะถึงสำคัญ

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

ตัวอย่างการตรวจสอบสัญญาอัจฉริยะที่ประสบความสำเร็จย้ำให้เห็นถึงความสำคัญของมันในการป้องกันการสูญเสียทางการเงินที่สำคัญ

Uniswap

ตัวอย่างเช่น Uniswap ซึ่งเป็นตลาดอัตโนมัติที่มีชื่อเสียง (AMM) ได้รับการตรวจสอบอย่างเป็นทางการในระหว่างการพัฒนาสัญญาอัจฉริยะของ V1 ของมัน ซึ่งพบและแก้ไขข้อผิดพลาดในการปัดเศษทศนิยมที่อาจจะได้รับเงินทุน

Balancer

อย่างเดียวกัน Balancer V2 อีกตัวหนึ่งของ AMM ได้รับประโยชน์จากการตรวจสอบอย่างเป็นทางการที่ค้นพบการคำนวณค่าธรรมเนียมที่ไม่ถูกต้องเกี่ยวกับการกู้ยืมแฟลช เพื่อป้องกันการถูกขโมยที่เป็นไปได้

SafeMoon

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

การตรวจสอบอย่างเป็นทางการและการตรวจสอบด้วยมือทำงานร่วมกันอย่างไร

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

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

ข้อดีและข้อเสียของสัญญาอัจฉริยะ


Source: Blockonomi

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

ข้อดีของสัญญาอัจฉริยะ

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

ข้อเสียของสัญญาอัจฉริยะ

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

เครื่องมือการตรวจสอบอย่างเป็นทางการสำหรับสัญญาอัจฉริยะ Ethereum


Source: Calibraint

ภาษาสำหรับสร้างข้อกำหนดทางการ

  • พระราชบัญญัติ: พระราชบัญญัติช่วยให้ผู้ใช้สามารถกําหนดการอัปเดตพื้นที่เก็บข้อมูลเงื่อนไขก่อนและหลังและสัญญาที่ไม่คงที่ ชุดเครื่องมือประกอบด้วยแบ็กเอนด์หลักฐานที่สามารถตรวจสอบคุณสมบัติต่างๆโดยใช้ Coq, SMT solvers หรือ hevm

GitHub

เอกสารคู่มือ

  • Scribble: Scribbleแปลงหมายเหตุโค้ดที่เขียนในภาษาสเปคเข้าเป็นการยืนยันที่เฉพาะเจาะจงที่ตรวจสอบสเปค

เอกสารคู่มือการใช้งาน

  • Dafny: Dafny เป็นภาษาการเขียนโปรแกรมที่ออกแบบมาสําหรับการตรวจสอบโดยใช้คําอธิบายประกอบระดับสูงเพื่อช่วยให้เหตุผลและยืนยันความถูกต้องของรหัส

GitHub

โปรแกรมตรวจสอบเพื่อตรวจสอบความถูกต้อง

  • Certora Prover: Certora Prover เป็นเครื่องมือการตรวจสอบอย่างเป็นทางการแบบอัตโนมัติที่ตรวจสอบความถูกต้องของรหัสสัญญาอัจฉริยะ มีการสร้างข้อกำหนดโดยใช้ Certora Verification Language (CVL) และตรวจสอบการละเมิดคุณสมบัติผ่านการวิเคราะห์แบบสถิติและเทคนิคการแก้ปัญหาข้อจำกัด

เว็บไซต์

เอกสารประกอบ

  • Solidity SMTChecker: SMTChecker ของ Solidity เป็นโปรแกรมตรวจสอบแบบรวมที่ใช้ Satisfiability Modulo Theories (SMT) และการแก้ปัญหา Horn เพื่อตรวจสอบว่าโค้ดต้นฉบับของสัญญาสอดคล้องกับข้อกำหนดในระหว่างคอมไพล์และตรวจสอบการละเมิดคุณสมบัติความปลอดภัย

GitHub

  • Solc-verify: Solc-verify เป็นเวอร์ชันที่ปรับปรุงของคอมไพล์เลอร์ Solidity ที่ช่วยให้สามารถตรวจสอบโค้ด Solidity อัตโนมัติผ่านการป้อนข้อมูลและการตรวจสอบโปรแกรมแบบโมดูลได้

GitHub

  • KEVM: KEVM แทน Ethereum Virtual Machine โดยเป็นทางการ(EVM)สร้างขึ้นโดยใช้เฟรมเวิร์ค K ซึ่งเป็นไฟล์ประมวลผลและสามารถตรวจสอบการเรียกร้องที่เกี่ยวข้องกับคุณสมบัติเฉพาะทางตามตรรกะได้

GitHub

เอกสารคู่มือการใช้งาน

กรอบตรรกะสำหรับการพิสูจน์ทฤษฎี

  • Isabelle: Isabelle/HOL เป็นตัวช่วยการพิสูจน์ที่ช่วยผู้ใช้ในการแสดงสูตรคณิตศาสตร์ในภาษาทางการและให้เครื่องมือสำหรับการพิสูจน์ การใช้งานหลักคือการทำให้พิสูจน์ทางคณิตศาสตร์เป็นทางการโดยเฉพาะสำหรับการตรวจสอบความถูกต้องของฮาร์ดแวร์และซอฟต์แวร์คอมพิวเตอร์ และคุณสมบัติของภาษาโปรแกรมและโปรโตคอล

GitHub

เอกสารประกอบ

  • Coq - Coq เป็นเครื่องพิสูจน์ทฤษฎีแบบแอ็กทีฟที่ช่วยให้คุณสามารถกำหนดโปรแกรมพร้อมทฤษฎี และสร้างการพิสูจน์ที่ตรวจสอบโดยเครื่องของความถูกต้องของพวกเขาผ่านกระบวนการแอ็กทีฟ

GitHub

เอกสารประกอบ

เครื่องมือที่ใช้การสัญลักษณ์เพื่อตรวจหารูปแบบที่มีช่องโหว่ในสัญญาอัจฉริยะ

  • Manticore - เครื่องมือที่วิเคราะห์ EVM bytecode โดยใช้การประมวลผลสัญลักษณ์

GitHub

เอกสารคู่มือการใช้งาน

  • Hevm - hevm เป็นเครื่องมือการดำเนินการสัญลักษณ์ที่ตรวจสอบความเท่าเทียมของไบต์โค้ด EVM

GitHub

  • Mythril - เครื่องมือการประมวลผลสัญญาอัจฉริยะที่ใช้ในการค้นหาช่องโหว่ในสัญญาอัจฉริยะ Ethereum

GitHub

เอกสาร

สรุป

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

Author: Paul
Translator: Panie
Reviewer(s): Piccolo、Matheus
Translation Reviewer(s): Ashely
* The information is not intended to be and does not constitute financial advice or any other recommendation of any sort offered or endorsed by Gate.io.
* This article may not be reproduced, transmitted or copied without referencing Gate.io. Contravention is an infringement of Copyright Act and may be subject to legal action.

Share

Formal Verification คืออะไรในสัญญาอัจฉริยะ?

ขั้นสูง10/7/2024, 9:48:23 AM
สัญญาอัจฉริยะได้เป็นสิ่งสำคัญต่อเทคโนโลยีบล็อกเชนโดยพิจารณาถึงกระบวนการอัตโนมัติที่พวกเขาเริ่มขึ้นซึ่งทำให้ง่ายต่อการวางท่าทางกลางและฝ่ายที่เกี่ยวข้องที่เกี่ยวข้องทำให้ระบบมีประสิทธิภาพมากขึ้น มีประสิทธิภาพและน่าเชื่อถือ อย่างไรก็ตาม เนื่องจากสัญญาอัจฉริยะกำลังพัฒนาต่อไปนั้น มันสำคัญที่จะรับรู้ถึงความจำเป็นของการตรวจสอบอย่างเป็นทางการในการรับรองเลเยอร์เพิ่มเติมของความปลอดภัยและความเชื่อถือ

การแนะนำ

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

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

ในบทความนี้เราจะสำรวจคำถามที่เป็นกลางเกี่ยวกับการตรวจสอบอย่างเป็นทางเป็นทางการของสัญญาอัจฉริยะ โดยพูดถึงข้อดีข้อเสียผลกระทบต่อระบบคริปโต และอื่น ๆ โดยเน้นที่เอเทอร์เรียม

ประวัติย่อของสัญญาอัจฉริยะ


แหล่งที่มา: CryptoSlate

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

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

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

Formal Verification คืออะไร?


ต้นฉบับ: Medium

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

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

ประเภทของข้อกำหนดอย่างเป็นทางการสำหรับสัญญาอัจฉริยะ


Source: เคยมาตราส่วน

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

ข้อมูลเฉพาะระดับสูง

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

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

ข้อมูลเฉพาะทางระดับต่ำ

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

เทคนิคสำหรับการตรวจสอบอย่างเป็นทางการของสัญญาอัจฉริยะ


Source: Ever Scale

การตรวจสอบโมเดล

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

การพิสูจน์ทฤษฎี

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

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

การทดสอบด้วยสัญลักษณ์

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

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

สัญญาอัจฉริยะคืออะไร?


Source: Tenderly

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

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

ความชุกชุมด้วยสัญญาอัจฉริยะ

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

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

วิธีการทำงานของการตรวจสอบสัญญาอัจฉริยะคืออย่างไร?


Source: Certik

กระบวนการประกอบด้วย:

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

คุณสมบัติหลักของสัญญาอัจฉริยะ


แหล่งที่มา: Certik

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

ทำไมการตรวจสอบสัญญาอัจฉริยะถึงสำคัญ

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

ตัวอย่างการตรวจสอบสัญญาอัจฉริยะที่ประสบความสำเร็จย้ำให้เห็นถึงความสำคัญของมันในการป้องกันการสูญเสียทางการเงินที่สำคัญ

Uniswap

ตัวอย่างเช่น Uniswap ซึ่งเป็นตลาดอัตโนมัติที่มีชื่อเสียง (AMM) ได้รับการตรวจสอบอย่างเป็นทางการในระหว่างการพัฒนาสัญญาอัจฉริยะของ V1 ของมัน ซึ่งพบและแก้ไขข้อผิดพลาดในการปัดเศษทศนิยมที่อาจจะได้รับเงินทุน

Balancer

อย่างเดียวกัน Balancer V2 อีกตัวหนึ่งของ AMM ได้รับประโยชน์จากการตรวจสอบอย่างเป็นทางการที่ค้นพบการคำนวณค่าธรรมเนียมที่ไม่ถูกต้องเกี่ยวกับการกู้ยืมแฟลช เพื่อป้องกันการถูกขโมยที่เป็นไปได้

SafeMoon

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

การตรวจสอบอย่างเป็นทางการและการตรวจสอบด้วยมือทำงานร่วมกันอย่างไร

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

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

ข้อดีและข้อเสียของสัญญาอัจฉริยะ


Source: Blockonomi

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

ข้อดีของสัญญาอัจฉริยะ

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

ข้อเสียของสัญญาอัจฉริยะ

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

เครื่องมือการตรวจสอบอย่างเป็นทางการสำหรับสัญญาอัจฉริยะ Ethereum


Source: Calibraint

ภาษาสำหรับสร้างข้อกำหนดทางการ

  • พระราชบัญญัติ: พระราชบัญญัติช่วยให้ผู้ใช้สามารถกําหนดการอัปเดตพื้นที่เก็บข้อมูลเงื่อนไขก่อนและหลังและสัญญาที่ไม่คงที่ ชุดเครื่องมือประกอบด้วยแบ็กเอนด์หลักฐานที่สามารถตรวจสอบคุณสมบัติต่างๆโดยใช้ Coq, SMT solvers หรือ hevm

GitHub

เอกสารคู่มือ

  • Scribble: Scribbleแปลงหมายเหตุโค้ดที่เขียนในภาษาสเปคเข้าเป็นการยืนยันที่เฉพาะเจาะจงที่ตรวจสอบสเปค

เอกสารคู่มือการใช้งาน

  • Dafny: Dafny เป็นภาษาการเขียนโปรแกรมที่ออกแบบมาสําหรับการตรวจสอบโดยใช้คําอธิบายประกอบระดับสูงเพื่อช่วยให้เหตุผลและยืนยันความถูกต้องของรหัส

GitHub

โปรแกรมตรวจสอบเพื่อตรวจสอบความถูกต้อง

  • Certora Prover: Certora Prover เป็นเครื่องมือการตรวจสอบอย่างเป็นทางการแบบอัตโนมัติที่ตรวจสอบความถูกต้องของรหัสสัญญาอัจฉริยะ มีการสร้างข้อกำหนดโดยใช้ Certora Verification Language (CVL) และตรวจสอบการละเมิดคุณสมบัติผ่านการวิเคราะห์แบบสถิติและเทคนิคการแก้ปัญหาข้อจำกัด

เว็บไซต์

เอกสารประกอบ

  • Solidity SMTChecker: SMTChecker ของ Solidity เป็นโปรแกรมตรวจสอบแบบรวมที่ใช้ Satisfiability Modulo Theories (SMT) และการแก้ปัญหา Horn เพื่อตรวจสอบว่าโค้ดต้นฉบับของสัญญาสอดคล้องกับข้อกำหนดในระหว่างคอมไพล์และตรวจสอบการละเมิดคุณสมบัติความปลอดภัย

GitHub

  • Solc-verify: Solc-verify เป็นเวอร์ชันที่ปรับปรุงของคอมไพล์เลอร์ Solidity ที่ช่วยให้สามารถตรวจสอบโค้ด Solidity อัตโนมัติผ่านการป้อนข้อมูลและการตรวจสอบโปรแกรมแบบโมดูลได้

GitHub

  • KEVM: KEVM แทน Ethereum Virtual Machine โดยเป็นทางการ(EVM)สร้างขึ้นโดยใช้เฟรมเวิร์ค K ซึ่งเป็นไฟล์ประมวลผลและสามารถตรวจสอบการเรียกร้องที่เกี่ยวข้องกับคุณสมบัติเฉพาะทางตามตรรกะได้

GitHub

เอกสารคู่มือการใช้งาน

กรอบตรรกะสำหรับการพิสูจน์ทฤษฎี

  • Isabelle: Isabelle/HOL เป็นตัวช่วยการพิสูจน์ที่ช่วยผู้ใช้ในการแสดงสูตรคณิตศาสตร์ในภาษาทางการและให้เครื่องมือสำหรับการพิสูจน์ การใช้งานหลักคือการทำให้พิสูจน์ทางคณิตศาสตร์เป็นทางการโดยเฉพาะสำหรับการตรวจสอบความถูกต้องของฮาร์ดแวร์และซอฟต์แวร์คอมพิวเตอร์ และคุณสมบัติของภาษาโปรแกรมและโปรโตคอล

GitHub

เอกสารประกอบ

  • Coq - Coq เป็นเครื่องพิสูจน์ทฤษฎีแบบแอ็กทีฟที่ช่วยให้คุณสามารถกำหนดโปรแกรมพร้อมทฤษฎี และสร้างการพิสูจน์ที่ตรวจสอบโดยเครื่องของความถูกต้องของพวกเขาผ่านกระบวนการแอ็กทีฟ

GitHub

เอกสารประกอบ

เครื่องมือที่ใช้การสัญลักษณ์เพื่อตรวจหารูปแบบที่มีช่องโหว่ในสัญญาอัจฉริยะ

  • Manticore - เครื่องมือที่วิเคราะห์ EVM bytecode โดยใช้การประมวลผลสัญลักษณ์

GitHub

เอกสารคู่มือการใช้งาน

  • Hevm - hevm เป็นเครื่องมือการดำเนินการสัญลักษณ์ที่ตรวจสอบความเท่าเทียมของไบต์โค้ด EVM

GitHub

  • Mythril - เครื่องมือการประมวลผลสัญญาอัจฉริยะที่ใช้ในการค้นหาช่องโหว่ในสัญญาอัจฉริยะ Ethereum

GitHub

เอกสาร

สรุป

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

Author: Paul
Translator: Panie
Reviewer(s): Piccolo、Matheus
Translation Reviewer(s): Ashely
* The information is not intended to be and does not constitute financial advice or any other recommendation of any sort offered or endorsed by Gate.io.
* This article may not be reproduced, transmitted or copied without referencing Gate.io. Contravention is an infringement of Copyright Act and may be subject to legal action.
Start Now
Sign up and get a
$100
Voucher!