ข้อดีอันหนึ่งของระบบ Blockchain คือ เป็นที่เก็บข้อมูลชั้นเยี่ยม ข้อมูลที่เก็บอยู่บน Blockchain นั้นจะเก็บอยู่ตลอดไป ไม่มีสูญหาย ไม่สามารถแก้ไขได้ ตราบเท่าที่ยังมีผู้ที่คอย Run ระบบ Blockchain นั้นอยู่
โดยข้อมูลที่ถูกส่งไปเก็บใน Blockchain นั้นจะอยู่ในรูปแบบของ Transaction ซึ่ง Transaction ทั้งหมด ก่อนที่จะถูกบันทึกลงไปบน Blockchain จะต้องถูกยืนยันความถูกต้องด้วย Node ต่าง ๆ ที่เป็นหน่วยประมวลผลแบบกระจายศูนย์ที่ทำงานเป็นส่วนหนึ่งของเครือข่าย แต่มันเป็นเรื่องที่เหมาะสมรึเปล่า ที่จะเอาข้อมูลต่างๆลงไปเก็บอยู่บน Blockchain ?
ถ้าถามถึงการประยุกต์ใช้งาน Blockchain ในวงการต่าง ๆ เช่น ในวงการแพทย์ มักจะมีคนยกตัวอย่างเคส การใช้ Blockchain ในการเก็บข้อมูลประวัติการรักษาของคนไข้ โดยอ้างถึงข้อดีของ Blockchain ว่าข้อมูลประวัติการรักษาไม่มีการสูญหาย สามารถแชร์กันระหว่างโรงพยาบาลได้เมื่อเกิดเหตุฉุกเฉินโดยที่ไม่ต้องส่งเรื่องไปขอข้อมูลที่โรงพยาบาลที่คนไข้ไปตรวจอยู่เป็นประจำ
แต่ถ้าเหตุไม่ฉุกเฉินล่ะ ? คนไข้ของโรงพยาบาลแต่ละคนโอเคมั้ยกับการเก็บข้อมูลประวัติการรักษาบนระบบ Blockchain ที่ใคร ๆ ก็เข้าถึงได้โดยไม่ต้องขออนุญาต ข้อมูลในการรักษาบางอย่างควรจะถูกเก็บเป็นความลับ คงไม่มีใครอยากจะเปิดเผยว่าเป็นโรคอะไรอยู่บ้างกับสาธารณะถูกมั้ย ? ถ้าไม่โอเค เราจะมีวิธีการอย่างไรบ้างที่จะเก็บข้อมูลบน Blockchain โดยได้ทั้งความคงทนถาวรของข้อมูล และการไม่สูญเสียความเป็นส่วนตัวไป
วันนี้ทาง Token X ในฐานะผู้ให้บริการเกี่ยวกับธุรกิจโทเคนดิจิทัลแบบครบวงจร และผู้เชี่ยวชาญด้านเทคโนโลยี Blockchain ได้รวบรวมวิธีต่าง ๆ ที่จะสามารถนำเทคโนโลยี Blockchain มาประยุกต์ใช้ได้ใน Use-case ของคุณให้มีประสิทธิภาพมากยิ่งขึ้น
เราสามารถใช้ Private Blockchain Solution ได้ถ้าต้องการการเก็บข้อมูลที่เป็นความลับเฉพาะในกลุ่ม ตัว Private Blockchain มีลักษณะที่น่าสนใจคือการ Verify ข้อมูลจะถูกทำอยู่ที่ Node ที่จำกัดจำนวน และเลือกเฉพาะคนที่เชื่อถือได้เท่านั้นมาเป็น Validator Node หรือ Notary เช่น ถ้าเป็นกรณีของข้อมูลประวัติการรักษาจากโรงพยาบาล เราสามารถพัฒนาระบบ Private Blockchain ที่อนุญาติให้เฉพาะโรงพยาบาลต่าง ๆ เท่านั้นที่จะสามารถเข้ามาเป็นส่วนหนึ่งของระบบเครือข่าย และสามารถดึงข้อมูลจาก Blockchain ได้ จะเห็นว่าการใช้งาน Private Chain เหมาะกับ Use-case ที่มีลักษณะเป็น Close-loop ซึ่งก็อาจจะดีสำหรับธุรกิจหรือกิจกรรมที่ต้องมีการรักษาความลับ แต่ก็จะเสียความ Decentralized ไป โดยต้องอาศัยความเชื่อใจของสมาชิกในกลุ่มในการตรวจสอบและแชร์ข้อมูลกัน
คุณสามารถให้นักพัฒนาระบบทำ Custom Solution ที่ใช้การเก็บข้อมูลนอก Blockchain เช่น การเก็บข้อมูลอยู่ในระบบฐานข้อมูล (Database) แต่มีการสร้าง Hash ของข้อมูล (อ่านเพิ่มเติมเกี่ยวกับ Hash function ได้ที่: Link ) เพื่อใช้ในการยืนยันความถูกต้องและเก็บ Hash ของข้อมูลต้นฉบับบน Blockchain
ตัวข้อดีของ Solution นี้ก็คือง่ายสำหรับการพัฒนาและเก็บข้อมูลและสามารถป้องกันการแก้ไขได้จากการตรวจสอบกับ Hash ที่อยู่บน Blockchain แต่ข้อเสียคือการจะยืนยันว่าข้อมูลที่อยู่บนฐานข้อมูลนอก Blockchain นั้นถูกต้องจริง ๆ จะต้องมีการ เปิดเผยข้อมูลต้นทางในฐานข้อมูล เพื่อใช้ในการคำนวณซ้ำว่า Hash นั้นมีค่าเป็นอะไร และถ้าค่า Hash ที่คำนวณจากข้อมูลในฐานข้อมูล ตรงกับค่า Hash ที่อยู่ใน Chain ถือว่าข้อมูลต้นทางนั้นถูกต้อง และไม่มีการแก้ไขเทคนิคนี้สามารถนำมาใช้กับข้อมูลที่ต้องการปกปิดชั่วคราวเพื่อให้ตรวจสอบได้ในภายหลัง
ถ้าหากต้องการจะสร้างระบบที่สามารถตรวจสอบข้อมูลที่อยู่นอก Blockchain ได้โดยไม่ต้องเปิดเผยข้อมูลต้นฉบับ เราสามารถใช้หลักการของ Zero-knowledge Proof ในการสร้างข้อมูลที่ใช้ในการตรวจสอบ Zero-knowledge Proof เป็นการใช้วิธีการในการตรวจสอบว่าข้อมูลที่ฝ่ายหนึ่งถืออยู่นั้นถูกต้องโดยไม่จำเป็นต้องเปิดเผยข้อมูลทั้งหมด เช่น ในภาพนี้ ถ้าเราจะช่วยน้องผู้หญิงหาว่าในภาพนี้มีกล้องดูดาวอยู่มั้ย โดยจำเป็นจะต้องไม่เปิดเผยตำแหน่งที่แน่นอนของกล้องดูดาว เราอาจจะใช้วิธีการตัดภาพ มาเฉพาะจุดที่เป็นกล้องดูดาว
ภาพที่ตัดนี้แสดงให้เห็นว่า มีกล้องดูดาวอยู่ในรูปจริง อาจจะมีการเปิดเผยข้อมูลรอบข้างเพียงเล็กน้อย แต่ไม่ได้เปิดเผยตำแหน่งพิกัดที่ชัดเจนบนภาพใหญ่ ลักษณะนี้ก็ถือว่าเป็น Zero-knowledge Proof แบบหนึ่ง
Zero-Knowledge Proof มี 2 ประเภทคือแบบ Interactive และ Non-interactive หลักการของตัว Interactive คือ จะต้องมีการทำ Action บางอย่างหลาย ๆ ครั้งเพื่อยืนยันความถูกต้อง เช่น ถ้าจะพิสูจน์ว่านักเรียนคนหนึ่งเข้าใจวิชา Calculus โดยที่ไม่จำเป็นต้องให้นักเรียนคนนั้นอธิบายทฤษฎีของ Calculus ทั้งหมด ก็คือการตั้งโจทย์วิชา Calculus มาจำนวนหนึ่ง ให้นักเรียนแก้ปัญหาและนำคำตอบมาตรวจ ถ้านักเรียนทำโจทย์ได้ผลถูกต้องตรงกับคำตอบหลาย ๆ ครั้ง ก็จะยิ่งมั่นใจว่านักเรียนเข้าใจวิชา Calculus จริง ๆ โดยไม่จำเป็นต้องให้นักเรียนมาอธิบาย ยิ่งทำถูกเยอะยิ่งหมายความว่าเชื่อถือได้มากว่านักเรียนคนนั้นเข้าใจ Calculus อย่างถ่องแท้
ส่วน Zero-Knowledge Proof แบบ Non-interactive นั้น เหมาะกับการนำมาใช้งานจริงร่วมกับระบบ Blockchain เพราะใช้หลักการของสูตรคำนวณทางคณิตศาสตร์มาคำนวณหาความถูกต้องของข้อมูลต้นทางโดยที่ไม่จำเป็นต้องเปิดเผยข้อมูลต้นทาง และไม่จำเป็นต้องใช้การทำ Action ของการทดสอบจำนวนหลาย ๆ ครั้ง ทำให้กระบวนการตรวจสอบสามารถทำได้แบบกระจายศูนย์จากที่ใดก็ได้
หลักการของ Zero-Knowledge Proof แบบ Non-interactive มี Protocol หนึ่งที่ได้รับความนิยมชื่อว่า zk-SNARK ย่อมาจาก Zero-knowledge Succinct Non-Interactive Argument of Knowledge โดยใน zk-SNARK จะมีผู้ที่เกี่ยวข้องอยู่ 2 ส่วนคือ Prover และ Verifier โดย Prover จะต้องสามารถทำให้ Verifier เชื่อได้ในเวลาอันรวดเร็ว (ด้วยหลักการทางคณิตศาสตร์) ว่าข้อมูลนั้นถูกต้องโดยไม่จำเป็นต้องเห็นข้อมูลต้นทาง
การนำหลักการของ Zero-Knowledge Proof มาใช้นั้น สามารถนำไปประยุกต์ใช้กับ Blockchain Solution ที่หลากหลาย ยกตัวอย่างเช่นการทำระบบการประมูลแบบ Blind ซึ่งผู้ส่งราคาประมูลแต่ละคนจะไม่สามารถเห็นข้อมูลการประมูลของคนอื่นๆ ซึ่งการนำ Blockchain มาใช้ย่อมเพิ่มความโปร่งใส แต่ด้วยเทคนิคของ Zero-Knowledge Proof ทำให้สามารถปกปิดราคาประมูลได้ เป็นต้น
บทความโดย : นายพนิต เวชศิลป์ ประธานเจ้าหน้าที่ฝ่ายเทคโนโลยี (CTO) บริษัท โทเคน เอกซ์ จำกัด
ลงทะเบียนเข้าสู่ระบบ เพื่ออ่านบทความฟรีไม่จำกัด