ฟังก์ชั่นแฮชการเข้ารหัสลับคืออะไร?

มือใหม่Mar 17, 2024
บทความนี้ให้ภาพรวมที่ครอบคลุมของฟังก์ชันแฮชการเข้ารหัส สำรวจประวัติ คุณลักษณะ แอปพลิเคชันในบล็อกเชน และหลักการทำงาน ฟังก์ชันแฮชที่เข้ารหัสมีบทบาทสำคัญในการรับรองความปลอดภัยและความน่าเชื่อถือของเทคโนโลยีบล็อกเชน
ฟังก์ชั่นแฮชการเข้ารหัสลับคืออะไร?

ประวัติความเป็นมาของฟังก์ชันแฮชที่เข้ารหัส

ฟังก์ชันแฮชการเข้ารหัส (CHF) มีมาตั้งแต่ทศวรรษ 1980 และพบยูทิลิตี้ที่แพร่หลายในด้านการเข้ารหัส การตรวจสอบความสมบูรณ์ของข้อมูล การทำดัชนีฐานข้อมูล และโดเมนอื่นๆ อีกมากมาย

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

ตัวอย่างที่ชัดเจนคือ MD5 Algorithm ซึ่งใช้บ่อยในโปรแกรมดาวน์โหลด P2P โดยมีความยาว 128 บิต ผู้ใช้สามารถเปรียบเทียบค่าแฮชของไฟล์ที่ดาวน์โหลดกับค่าที่มาจากแหล่งที่มา การจับคู่บ่งบอกถึงความสมบูรณ์ของไฟล์

แอปพลิเคชั่นที่แพร่หลายอีกตัวหนึ่งคือการตรวจสอบรหัสผ่านบนเว็บไซต์ เพื่อปกป้องรหัสผ่านของผู้ใช้ แพลตฟอร์มส่วนใหญ่จะจัดเก็บรหัสผ่านแบบแฮชมากกว่าการป้อนข้อความธรรมดา เมื่อผู้ใช้เข้าสู่ระบบ ระบบจะคำนวณฟังก์ชันแฮชของรหัสผ่านที่ป้อนและเปรียบเทียบกับค่าที่เก็บไว้ที่เกี่ยวข้องกับชื่อผู้ใช้ ลักษณะที่ไม่สามารถย้อนกลับได้ของฟังก์ชันแฮชที่เข้ารหัสจะป้องกันการถอดรหัสรหัสผ่าน แม้ว่าแฮกเกอร์จะได้รับค่าแฮชของฐานข้อมูลก็ตาม

ลักษณะของฟังก์ชันแฮชที่เข้ารหัส

การค้นหา 'SHA256 Generator' เผยให้เห็นว่าเว็บไซต์ต่างๆ ที่ใช้อัลกอริธึมเดียวกันจะสร้างค่าแฮชที่เหมือนกันสำหรับข้อความอินพุตที่คล้ายกันอย่างสม่ำเสมอ

นอกจากนี้ การเปลี่ยนแปลงขนาดตัวพิมพ์ของข้อความอินพุตยังส่งผลให้ค่าแฮชเอาต์พุตแตกต่างกันโดยสิ้นเชิง ซึ่งเรียกว่าเอฟเฟกต์ Avalanche คุณลักษณะต่อไปนี้จะวัดความปลอดภัยของฟังก์ชันแฮชที่เข้ารหัส:

  • ความต้านทานก่อนอิมเมจ: การดึงค่าอินพุตดั้งเดิมจากค่าแฮชเอาต์พุตถือเป็นความท้าทายอย่างมาก เนื่องจากคุณสมบัติของฟังก์ชันทางเดียว

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

  • การต้านทานก่อนอิมเมจที่สอง: การระบุค่าอินพุตอื่นที่สร้างค่าแฮชเดียวกันโดยให้อินพุตเริ่มต้นนั้นเป็นเรื่องยาก **คุณสมบัตินี้เรียกว่าความต้านทานการชนที่อ่อนแอ

  • การต้านทานการชนกัน: การค้นพบค่าที่แตกต่างกันสองค่าซึ่งให้ค่าแฮชที่เหมือนกันนั้นเป็นสิ่งที่ท้าทายและเรียกว่าการชนกันของแฮชแบบเข้ารหัส คุณสมบัตินี้หมายถึงความต้านทานการชนที่แข็งแกร่ง

