ห้องนิรภัยแบบไม่เปลี่ยนแปลง
ไม่มีข้อมูลใดถูกเขียนทับ
ห้องนิรภัยอื่นๆ มักแก้ไขข้อมูลโดยตรง เมื่อเปลี่ยนรหัสผ่าน รหัสผ่านเก่าจะหายไปทันที ไม่มีบันทึกว่าเคยมีอยู่ และไม่มีทางพิสูจน์ได้ว่าข้อมูลเมื่อวันอังคารที่แล้วคืออะไร แต่ Clavitor ไม่เขียนทับข้อมูล ทุกการเปลี่ยนแปลงจะบันทึกเป็นเวอร์ชันใหม่ ประวัติจะถูกเก็บรักษาไว้ และบันทึกมีความสมบูรณ์
เป็นแบบ Append-only ในทุกส่วนของระบบ
ข้อมูลรับรองใน Clavitor ไม่ใช่แถวข้อมูลที่คุณแก้ไขโดยตรง แต่เป็นชุดของเวอร์ชันต่างๆ เมื่ออัปเดตรหัสผ่าน ห้องนิรภัยจะ แทรก เวอร์ชันใหม่ โดยไม่แตะต้องเวอร์ชันเก่าเลย เวอร์ชันล่าสุดคือค่าปัจจุบัน ในขณะที่ทุกเวอร์ชันก่อนหน้ายังคงอยู่อย่างครบถ้วนและเป็นระเบียบ
01 — เขียน
เวอร์ชันใหม่ในทุกๆ ครั้ง
การอัปเดตแต่ละครั้งคือคำสั่ง INSERT ไม่ใช่ UPDATE รายการจะคงตัวตนเดิมไว้ขณะที่เลขเวอร์ชันเพิ่มขึ้น การอ่านข้อมูลรับรองจะส่งคืนเวอร์ชันสูงสุด ซึ่งเป็นค่าที่คุณคาดหวัง ในขณะที่ทุกเวอร์ชันก่อนหน้าจะคงอยู่เหมือนตอนที่ถูกบันทึกไว้ทุกประการ
02 — เก็บรักษา
ประวัติตลอดอายุการใช้งานของห้องนิรภัย
เวอร์ชันเก่าจะถูกเก็บรักษาไว้ตราบเท่าที่ห้องนิรภัยยังอยู่ ประวัติการหมุนเวียน ค่าก่อนเกิดการรั่วไหล หรือข้อมูลในฟิลด์ ณ วันที่กำหนด จะไม่ถูกทิ้งเลย อดีตไม่ใช่แค่บันทึกที่คุณหวังว่าจะมีใครเก็บไว้ แต่มันคือตัวข้อมูลเอง
03 — ลบ
สร้าง tombstone ไม่ใช่การลบทิ้ง
การลบข้อมูลรับรองจะสร้างเวอร์ชันใหม่ที่ระบุว่าข้อมูลถูกลบไปแล้ว รายการจะหยุดการอ้างอิง แต่บันทึกการมีอยู่และเวลาที่ถูกลบจะยังคงอยู่ การลบที่คุณพิสูจน์ได้ย่อมมีค่ามากกว่าการลบที่ไม่ทิ้งร่องรอยใดๆ
ทำไมเรื่องนี้จึงสำคัญ
คำถามที่ห้องนิรภัยแบบแก้ไขข้อมูลตอบไม่ได้
เมื่อการแก้ไขทุกครั้งทำลายข้อมูลก่อนหน้า คำถามหลายๆ ประเภทจะไม่สามารถหาคำตอบได้ ความไม่เปลี่ยนแปลง (Immutability) จะตอบคำถามเหล่านี้ได้ด้วยการออกแบบโครงสร้าง
"คีย์คืออะไรในวันที่เกิดเหตุ"
ความลับที่ถูกหมุนเวียนมักจะหายไปทันทีที่ถูกแทนที่ แต่ที่นี่ ค่าที่ใช้งานอยู่ในช่วงเวลาดังกล่าวยังคงอยู่ในห้องนิรภัย ในเวอร์ชันของมัน พร้อมประทับเวลาที่พิสูจน์ได้ การตรวจสอบทางนิติวิทยาศาสตร์ดิจิทัลจึงไม่ต้องเสียเวลาขุดคุ้ยเหมือนงานโบราณคดี
"ใครเป็นคนเปลี่ยน และก่อนหน้ามันคืออะไร"
ทุกการอัปเดต การลบ การเปลี่ยนขอบเขต และการเปลี่ยนเอเจนต์ จะสร้างเหตุการณ์การตรวจสอบที่เชื่อมโยงกับเวอร์ชันใหม่ ประวัติและบันทึกของ ผู้ที่ดำเนินการ คือเรื่องราวเดียวกันที่บอกเล่าในสองมุมมอง และไม่มีสิ่งใดถูกย้อนกลับอย่างเงียบๆ ได้ ดูเส้นทางการตรวจสอบที่ป้องกันการปลอมแปลง →
"เราแค่ยกเลิกการกระทำนั้นได้ไหม"
การหมุนเวียนที่ผิดพลาด การแก้ไขที่พิมพ์ผิด หรือเอเจนต์ที่ถูกโจมตีและเขียนทับฟิลด์ เมื่อไม่มีสิ่งใดถูกทำลาย การกู้ค่าก่อนหน้าคือการอ่านเวอร์ชันก่อนหน้า ไม่ใช่การกู้คืนข้อมูลสำรองและหวังว่ามันจะใหม่พอ
"มีอะไรเปลี่ยนแปลงขณะที่เราไม่ได้ดูไหม"
มันไม่สามารถเปลี่ยนแปลงอย่างเงียบๆ ได้ ไม่มีการแก้ไขข้อมูลโดยตรงที่คุณจะพลาดไป สถานะปัจจุบันคือเวอร์ชันที่มีเลขเวอร์ชัน ผู้สร้าง และประทับเวลา และทุกสถานะก่อนหน้าก็เป็นเช่นเดียวกัน
หลักการเดียวสำหรับทั้งห้องนิรภัย
ความไม่เปลี่ยนแปลงไม่ใช่คุณสมบัติที่เพิ่มเข้ามาในข้อมูลรับรอง แต่มันคือวิธีที่ทุกบันทึกใน Clavitor ถูกสร้างขึ้น รายการของคุณ บันทึกการตรวจสอบ บันทึกคีย์ที่ห่อหุ้มไว้ หรือแม้แต่เนื้อหาของหน้าเหล่านี้ ล้วนเป็นแบบ append-only และทำงานในแบบเดียวกัน ไม่มีจุดใดในระบบที่ความจริงจะถูกเขียนทับ
การจำลองข้อมูลโดยไม่มีความขัดแย้ง
เนื่องจากเวอร์ชันถูกเขียนเพียงครั้งเดียวและไม่ถูกแก้ไข การคัดลอกไปยังอีกซีกโลกจึงเป็นเรื่องง่าย เป็นเพียงเคอร์เซอร์ที่ไปข้างหน้าพร้อมการยืนยันที่ชัดเจนเมื่อข้อมูลถูกบันทึก ไม่มีการแก้ไขที่ต้องประสาน ไม่มีความขัดแย้งที่ต้องแก้ไข และไม่มีคำถามว่า "สำเนาไหนคือข้อมูลที่ถูกต้อง" ข้อมูลแบบ append-only มีประวัติเพียงหนึ่งเดียวเท่านั้น
เก็บรักษา Ciphertext ไม่ใช่ plaintext ที่รั่วไหล
ประวัติที่เก็บรักษาไว้จะถูกเข้ารหัสขณะจัดเก็บ เช่นเดียวกับค่าปัจจุบัน โดยใช้คีย์ที่ไม่เคยเข้าถึงเซิร์ฟเวอร์ของเรา การเก็บรักษาอดีตไม่ได้เพิ่มความเสี่ยงให้คุณเลย ดิสก์ที่ถูกขโมยไปจะมีทั้ง ciphertext เก่าและใหม่ ซึ่งอ่านไม่ออกทั้งคู่ การเข้ารหัสทำงานอย่างไร →
ข้อยกเว้นเพียงหนึ่งเดียว
เราจัดทำเอกสารระบุจุดเดียวที่เราเขียนทับข้อมูล
ความซื่อสัตย์คือส่วนหนึ่งของการออกแบบ มีเพียงฟิลด์เดียวที่ถูกเขียนทับแทนที่จะสร้างเป็นเวอร์ชันใหม่ นั่นคือ verified_at ซึ่งเป็นตัวบันทึกว่า ข้อมูลรับรองใช้งานได้ดีครั้งสุดท้ายเมื่อใด มันเป็นเมทาดาต้าการใช้งาน ไม่ใช่การเปลี่ยนแปลงเนื้อหา จึงอัปเดตเวอร์ชันล่าสุดโดยตรง และการประทับเวลาทุกครั้งจะถูกบันทึกในการตรวจสอบ เราบอกคุณที่นี่เพราะข้อยกเว้นที่ไม่ได้จัดทำเอกสารคือสิ่งที่ทำให้คำอ้างเรื่องความไม่เปลี่ยนแปลงนั้นไร้ความหมาย และนี่คือข้อยกเว้นเพียงหนึ่งเดียว
การลบที่ถูกต้อง
แบบ append-only ไม่ได้หมายความว่าคุณจะถูกลืมไม่ได้ แต่มันหมายความว่าการลืมนั้นเป็นไปโดยเจตนา สมบูรณ์ และมีการบันทึกไว้ Tombstone ต่อเวอร์ชันจะจัดการกับกรณีทั่วไป เมื่อจำเป็นต้องลบจริงๆ เช่น คำขอตาม PDPA หรือการปิดบัญชี การลบจะกระทำทั้งห้องนิรภัยและไม่สามารถย้อนกลับได้ โดยทำงานเป็นการดำเนินการที่ตั้งใจ ไม่ใช่การเขียนทับทีละฟิลด์อย่างเงียบๆ คุณจะไม่ถูกแก้ไขอย่างเงียบๆ เมื่อคุณถูกลบ คุณจะถูกลบอย่างตั้งใจและสมบูรณ์
ห้องนิรภัยที่ซื่อสัตย์จะเก็บรักษาประวัติของมันไว้
ความไม่เปลี่ยนแปลงเป็นเพียงครึ่งหนึ่งของเรื่องราว อีกครึ่งหนึ่งคือบันทึกของผู้ที่เข้าถึงข้อมูล ซึ่งถูกเชื่อมโยง ตรวจสอบได้ และพิสูจน์ได้