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

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

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

ฟังก์ชันแฮชการเข้ารหัส (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”

Tác giả: Morris
Thông dịch viên: Paine
(Những) người đánh giá: Wayne、Edward、Elisa、Ashley、Joyce
* Đầu tư có rủi ro, phải thận trọng khi tham gia thị trường. Thông tin không nhằm mục đích và không cấu thành lời khuyên tài chính hay bất kỳ đề xuất nào khác thuộc bất kỳ hình thức nào được cung cấp hoặc xác nhận bởi Gate.io.
* Không được phép sao chép, truyền tải hoặc đạo nhái bài viết này mà không có sự cho phép của Gate.io. Vi phạm là hành vi vi phạm Luật Bản quyền và có thể phải chịu sự xử lý theo pháp luật.

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

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

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

ฟังก์ชันแฮชการเข้ารหัส (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”

Tác giả: Morris
Thông dịch viên: Paine
(Những) người đánh giá: Wayne、Edward、Elisa、Ashley、Joyce
* Đầu tư có rủi ro, phải thận trọng khi tham gia thị trường. Thông tin không nhằm mục đích và không cấu thành lời khuyên tài chính hay bất kỳ đề xuất nào khác thuộc bất kỳ hình thức nào được cung cấp hoặc xác nhận bởi Gate.io.
* Không được phép sao chép, truyền tải hoặc đạo nhái bài viết này mà không có sự cho phép của Gate.io. Vi phạm là hành vi vi phạm Luật Bản quyền và có thể phải chịu sự xử lý theo pháp luật.
Bắt đầu giao dịch
Đăng ký và giao dịch để nhận phần thưởng USDTEST trị giá
$100
$5500