ยกตัวอย่าง MD5 ที่กล่าวถึง เป็นไปได้ไหมที่ไฟล์ต่างๆ จะสร้างค่าแฮชเดียวกัน คำตอบคือใช่ แต่ความน่าจะเป็นต่ำมาก ปรากฏการณ์นี้เรียกว่าการชนกันของแฮชที่เข้ารหัสลับ ซึ่งอาจเกิดขึ้นได้ทั้งโดยบังเอิญหรือจากการโจมตีโดยเจตนา ความน่าจะเป็นในการชนกันแบบมาตรฐานสำหรับอัลกอริทึม MD5 อยู่ที่ประมาณ 1/2¹²⁸ ทำให้เกิดอุบัติเหตุได้น้อยมาก อย่างไรก็ตาม MD5 ถือว่ามีความเสี่ยงที่จะถูกโจมตีด้วยการชนกันโดยเจตนา เนื่องจากการสร้างค่าแฮชที่เหมือนกันสำหรับข้อความธรรมดาสองข้อความที่แตกต่างกันนั้นค่อนข้างง่าย ดังนั้น แม้ว่าอัลกอริธึม MD5 ยังสามารถใช้ได้กับงานที่ไม่เกี่ยวข้องกับการรักษาความปลอดภัย แต่ก็ไม่เหมาะกับงานการตรวจสอบความถูกต้องด้านความปลอดภัยอีกต่อไป (เช่น การตรวจสอบความถูกต้องของคีย์หรือลายเซ็นดิจิทัล)

ฟังก์ชั่นแฮชที่เข้ารหัสใน Blockchain

Ethereum ใช้ฟังก์ชันแฮชการเข้ารหัส KECCAK-256 ซึ่งหลายคนเข้าใจผิดว่าเป็น SHA-3 (รวมถึงวิทยานิพนธ์ระดับปริญญาเอกของผู้ก่อตั้ง Celestia) เนื่องจากฟังก์ชันนี้เดิมเขียนเป็น 'sha3' ใน Solidity เนื่องจากความสับสน จึงได้เปลี่ยนชื่อเป็น Keccak256 ในเวลาต่อมา

MetaMask ใช้ฟังก์ชันแฮชการเข้ารหัสที่หลากหลายในการดำเนินงาน:

  • ชุดคำศัพท์ 12 คำจากการสุ่มชุดคำข้อเสนอ BIP39 จำนวน 2,048 คำจะก่อให้เกิดคำเสริม
  • แต่ละคำสอดคล้องกับค่า รวมกันสร้างจำนวนเต็มเริ่มต้น
  • MetaMask ใช้ฟังก์ชัน SHA-256 กับจำนวนเต็มเริ่มต้น โดยสร้างคีย์ส่วนตัวสำหรับการนำเข้ากระเป๋าเงินที่มีอยู่ บางครั้งนี่เป็นสิ่งที่จำเป็นต้องป้อนเมื่อนำเข้ากระเป๋าเงินที่มีอยู่ในอุปกรณ์ใหม่
  • อัลกอริธึม ECDSA ประมวลผลคีย์ส่วนตัวเพื่อรับคีย์สาธารณะ
  • MetaMask สร้างแฮชของคีย์สาธารณะโดยใช้ฟังก์ชัน Keccak-256 โดยรับ 20 ไบต์สุดท้ายของแฮช (แปลงเป็นเลขฐานสิบหก เช่น ความยาว 40 ตัวอักษรหรือตัวเลข) และนำหน้าด้วย 0x ซึ่งกลายเป็นที่อยู่ ETH .

ฟังก์ชั่นแฮชการเข้ารหัสทำงานอย่างไรใน Blockchain

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”

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

