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

เอกสาร

สรุป

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

ผู้เขียน: Paul
นักแปล: Panie
ผู้ตรวจทาน: Piccolo、Matheus
ผู้ตรวจสอบการแปล: Ashely
* ข้อมูลนี้ไม่ได้มีวัตถุประสงค์เป็นคำแนะนำทางการเงินหรือคำแนะนำอื่นใดที่ Gate.io เสนอหรือรับรอง
* บทความนี้ไม่สามารถทำซ้ำ ส่งต่อ หรือคัดลอกโดยไม่อ้างอิงถึง Gate.io การฝ่าฝืนเป็นการละเมิดพระราชบัญญัติลิขสิทธิ์และอาจถูกดำเนินการทางกฎหมาย

แชร์

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

เอกสาร

สรุป

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

ผู้เขียน: Paul
นักแปล: Panie
ผู้ตรวจทาน: Piccolo、Matheus
ผู้ตรวจสอบการแปล: Ashely
* ข้อมูลนี้ไม่ได้มีวัตถุประสงค์เป็นคำแนะนำทางการเงินหรือคำแนะนำอื่นใดที่ Gate.io เสนอหรือรับรอง
* บทความนี้ไม่สามารถทำซ้ำ ส่งต่อ หรือคัดลอกโดยไม่อ้างอิงถึง Gate.io การฝ่าฝืนเป็นการละเมิดพระราชบัญญัติลิขสิทธิ์และอาจถูกดำเนินการทางกฎหมาย
เริ่มตอนนี้
สมัครและรับรางวัล
$100