ฟังก์ชันแฮชการเข้ารหัส (CHF) มีมาตั้งแต่ทศวรรษ 1980 และพบยูทิลิตี้ที่แพร่หลายในด้านการเข้ารหัส การตรวจสอบความสมบูรณ์ของข้อมูล การทำดัชนีฐานข้อมูล และโดเมนอื่นๆ อีกมากมาย
เมื่อคำนวณฟังก์ชันแฮชการเข้ารหัส ข้อมูลที่มีความยาวตามต้องการจะถูกป้อนข้อมูล และฟังก์ชันที่เกี่ยวข้องจะแปลงเป็นค่าเอาต์พุตที่มีความยาวคงที่ การแปลงนี้เกี่ยวข้องกับการใช้การดำเนินการต่างๆ กับส่วนต่างๆ ของข้อมูลอินพุต ซึ่งโดยทั่วไปเรียกว่าแฮช ผลลัพธ์ที่ได้เรียกว่าค่าแฮช โดยการดำเนินการเองเรียกว่าฟังก์ชันแฮช
ตัวอย่างที่ชัดเจนคือ MD5 Algorithm ซึ่งใช้บ่อยในโปรแกรมดาวน์โหลด P2P โดยมีความยาว 128 บิต ผู้ใช้สามารถเปรียบเทียบค่าแฮชของไฟล์ที่ดาวน์โหลดกับค่าที่มาจากแหล่งที่มา การจับคู่บ่งบอกถึงความสมบูรณ์ของไฟล์
แอปพลิเคชั่นที่แพร่หลายอีกตัวหนึ่งคือการตรวจสอบรหัสผ่านบนเว็บไซต์ เพื่อปกป้องรหัสผ่านของผู้ใช้ แพลตฟอร์มส่วนใหญ่จะจัดเก็บรหัสผ่านแบบแฮชมากกว่าการป้อนข้อความธรรมดา เมื่อผู้ใช้เข้าสู่ระบบ ระบบจะคำนวณฟังก์ชันแฮชของรหัสผ่านที่ป้อนและเปรียบเทียบกับค่าที่เก็บไว้ที่เกี่ยวข้องกับชื่อผู้ใช้ ลักษณะที่ไม่สามารถย้อนกลับได้ของฟังก์ชันแฮชที่เข้ารหัสจะป้องกันการถอดรหัสรหัสผ่าน แม้ว่าแฮกเกอร์จะได้รับค่าแฮชของฐานข้อมูลก็ตาม
การค้นหา 'SHA256 Generator' เผยให้เห็นว่าเว็บไซต์ต่างๆ ที่ใช้อัลกอริธึมเดียวกันจะสร้างค่าแฮชที่เหมือนกันสำหรับข้อความอินพุตที่คล้ายกันอย่างสม่ำเสมอ
นอกจากนี้ การเปลี่ยนแปลงขนาดตัวพิมพ์ของข้อความอินพุตยังส่งผลให้ค่าแฮชเอาต์พุตแตกต่างกันโดยสิ้นเชิง ซึ่งเรียกว่าเอฟเฟกต์ Avalanche คุณลักษณะต่อไปนี้จะวัดความปลอดภัยของฟังก์ชันแฮชที่เข้ารหัส:
ในตัวอย่างข้างต้น การสร้างรหัสผ่านของผู้ใช้ใหม่จากค่าแฮชที่ถูกขโมยทำให้เกิดปัญหาอย่างมาก การดำเนินการที่ซับซ้อนและการบีบอัดข้อมูลภายในฟังก์ชันแฮชที่เข้ารหัสเป็นอุปสรรคต่อการทำวิศวกรรมย้อนกลับ โดยเน้นลักษณะที่เป็นทิศทางเดียว
การต้านทานก่อนอิมเมจที่สอง: การระบุค่าอินพุตอื่นที่สร้างค่าแฮชเดียวกันโดยให้อินพุตเริ่มต้นนั้นเป็นเรื่องยาก **คุณสมบัตินี้เรียกว่าความต้านทานการชนที่อ่อนแอ
การต้านทานการชนกัน: การค้นพบค่าที่แตกต่างกันสองค่าซึ่งให้ค่าแฮชที่เหมือนกันนั้นเป็นสิ่งที่ท้าทายและเรียกว่าการชนกันของแฮชแบบเข้ารหัส คุณสมบัตินี้หมายถึงความต้านทานการชนที่แข็งแกร่ง
ยกตัวอย่าง MD5 ที่กล่าวถึง เป็นไปได้ไหมที่ไฟล์ต่างๆ จะสร้างค่าแฮชเดียวกัน คำตอบคือใช่ แต่ความน่าจะเป็นต่ำมาก ปรากฏการณ์นี้เรียกว่าการชนกันของแฮชที่เข้ารหัสลับ ซึ่งอาจเกิดขึ้นได้ทั้งโดยบังเอิญหรือจากการโจมตีโดยเจตนา ความน่าจะเป็นในการชนกันแบบมาตรฐานสำหรับอัลกอริทึม MD5 อยู่ที่ประมาณ 1/2¹²⁸ ทำให้เกิดอุบัติเหตุได้น้อยมาก อย่างไรก็ตาม MD5 ถือว่ามีความเสี่ยงที่จะถูกโจมตีด้วยการชนกันโดยเจตนา เนื่องจากการสร้างค่าแฮชที่เหมือนกันสำหรับข้อความธรรมดาสองข้อความที่แตกต่างกันนั้นค่อนข้างง่าย ดังนั้น แม้ว่าอัลกอริธึม MD5 ยังสามารถใช้ได้กับงานที่ไม่เกี่ยวข้องกับการรักษาความปลอดภัย แต่ก็ไม่เหมาะกับงานการตรวจสอบความถูกต้องด้านความปลอดภัยอีกต่อไป (เช่น การตรวจสอบความถูกต้องของคีย์หรือลายเซ็นดิจิทัล)
Ethereum ใช้ฟังก์ชันแฮชการเข้ารหัส KECCAK-256 ซึ่งหลายคนเข้าใจผิดว่าเป็น SHA-3 (รวมถึงวิทยานิพนธ์ระดับปริญญาเอกของผู้ก่อตั้ง Celestia) เนื่องจากฟังก์ชันนี้เดิมเขียนเป็น 'sha3' ใน Solidity เนื่องจากความสับสน จึงได้เปลี่ยนชื่อเป็น Keccak256 ในเวลาต่อมา
MetaMask ใช้ฟังก์ชันแฮชการเข้ารหัสที่หลากหลายในการดำเนินงาน:
Bitcoin ใช้ฟังก์ชันแฮชการเข้ารหัส SHA-256 ที่นี่ เราจะอธิบายกระบวนการที่นักขุด Bitcoin มีส่วนร่วมกับฟังก์ชันแฮชที่เข้ารหัสระหว่างกิจกรรมการขุด
ในการขุด Bitcoin นักขุดจะรวมข้อมูลธุรกรรมเข้ากับส่วนหัวของบล็อก ซึ่งประกอบด้วยรายละเอียดธุรกรรมควบคู่ไปกับข้อมูลเมตา เช่น การประทับเวลาและตัวเลขสุ่ม นักขุดมุ่งมั่นที่จะสร้างแฮช SHA-256 ที่เฉพาะเจาะจงโดยการปรับตัวเลขสุ่มซ้ำๆ (เรียกว่า “nonce”) ในส่วนหัวของบล็อกโดยมีเป้าหมายเพื่อให้เป็นไปตามเกณฑ์เฉพาะ โดยทั่วไปจะเริ่มต้นด้วยจำนวนศูนย์นำหน้าที่กำหนดไว้ เมื่อพิจารณาถึงธรรมชาติของฟังก์ชันแฮช SHA-256 วิธีการเดียวในการค้นหาแฮชที่เป็นไปตามข้อกำหนดก็คือการทดลองอย่างต่อเนื่องโดยใช้ตัวเลขสุ่มต่างๆ
เมื่อพบแฮชที่ตรงตามข้อกำหนด นักขุดสามารถผนวกบล็อกเข้ากับบล็อกเชนของเครือข่าย Bitcoin และรับ Bitcoins ตามจำนวนที่กำหนดเป็นรางวัล กระบวนการนี้เรียกว่า "การขุด" เกี่ยวข้องกับการดำเนินการฟังก์ชันแฮชอย่างต่อเนื่องเพื่อระบุค่าแฮชที่ตรงตามเกณฑ์ที่ระบุ
นอกเหนือจากการขุดแล้ว ฟังก์ชันแฮชการเข้ารหัสยังเป็นหัวใจสำคัญในการสร้างการเชื่อมโยงระหว่างบล็อกและการติดตามการเปลี่ยนแปลงธุรกรรมภายในระบบบล็อกเชน ตัวชี้แฮชทำหน้าที่เป็นโครงสร้างข้อมูลที่อำนวยความสะดวกในการจัดทำดัชนี การดึงข้อมูล และการตรวจสอบการแก้ไขข้อมูล แต่ละธุรกรรมภายในบล็อคเชนผ่านการแฮชก่อนที่จะถูกจัดระเบียบเป็นบล็อค ต่อจากนั้น ตัวชี้แฮชจะเชื่อมต่อแต่ละบล็อกกับบล็อกก่อนหน้าโดยจัดเก็บแฮชของข้อมูลของบล็อกก่อนหน้า ลักษณะของบล็อกที่เชื่อมต่อถึงกันทำให้แน่ใจถึงความไม่เปลี่ยนรูปภายในบล็อกเชน การแก้ไขธุรกรรมใด ๆ ส่งผลให้เกิดค่าแฮชที่แตกต่างกัน ซึ่งส่งผลให้แฮชของบล็อกที่ตามมาทั้งหมดเปลี่ยนแปลงไป ตัวอย่างเช่น พิจารณาบล็อกเชนที่ประกอบด้วยสองบล็อก:
บล็อก 1: ครอบคลุมแฮชของธุรกรรม T1, T2 และ T3
บล็อก 2: นำเสนอแฮชของธุรกรรม T4, T5 และ T6 พร้อมด้วยแฮชของบล็อก 1
หากบุคคลพยายามที่จะยุ่งเกี่ยวกับธุรกรรม T1 ในบล็อก 1 พวกเขาจะต้องปรับเทียบค่าแฮชของบล็อก 1 ใหม่และอัปเดตค่าใหม่ในบล็อก 2 อย่างไรก็ตาม เนื่องจากลักษณะการต้านทานแบบทิศทางเดียวและลักษณะก่อนอิมเมจของฟังก์ชันแฮชที่เข้ารหัสลับ การย้อนกลับธุรกรรม T1 ใน Block 1 ตามค่าแฮชของ Block 2 พิสูจน์ได้ว่ามีความท้าทาย
นอกจากนี้ เนื่องจาก Block 2 รวมค่าแฮชของ Block 1 เข้าไปด้วย การดัดแปลง Block 1 จะส่งผลให้ค่าแฮชของ Block 2 เปลี่ยนไป สิ่งนี้จำเป็นต้องแก้ไขบล็อกที่ตามมาทั้งหมดพร้อมกันเพื่อแก้ไขใดๆ ภายในบล็อกเชน ซึ่งเป็นงานที่น่าเกรงขาม ด้วยเหตุนี้ ฟังก์ชันแฮชการเข้ารหัสจึงรักษาความสอดคล้องและความสมบูรณ์ของข้อมูลบล็อกเชนได้อย่างมีประสิทธิภาพ
ในขอบเขตของบล็อกเชน ฟังก์ชันแฮชการเข้ารหัสช่วยเติมเต็มบทบาทที่สำคัญหลายประการ:
การเชื่อมโยงบล็อก: ส่วนหัวของแต่ละบล็อกมีค่าแฮชของบล็อกก่อนหน้า ซึ่งอำนวยความสะดวกในการเชื่อมโยงห่วงโซ่ของบล็อกเพื่อให้มั่นใจถึงความสมบูรณ์ที่เห็นได้ชัดจากการงัดแงะ
การตรวจสอบธุรกรรม: ข้อมูลธุรกรรมผ่านการแฮช โดยมีค่าแฮชผลลัพธ์ที่รวมอยู่ในบล็อก เพื่อยืนยันความถูกต้องและความสมบูรณ์ของธุรกรรม
กลไกฉันทามติ: ภายในกลไกฉันทามติ Proof of Work (PoW) นักขุดจะต้องระบุค่า nonce ที่ตรงตามข้อกำหนดความยากโดยการดำเนินการฟังก์ชันแฮช
เมื่อวันที่ 2 กันยายน 2022 Vitalik โพสต์คำถามบน Twitter (X) โดยถามว่าฟังก์ชันแฮชการเข้ารหัสใดจะยังคงปลอดภัย หากคอมพิวเตอร์ควอนตัมที่ใช้อัลกอริทึมของ Shor ได้รับการประดิษฐ์ขึ้นมา
ที่มา: ทวีต Vitalik
เขาชี้ให้เห็นว่าคอมพิวเตอร์ควอนตัมที่สามารถใช้อัลกอริธึมของ Shor สามารถเจาะผ่าน RSA (ระบบการเข้ารหัสคีย์สาธารณะที่มีมายาวนาน) หรืออะไรก็ตามที่ขึ้นอยู่กับการแยกตัวประกอบ เส้นโค้งวงรี และกลุ่มของลำดับที่ไม่รู้จัก อย่างไรก็ตาม ค่าแฮช (เช่น SHA-256) มีราคาดีในบริบทของการคำนวณควอนตัม แม้ว่าความปลอดภัยจะลดลงบ้างก็ตาม โดยแนะนำให้ใช้ค่าแฮชที่ยาวขึ้น
ฟังก์ชันแฮชสำหรับการเข้ารหัส เช่น SHA-256 มีประสิทธิภาพเพียงใด “256” ใน SHA-256 หมายถึง 2 ยกกำลัง 256 ซึ่งเป็นตัวเลขที่กว้างใหญ่มากจนยากที่จะเข้าใจอย่างเป็นรูปธรรม
ที่มา: 3Blue1Brown
อย่างไรก็ตาม 3Blue1Brown ได้นำเสนอการเปรียบเทียบที่ชัดเจนเพื่อช่วยในการทำความเข้าใจความปลอดภัยของฟังก์ชันแฮชการเข้ารหัส: ลองจินตนาการถึงสถานการณ์ที่บุคคล 4 พันล้านคนบนโลกแต่ละคนมีคอมพิวเตอร์ที่มีความสามารถด้านการประมวลผลที่ยอดเยี่ยม เทียบเท่ากับพลังการประมวลผลของ Google 1,000 เท่าทั่วโลก ขณะเดียวกัน ลองนึกภาพจักรวาลที่มีดาวเคราะห์ 4 พันล้านดวงและกาแล็กซี 4 พันล้านกาแล็กซีที่คล้ายกับทางช้างเผือก! แม้ภายใต้สภาวะที่รุนแรงเหล่านี้ อาจต้องใช้เวลากว่า 500 พันล้านปีก่อนจะมีโอกาส 1 ใน 4 พันล้านที่จะคาดเดาได้อย่างแม่นยำ “อินพุตเฉพาะที่จำเป็นในการสร้างค่าแฮชเอาต์พุต SHA-256”
ฟังก์ชันแฮชการเข้ารหัส (CHF) มีมาตั้งแต่ทศวรรษ 1980 และพบยูทิลิตี้ที่แพร่หลายในด้านการเข้ารหัส การตรวจสอบความสมบูรณ์ของข้อมูล การทำดัชนีฐานข้อมูล และโดเมนอื่นๆ อีกมากมาย
เมื่อคำนวณฟังก์ชันแฮชการเข้ารหัส ข้อมูลที่มีความยาวตามต้องการจะถูกป้อนข้อมูล และฟังก์ชันที่เกี่ยวข้องจะแปลงเป็นค่าเอาต์พุตที่มีความยาวคงที่ การแปลงนี้เกี่ยวข้องกับการใช้การดำเนินการต่างๆ กับส่วนต่างๆ ของข้อมูลอินพุต ซึ่งโดยทั่วไปเรียกว่าแฮช ผลลัพธ์ที่ได้เรียกว่าค่าแฮช โดยการดำเนินการเองเรียกว่าฟังก์ชันแฮช
ตัวอย่างที่ชัดเจนคือ MD5 Algorithm ซึ่งใช้บ่อยในโปรแกรมดาวน์โหลด P2P โดยมีความยาว 128 บิต ผู้ใช้สามารถเปรียบเทียบค่าแฮชของไฟล์ที่ดาวน์โหลดกับค่าที่มาจากแหล่งที่มา การจับคู่บ่งบอกถึงความสมบูรณ์ของไฟล์
แอปพลิเคชั่นที่แพร่หลายอีกตัวหนึ่งคือการตรวจสอบรหัสผ่านบนเว็บไซต์ เพื่อปกป้องรหัสผ่านของผู้ใช้ แพลตฟอร์มส่วนใหญ่จะจัดเก็บรหัสผ่านแบบแฮชมากกว่าการป้อนข้อความธรรมดา เมื่อผู้ใช้เข้าสู่ระบบ ระบบจะคำนวณฟังก์ชันแฮชของรหัสผ่านที่ป้อนและเปรียบเทียบกับค่าที่เก็บไว้ที่เกี่ยวข้องกับชื่อผู้ใช้ ลักษณะที่ไม่สามารถย้อนกลับได้ของฟังก์ชันแฮชที่เข้ารหัสจะป้องกันการถอดรหัสรหัสผ่าน แม้ว่าแฮกเกอร์จะได้รับค่าแฮชของฐานข้อมูลก็ตาม
การค้นหา 'SHA256 Generator' เผยให้เห็นว่าเว็บไซต์ต่างๆ ที่ใช้อัลกอริธึมเดียวกันจะสร้างค่าแฮชที่เหมือนกันสำหรับข้อความอินพุตที่คล้ายกันอย่างสม่ำเสมอ
นอกจากนี้ การเปลี่ยนแปลงขนาดตัวพิมพ์ของข้อความอินพุตยังส่งผลให้ค่าแฮชเอาต์พุตแตกต่างกันโดยสิ้นเชิง ซึ่งเรียกว่าเอฟเฟกต์ Avalanche คุณลักษณะต่อไปนี้จะวัดความปลอดภัยของฟังก์ชันแฮชที่เข้ารหัส:
ในตัวอย่างข้างต้น การสร้างรหัสผ่านของผู้ใช้ใหม่จากค่าแฮชที่ถูกขโมยทำให้เกิดปัญหาอย่างมาก การดำเนินการที่ซับซ้อนและการบีบอัดข้อมูลภายในฟังก์ชันแฮชที่เข้ารหัสเป็นอุปสรรคต่อการทำวิศวกรรมย้อนกลับ โดยเน้นลักษณะที่เป็นทิศทางเดียว
การต้านทานก่อนอิมเมจที่สอง: การระบุค่าอินพุตอื่นที่สร้างค่าแฮชเดียวกันโดยให้อินพุตเริ่มต้นนั้นเป็นเรื่องยาก **คุณสมบัตินี้เรียกว่าความต้านทานการชนที่อ่อนแอ
การต้านทานการชนกัน: การค้นพบค่าที่แตกต่างกันสองค่าซึ่งให้ค่าแฮชที่เหมือนกันนั้นเป็นสิ่งที่ท้าทายและเรียกว่าการชนกันของแฮชแบบเข้ารหัส คุณสมบัตินี้หมายถึงความต้านทานการชนที่แข็งแกร่ง
ยกตัวอย่าง MD5 ที่กล่าวถึง เป็นไปได้ไหมที่ไฟล์ต่างๆ จะสร้างค่าแฮชเดียวกัน คำตอบคือใช่ แต่ความน่าจะเป็นต่ำมาก ปรากฏการณ์นี้เรียกว่าการชนกันของแฮชที่เข้ารหัสลับ ซึ่งอาจเกิดขึ้นได้ทั้งโดยบังเอิญหรือจากการโจมตีโดยเจตนา ความน่าจะเป็นในการชนกันแบบมาตรฐานสำหรับอัลกอริทึม MD5 อยู่ที่ประมาณ 1/2¹²⁸ ทำให้เกิดอุบัติเหตุได้น้อยมาก อย่างไรก็ตาม MD5 ถือว่ามีความเสี่ยงที่จะถูกโจมตีด้วยการชนกันโดยเจตนา เนื่องจากการสร้างค่าแฮชที่เหมือนกันสำหรับข้อความธรรมดาสองข้อความที่แตกต่างกันนั้นค่อนข้างง่าย ดังนั้น แม้ว่าอัลกอริธึม MD5 ยังสามารถใช้ได้กับงานที่ไม่เกี่ยวข้องกับการรักษาความปลอดภัย แต่ก็ไม่เหมาะกับงานการตรวจสอบความถูกต้องด้านความปลอดภัยอีกต่อไป (เช่น การตรวจสอบความถูกต้องของคีย์หรือลายเซ็นดิจิทัล)
Ethereum ใช้ฟังก์ชันแฮชการเข้ารหัส KECCAK-256 ซึ่งหลายคนเข้าใจผิดว่าเป็น SHA-3 (รวมถึงวิทยานิพนธ์ระดับปริญญาเอกของผู้ก่อตั้ง Celestia) เนื่องจากฟังก์ชันนี้เดิมเขียนเป็น 'sha3' ใน Solidity เนื่องจากความสับสน จึงได้เปลี่ยนชื่อเป็น Keccak256 ในเวลาต่อมา
MetaMask ใช้ฟังก์ชันแฮชการเข้ารหัสที่หลากหลายในการดำเนินงาน:
Bitcoin ใช้ฟังก์ชันแฮชการเข้ารหัส SHA-256 ที่นี่ เราจะอธิบายกระบวนการที่นักขุด Bitcoin มีส่วนร่วมกับฟังก์ชันแฮชที่เข้ารหัสระหว่างกิจกรรมการขุด
ในการขุด Bitcoin นักขุดจะรวมข้อมูลธุรกรรมเข้ากับส่วนหัวของบล็อก ซึ่งประกอบด้วยรายละเอียดธุรกรรมควบคู่ไปกับข้อมูลเมตา เช่น การประทับเวลาและตัวเลขสุ่ม นักขุดมุ่งมั่นที่จะสร้างแฮช SHA-256 ที่เฉพาะเจาะจงโดยการปรับตัวเลขสุ่มซ้ำๆ (เรียกว่า “nonce”) ในส่วนหัวของบล็อกโดยมีเป้าหมายเพื่อให้เป็นไปตามเกณฑ์เฉพาะ โดยทั่วไปจะเริ่มต้นด้วยจำนวนศูนย์นำหน้าที่กำหนดไว้ เมื่อพิจารณาถึงธรรมชาติของฟังก์ชันแฮช SHA-256 วิธีการเดียวในการค้นหาแฮชที่เป็นไปตามข้อกำหนดก็คือการทดลองอย่างต่อเนื่องโดยใช้ตัวเลขสุ่มต่างๆ
เมื่อพบแฮชที่ตรงตามข้อกำหนด นักขุดสามารถผนวกบล็อกเข้ากับบล็อกเชนของเครือข่าย Bitcoin และรับ Bitcoins ตามจำนวนที่กำหนดเป็นรางวัล กระบวนการนี้เรียกว่า "การขุด" เกี่ยวข้องกับการดำเนินการฟังก์ชันแฮชอย่างต่อเนื่องเพื่อระบุค่าแฮชที่ตรงตามเกณฑ์ที่ระบุ
นอกเหนือจากการขุดแล้ว ฟังก์ชันแฮชการเข้ารหัสยังเป็นหัวใจสำคัญในการสร้างการเชื่อมโยงระหว่างบล็อกและการติดตามการเปลี่ยนแปลงธุรกรรมภายในระบบบล็อกเชน ตัวชี้แฮชทำหน้าที่เป็นโครงสร้างข้อมูลที่อำนวยความสะดวกในการจัดทำดัชนี การดึงข้อมูล และการตรวจสอบการแก้ไขข้อมูล แต่ละธุรกรรมภายในบล็อคเชนผ่านการแฮชก่อนที่จะถูกจัดระเบียบเป็นบล็อค ต่อจากนั้น ตัวชี้แฮชจะเชื่อมต่อแต่ละบล็อกกับบล็อกก่อนหน้าโดยจัดเก็บแฮชของข้อมูลของบล็อกก่อนหน้า ลักษณะของบล็อกที่เชื่อมต่อถึงกันทำให้แน่ใจถึงความไม่เปลี่ยนรูปภายในบล็อกเชน การแก้ไขธุรกรรมใด ๆ ส่งผลให้เกิดค่าแฮชที่แตกต่างกัน ซึ่งส่งผลให้แฮชของบล็อกที่ตามมาทั้งหมดเปลี่ยนแปลงไป ตัวอย่างเช่น พิจารณาบล็อกเชนที่ประกอบด้วยสองบล็อก:
บล็อก 1: ครอบคลุมแฮชของธุรกรรม T1, T2 และ T3
บล็อก 2: นำเสนอแฮชของธุรกรรม T4, T5 และ T6 พร้อมด้วยแฮชของบล็อก 1
หากบุคคลพยายามที่จะยุ่งเกี่ยวกับธุรกรรม T1 ในบล็อก 1 พวกเขาจะต้องปรับเทียบค่าแฮชของบล็อก 1 ใหม่และอัปเดตค่าใหม่ในบล็อก 2 อย่างไรก็ตาม เนื่องจากลักษณะการต้านทานแบบทิศทางเดียวและลักษณะก่อนอิมเมจของฟังก์ชันแฮชที่เข้ารหัสลับ การย้อนกลับธุรกรรม T1 ใน Block 1 ตามค่าแฮชของ Block 2 พิสูจน์ได้ว่ามีความท้าทาย
นอกจากนี้ เนื่องจาก Block 2 รวมค่าแฮชของ Block 1 เข้าไปด้วย การดัดแปลง Block 1 จะส่งผลให้ค่าแฮชของ Block 2 เปลี่ยนไป สิ่งนี้จำเป็นต้องแก้ไขบล็อกที่ตามมาทั้งหมดพร้อมกันเพื่อแก้ไขใดๆ ภายในบล็อกเชน ซึ่งเป็นงานที่น่าเกรงขาม ด้วยเหตุนี้ ฟังก์ชันแฮชการเข้ารหัสจึงรักษาความสอดคล้องและความสมบูรณ์ของข้อมูลบล็อกเชนได้อย่างมีประสิทธิภาพ
ในขอบเขตของบล็อกเชน ฟังก์ชันแฮชการเข้ารหัสช่วยเติมเต็มบทบาทที่สำคัญหลายประการ:
การเชื่อมโยงบล็อก: ส่วนหัวของแต่ละบล็อกมีค่าแฮชของบล็อกก่อนหน้า ซึ่งอำนวยความสะดวกในการเชื่อมโยงห่วงโซ่ของบล็อกเพื่อให้มั่นใจถึงความสมบูรณ์ที่เห็นได้ชัดจากการงัดแงะ
การตรวจสอบธุรกรรม: ข้อมูลธุรกรรมผ่านการแฮช โดยมีค่าแฮชผลลัพธ์ที่รวมอยู่ในบล็อก เพื่อยืนยันความถูกต้องและความสมบูรณ์ของธุรกรรม
กลไกฉันทามติ: ภายในกลไกฉันทามติ Proof of Work (PoW) นักขุดจะต้องระบุค่า nonce ที่ตรงตามข้อกำหนดความยากโดยการดำเนินการฟังก์ชันแฮช
เมื่อวันที่ 2 กันยายน 2022 Vitalik โพสต์คำถามบน Twitter (X) โดยถามว่าฟังก์ชันแฮชการเข้ารหัสใดจะยังคงปลอดภัย หากคอมพิวเตอร์ควอนตัมที่ใช้อัลกอริทึมของ Shor ได้รับการประดิษฐ์ขึ้นมา
ที่มา: ทวีต Vitalik
เขาชี้ให้เห็นว่าคอมพิวเตอร์ควอนตัมที่สามารถใช้อัลกอริธึมของ Shor สามารถเจาะผ่าน RSA (ระบบการเข้ารหัสคีย์สาธารณะที่มีมายาวนาน) หรืออะไรก็ตามที่ขึ้นอยู่กับการแยกตัวประกอบ เส้นโค้งวงรี และกลุ่มของลำดับที่ไม่รู้จัก อย่างไรก็ตาม ค่าแฮช (เช่น SHA-256) มีราคาดีในบริบทของการคำนวณควอนตัม แม้ว่าความปลอดภัยจะลดลงบ้างก็ตาม โดยแนะนำให้ใช้ค่าแฮชที่ยาวขึ้น
ฟังก์ชันแฮชสำหรับการเข้ารหัส เช่น SHA-256 มีประสิทธิภาพเพียงใด “256” ใน SHA-256 หมายถึง 2 ยกกำลัง 256 ซึ่งเป็นตัวเลขที่กว้างใหญ่มากจนยากที่จะเข้าใจอย่างเป็นรูปธรรม
ที่มา: 3Blue1Brown
อย่างไรก็ตาม 3Blue1Brown ได้นำเสนอการเปรียบเทียบที่ชัดเจนเพื่อช่วยในการทำความเข้าใจความปลอดภัยของฟังก์ชันแฮชการเข้ารหัส: ลองจินตนาการถึงสถานการณ์ที่บุคคล 4 พันล้านคนบนโลกแต่ละคนมีคอมพิวเตอร์ที่มีความสามารถด้านการประมวลผลที่ยอดเยี่ยม เทียบเท่ากับพลังการประมวลผลของ Google 1,000 เท่าทั่วโลก ขณะเดียวกัน ลองนึกภาพจักรวาลที่มีดาวเคราะห์ 4 พันล้านดวงและกาแล็กซี 4 พันล้านกาแล็กซีที่คล้ายกับทางช้างเผือก! แม้ภายใต้สภาวะที่รุนแรงเหล่านี้ อาจต้องใช้เวลากว่า 500 พันล้านปีก่อนจะมีโอกาส 1 ใน 4 พันล้านที่จะคาดเดาได้อย่างแม่นยำ “อินพุตเฉพาะที่จำเป็นในการสร้างค่าแฮชเอาต์พุต SHA-256”