ฟังก์ชั่นแฮชการเข้ารหัสลับคืออะไร?

มือใหม่Mar 17, 2024
บทความนี้ให้ภาพรวมที่ครอบคลุมของฟังก์ชันแฮชการเข้ารหัส สำรวจประวัติ คุณลักษณะ แอปพลิเคชันในบล็อกเชน และหลักการทำงาน ฟังก์ชันแฮชที่เข้ารหัสมีบทบาทสำคัญในการรับรองความปลอดภัยและความน่าเชื่อถือของเทคโนโลยีบล็อกเชน
ฟังก์ชั่นแฮชการเข้ารหัสลับคืออะไร?

ประวัติความเป็นมาของฟังก์ชันแฮชที่เข้ารหัส

ฟังก์ชันแฮชการเข้ารหัส (CHF) มีมาตั้งแต่ทศวรรษ 1980 และพบยูทิลิตี้ที่แพร่หลายในด้านการเข้ารหัส การตรวจสอบความสมบูรณ์ของข้อมูล การทำดัชนีฐานข้อมูล และโดเมนอื่นๆ อีกมากมาย

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

ตัวอย่างที่ชัดเจนคือ MD5 Algorithm ซึ่งใช้บ่อยในโปรแกรมดาวน์โหลด P2P โดยมีความยาว 128 บิต ผู้ใช้สามารถเปรียบเทียบค่าแฮชของไฟล์ที่ดาวน์โหลดกับค่าที่มาจากแหล่งที่มา การจับคู่บ่งบอกถึงความสมบูรณ์ของไฟล์

แอปพลิเคชั่นที่แพร่หลายอีกตัวหนึ่งคือการตรวจสอบรหัสผ่านบนเว็บไซต์ เพื่อปกป้องรหัสผ่านของผู้ใช้ แพลตฟอร์มส่วนใหญ่จะจัดเก็บรหัสผ่านแบบแฮชมากกว่าการป้อนข้อความธรรมดา เมื่อผู้ใช้เข้าสู่ระบบ ระบบจะคำนวณฟังก์ชันแฮชของรหัสผ่านที่ป้อนและเปรียบเทียบกับค่าที่เก็บไว้ที่เกี่ยวข้องกับชื่อผู้ใช้ ลักษณะที่ไม่สามารถย้อนกลับได้ของฟังก์ชันแฮชที่เข้ารหัสจะป้องกันการถอดรหัสรหัสผ่าน แม้ว่าแฮกเกอร์จะได้รับค่าแฮชของฐานข้อมูลก็ตาม

ลักษณะของฟังก์ชันแฮชที่เข้ารหัส

การค้นหา 'SHA256 Generator' เผยให้เห็นว่าเว็บไซต์ต่างๆ ที่ใช้อัลกอริธึมเดียวกันจะสร้างค่าแฮชที่เหมือนกันสำหรับข้อความอินพุตที่คล้ายกันอย่างสม่ำเสมอ

นอกจากนี้ การเปลี่ยนแปลงขนาดตัวพิมพ์ของข้อความอินพุตยังส่งผลให้ค่าแฮชเอาต์พุตแตกต่างกันโดยสิ้นเชิง ซึ่งเรียกว่าเอฟเฟกต์ Avalanche คุณลักษณะต่อไปนี้จะวัดความปลอดภัยของฟังก์ชันแฮชที่เข้ารหัส:

  • ความต้านทานก่อนอิมเมจ: การดึงค่าอินพุตดั้งเดิมจากค่าแฮชเอาต์พุตถือเป็นความท้าทายอย่างมาก เนื่องจากคุณสมบัติของฟังก์ชันทางเดียว

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

  • การต้านทานก่อนอิมเมจที่สอง: การระบุค่าอินพุตอื่นที่สร้างค่าแฮชเดียวกันโดยให้อินพุตเริ่มต้นนั้นเป็นเรื่องยาก **คุณสมบัตินี้เรียกว่าความต้านทานการชนที่อ่อนแอ

  • การต้านทานการชนกัน: การค้นพบค่าที่แตกต่างกันสองค่าซึ่งให้ค่าแฮชที่เหมือนกันนั้นเป็นสิ่งที่ท้าทายและเรียกว่าการชนกันของแฮชแบบเข้ารหัส คุณสมบัตินี้หมายถึงความต้านทานการชนที่แข็งแกร่ง

