บันทึกออกแบบโปรโตคอล · 7 กันยายน 2026
การเขียนว่า “ตรวจแล้ว” บนเว็บไซต์ทำง่าย แต่การใช้ให้แม่นยำยากกว่า เราตรวจลายเซ็น การคำนวณ การรวมธุรกรรม เงื่อนไขนโยบาย หรือสิทธิ์ทำขั้นตอนถัดไป?
อินเทอร์เฟซผู้รับที่เสนอของ Proof21 แยกคำถามเหล่านี้โดยตั้งใจ ผลสีเขียวเดียวที่ซ่อนความต่างไม่เหมาะเป็นรากฐานเวิร์กโฟลว์การเงินอัตโนมัติ
1. ตรวจชิ้นหลักฐาน
ชั้นแรกถามว่าชิ้นหลักฐานคงสภาพและผูกอย่างถูกต้องภายใต้สมมติฐานคีย์ที่ยอมรับหรือไม่ ตรวจโครงสร้าง ลายเซ็น ผู้ออก การอ้างถึงงาน และกฎเข้ารหัสที่รองรับ
สิ่งนี้ยืนยันว่าผู้ออกลงนามอะไร ไม่ได้ยืนยันอิสระว่าทุกข้อความเป็นจริง โปรโตคอลบันทึกเช่น PEAC ระบุขอบเขตคำรายงานของผู้ออกชัดเจน [1]
ระบบผู้รับยังต้องมีนโยบายค้นหา หมุน และเพิกถอนคีย์ การตรวจออฟไลน์ด้วยคีย์ที่ให้มาไม่ใช่หลักฐานว่าคีย์ยังได้รับการยอมรับในขณะนี้
2. ประเมินคำกล่าวอ้างที่ระบุ
ชั้นถัดไปใช้นโยบายเฉพาะกับชุดหลักฐานที่กำหนด อาจเทียบผู้รับและจำนวนเงินกับคำสั่ง หรือคำนวณ DMT ซ้ำจากฟิลด์และกฎที่อ้างถึง
ผลมีขอบเขต: ผ่าน ไม่ผ่าน หรือสรุปไม่ได้ พร้อมเหตุผล ห้ามขยายเงื่อนไขเดียวที่ผ่านเป็นคำรับรองทั้งความปลอดภัยของเอเจนต์ ผลลงทุน หรือความครบถ้วนของร่องรอยกระบวนการทั้งหมด
ชนิดหลักฐานสำคัญ คำกล่าวลงนาม ข้อสังเกต RPC ข้อพิสูจน์การรวม และสถานะตรวจอิสระใช้แทนกันไม่ได้ การห่อในรายงานร่วมต้องเก็บความต่างนี้
3. ใช้เกณฑ์ยอมรับของตน
ผู้รับตัดสินว่าผลเพียงพอสำหรับงานถัดไปหรือไม่ งานติดตามมูลค่าต่ำกับข้อผูกมัดทางการเงินมูลค่าสูงอาจกำหนดแหล่ง ความสิ้นสุด ผู้ลงนาม ความสด และการอนุมัติมนุษย์ต่างกัน
จึงเป็นเหตุผลที่ P21 ไม่แทนมาตรการควบคุมทุกอย่างของกระเป๋าหรือแพลตฟอร์ม ผู้รับยังมีอำนาจ รายงานเป็นหลักฐานให้พิจารณาภายใต้อำนาจนั้น ไม่ใช่การให้สิทธิ์ใหม่
ภายนอกเรียบง่าย ภายในชัดเจน
ประสบการณ์นักพัฒนาที่ตั้งใจยังย่อได้ SDK เดียวส่งคำขอ รักษาต้นฉบับ สร้างผลตรวจ และให้ตัวตรวจฝั่งผู้รับ ความเรียบง่ายควรมาจากอินเทอร์เฟซสม่ำเสมอ ไม่ใช่ลบความไม่แน่นอน
หมุดหมายการสร้างแรกคือสองโปรเซสอิสระครบวงจร: ฝ่ายหนึ่งสร้างรายงาน อีกฝ่ายทำซ้ำการตรวจที่รองรับและปฏิเสธหลักฐานที่ถูกแก้ เอกสารปัจจุบันอธิบายเป้าหมายนี้ SDK ที่เผยแพร่ยังไม่มี
รายงานความล้มเหลวที่แท้จริงก็เป็นหลักฐานที่มีประโยชน์
สมมติว่าผู้จัดทำลงนามรายงานระบุว่าการจ่ายเงินสังเคราะห์ใช้ผู้รับผิดคน ผู้ใช้ผลที่เป็นอิสระยืนยันว่ารายงานไม่ถูกแก้ไข และลายเซ็นตรวจสอบได้ด้วยกุญแจที่ให้มาและได้รับการยอมรับ ผลด้านความสมบูรณ์อาจเป็นบวก ขณะที่ผลประเมินการจ่ายเงินเป็น FAIL จากนั้นนโยบายอาจยอมรับรายงานเป็นหลักฐานที่มีประโยชน์ แต่ไม่อนุญาตขั้นตอนถัดไปที่เกี่ยวกับการจ่ายเงิน ผลทั้งสามสอดคล้องกัน ไม่ได้ขัดแย้งกัน
ในทางกลับกัน รายงานที่ไม่ถูกแก้ไขอาจมีคำกล่าวอ้างว่าสำเร็จโดยผู้จัดทำไม่มีหลักฐานรองรับ ตัวประเมินต้องไม่ยืมความแน่นอนมาจากลายเซ็น แบบจำลองข้อมูล Verifiable Credentials ของ W3C เป็นเอกสารต้นทางที่ช่วยแยกการตรวจสอบกลไกของข้อมูลรับรองออกจากการตัดสินใจไว้วางใจของผู้พึ่งพาข้อมูล Proof21 ไม่ได้อ้างว่ารูปแบบสิ่งส่งมอบฉบับร่างของตนเป็นข้อมูลรับรอง W3C โดยอัตโนมัติ [2]
การแยกเช่นนี้ช่วยให้ข้อความข้อผิดพลาดดีขึ้นด้วย “ไม่รองรับโปรไฟล์หลักฐาน” บอกให้ผู้ใช้ผลหาเครื่องมือที่เข้ากันได้หรือหลักฐานชนิดอื่น “ผู้รับไม่ตรงกัน” อธิบายการเปรียบเทียบที่รองรับแต่ไม่ผ่าน ส่วน “นโยบายท้องถิ่นไม่ยอมรับผู้ออก” เป็นเรื่องอำนาจและความไว้วางใจ การรวมทั้งหมดเป็นคำว่า “ไม่ถูกต้อง” อาจทำให้แก้ปัญหายากขึ้นและกระตุ้นการลองใหม่ที่ไม่ปลอดภัย
ต้องตกลงไบต์ให้แน่นอนก่อนลงนาม
วัตถุ JSON สองชุดอาจดูมีความหมายเท่ากันสำหรับผู้อ่าน แต่มีการเข้ารหัสต่างกัน ลายเซ็นต้องใช้ข้อความที่กำหนดอย่างแม่นยำ ไม่ใช่ภาพหน้าจอหรือการตีความของผู้อ่าน RFC 8785 กำหนดกฎ JSON Canonicalization Scheme ซึ่งรวมข้อจำกัดของข้อมูลและการซีเรียลไลซ์แบบกำหนดผลแน่นอน เป็นเอกสารออกแบบที่เกี่ยวข้อง แต่ไม่ทดแทนการเลือกและทดสอบโปรไฟล์การซีเรียลไลซ์ที่แน่นอนของระบบจริง [3]
สำหรับโปรไฟล์ทางการเงิน จำนวนเงินขนาดใหญ่ควรคงเป็นสตริงเลขฐานสิบที่แทนจำนวนเต็มของหน่วยย่อยที่สุด ไม่ใช่แปลงผ่านเลขทศนิยมแบบลอยตัวโดยไม่ระวัง สคีมาที่รับต้องกำหนดชนิดข้อมูลและปฏิเสธความกำกวม อีกทั้งควรผูกเครือข่าย สินทรัพย์ที่แน่นอน ตัวระบุการดำเนินการ เวอร์ชันนโยบาย ไดเจสต์คำสั่ง และไดเจสต์ผลลัพธ์ไว้ในบริบทที่ได้รับการรับรอง ไม่ปล่อยป้ายกำกับสำคัญไว้ภายนอก
ตัวแยกวิเคราะห์ควรปฏิเสธเวอร์ชันที่ไม่รองรับและฟิลด์ซ้ำหรือขัดกันตามกฎที่ประกาศไว้ จำกัดขนาดอินพุตก่อนเริ่มงานที่ใช้ทรัพยากรมาก ใช้ไลบรารีการเข้ารหัสที่เป็นที่ยอมรับพร้อมชุดทดสอบ แทนการให้โมเดลภาษาประดิษฐ์วิธีตรวจลายเซ็น RFC 8032 ให้ข้อกำหนด EdDSA และชุดทดสอบ การเลือก Ed25519 เพียงอย่างเดียวไม่ได้พิสูจน์ความเป็นเจ้าของกุญแจ สถานะการเพิกถอน หรือสิทธิ์ดำเนินการ [4]
การยอมรับเป็นหน้าที่ของนโยบายผู้ใช้ผลที่มีชื่อชัดเจน
ลองนึกถึงผู้ใช้ผลสองรายที่ได้รับรายงานเดียวกัน แดชบอร์ดติดตามอนุญาตให้แสดงการสังเกตเก่าซึ่งติดป้ายชัดเจนเพื่อวิเคราะห์ย้อนหลัง แต่ตัวควบคุมเงินทุนต้องการหลักฐานปัจจุบัน ผู้ออกที่กำหนด เงื่อนไขการยืนยันเพียงพอ และการอนุมัติจากมนุษย์ จึงสมเหตุสมผลที่แดชบอร์ดแสดงรายงานได้ ขณะที่ตัวควบคุมปฏิเสธการกระทำที่เกี่ยวกับธุรกรรม
รายงานต้องไม่แอบเลือกนโยบายที่อ่อนกว่าแทนตัวควบคุม ควรบันทึกว่าประเมินนโยบายใด เงื่อนไขก่อนหน้าครบหรือไม่ และอนุญาตการกระทำถัดไปใดจริง การปรับนโยบายภายหลังต้องไม่เขียนความหมายทางประวัติศาสตร์ของการตัดสินใจเก่าใหม่ เก็บเวอร์ชันเดิมให้ใช้ทำซ้ำได้ และบันทึกการตัดสินใจใหม่เมื่อต้องประเมินอีกครั้ง
ในการนำร่อง ให้ผู้จัดทำและผู้ใช้ผลทำงานคนละกระบวนการและใช้การตั้งค่าแยกกัน ทดสอบรายงานเชิงลบที่แท้จริง หลักฐานที่ถูกแก้ไข ตัวระบุการดำเนินการผิด เวอร์ชันที่ไม่รู้จัก การสังเกตที่หายไป และผู้ออกที่ไม่เป็นที่ยอมรับ เดโมออฟไลน์เพื่อการศึกษามีตัวอย่างสังเคราะห์ของการตรวจความสมบูรณ์และนโยบายบางส่วนแล้ว แต่นั่นไม่ได้อ้างว่ามีการค้นหากุญแจแบบไดนามิก อะแดปเตอร์หลักฐานครบทุกชนิด หรือบริการยอมรับสำหรับระบบใช้งานจริง
คำถามที่พบบ่อย
ลายเซ็นผ่านการตรวจได้ในขณะที่การจ่ายเงินไม่ผ่านได้หรือไม่?
ได้ รายงานที่ลงนามถูกต้องสามารถอธิบายเงื่อนไขการจ่ายเงินที่ไม่ผ่านอย่างตรงไปตรงมา ความสมบูรณ์เป็นเรื่องของสิ่งส่งมอบที่รับรองแล้ว ส่วนการประเมินเป็นเรื่องของข้อกล่าวอ้างและหลักฐานที่ระบุ อินเทอร์เฟซควรแสดงผลทั้งสองอย่างชัดเจน
การยอมรับรายงานอนุญาตให้เอเจนต์ใช้เงินหรือไม่?
ไม่ได้โดยตัวมันเอง ผู้ใช้ผลอาจยอมรับรายงานเพื่อเก็บหรือทบทวน โดยไม่ให้สิทธิ์โอนเงิน สิทธิ์ดำเนินการเป็นหน้าที่ของนโยบายอนุญาตและมาตรการควบคุมที่ชัดเจนของแอปพลิเคชัน
หลักฐานทุกชนิดลดเหลือคะแนนความไว้วางใจเดียวได้หรือไม่?
การทำเช่นนั้นจะซ่อนความแตกต่างสำคัญ คำยืนยันที่ลงนาม การสังเกตผ่าน RPC และสถานะที่ตรวจสอบอย่างอิสระรองรับข้อกล่าวอ้างต่างกัน ซองข้อมูลร่วมควรคงชนิดหลักฐานต้นฉบับ ที่มา ข้อจำกัด และคำถามที่ยังไม่คลี่คลายไว้
เอกสารต้นทางเพิ่มเติม
- 2: W3C Verifiable Credentials Data Model v2.0
- 3: RFC 8785 — JSON Canonicalization Scheme
- 4: RFC 8032 — อัลกอริทึมลายเซ็นดิจิทัล Edwards-Curve