ยกตัวอย่าง MD5 ที่กล่าวถึง เป็นไปได้ไหมที่ไฟล์ต่างๆ จะสร้างค่าแฮชเดียวกัน คำตอบคือใช่ แต่ความน่าจะเป็นต่ำมาก ปรากฏการณ์นี้เรียกว่าการชนกันของแฮชที่เข้ารหัสลับ ซึ่งอาจเกิดขึ้นได้ทั้งโดยบังเอิญหรือจากการโจมตีโดยเจตนา ความน่าจะเป็นในการชนกันแบบมาตรฐานสำหรับอัลกอริทึม MD5 อยู่ที่ประมาณ 1/2¹²⁸ ทำให้เกิดอุบัติเหตุได้น้อยมาก อย่างไรก็ตาม MD5 ถือว่ามีความเสี่ยงที่จะถูกโจมตีด้วยการชนกันโดยเจตนา เนื่องจากการสร้างค่าแฮชที่เหมือนกันสำหรับข้อความธรรมดาสองข้อความที่แตกต่างกันนั้นค่อนข้างง่าย ดังนั้น แม้ว่าอัลกอริธึม MD5 ยังสามารถใช้ได้กับงานที่ไม่เกี่ยวข้องกับการรักษาความปลอดภัย แต่ก็ไม่เหมาะกับงานการตรวจสอบความถูกต้องด้านความปลอดภัยอีกต่อไป (เช่น การตรวจสอบความถูกต้องของคีย์หรือลายเซ็นดิจิทัล)

ฟังก์ชั่นแฮชที่เข้ารหัสใน Blockchain

Ethereum ใช้ฟังก์ชันแฮชการเข้ารหัส KECCAK-256 ซึ่งหลายคนเข้าใจผิดว่าเป็น SHA-3 (รวมถึงวิทยานิพนธ์ระดับปริญญาเอกของผู้ก่อตั้ง Celestia) เนื่องจากฟังก์ชันนี้เดิมเขียนเป็น 'sha3' ใน Solidity เนื่องจากความสับสน จึงได้เปลี่ยนชื่อเป็น Keccak256 ในเวลาต่อมา

MetaMask ใช้ฟังก์ชันแฮชการเข้ารหัสที่หลากหลายในการดำเนินงาน:

  • ชุดคำศัพท์ 12 คำจากการสุ่มชุดคำข้อเสนอ BIP39 จำนวน 2,048 คำจะก่อให้เกิดคำเสริม
  • แต่ละคำสอดคล้องกับค่า รวมกันสร้างจำนวนเต็มเริ่มต้น
  • MetaMask ใช้ฟังก์ชัน SHA-256 กับจำนวนเต็มเริ่มต้น โดยสร้างคีย์ส่วนตัวสำหรับการนำเข้ากระเป๋าเงินที่มีอยู่ บางครั้งนี่เป็นสิ่งที่จำเป็นต้องป้อนเมื่อนำเข้ากระเป๋าเงินที่มีอยู่ในอุปกรณ์ใหม่
  • อัลกอริธึม ECDSA ประมวลผลคีย์ส่วนตัวเพื่อรับคีย์สาธารณะ
  • MetaMask สร้างแฮชของคีย์สาธารณะโดยใช้ฟังก์ชัน Keccak-256 โดยรับ 20 ไบต์สุดท้ายของแฮช (แปลงเป็นเลขฐานสิบหก เช่น ความยาว 40 ตัวอักษรหรือตัวเลข) และนำหน้าด้วย 0x ซึ่งกลายเป็นที่อยู่ ETH .

ฟังก์ชั่นแฮชการเข้ารหัสทำงานอย่างไรใน Blockchain

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”

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