สิ่งที่ Bitcoin มอบให้เราคือคำสัญญาที่แน่นอน: โปรแกรมจะทำงานตามที่ระบุไว้เป๊ะ ๆ
Andreas M. Antonopoulos
การเข้ารหัสคีย์สาธารณะ/คีย์ส่วนตัว
การเข้ารหัสข้อมูล คือการเปลี่ยนข้อมูลให้กลายเป็นความลับที่มีแต่คนที่เหมาะสมเท่านั้นจึงจะอ่านได้
- การเข้ารหัส คือกระบวนการเปลี่ยนข้อมูลให้เป็นรหัส เพื่อให้มีแต่ผู้ที่มีคีย์ที่ถูกต้องเท่านั้นจึงจะอ่านได้
- การถอดรหัส คือกระบวนการเปลี่ยนข้อมูลที่ถูกเข้ารหัสกลับมาให้อ่านรู้เรื่องได้อีกครั้ง
ในระบบการเข้ารหัสแบบดั้งเดิม คนสองคนที่ต้องการสื่อสารกันแบบส่วนตัวจะต้องมีคีย์ลับเดียวกันก่อน เหมือนกับการใช้รหัสผ่านร่วมกัน คนหนึ่งใช้คีย์นี้ในการเข้ารหัสข้อความก่อนส่ง และอีกคนใช้คีย์เดียวกันในการถอดรหัสและอ่านข้อความนั้น
ปัญหาของระบบนี้คือทั้งสองฝ่ายต้องมีคีย์ลับเดียวกันอยู่ก่อนแล้ว หากมีคนอื่นได้คีย์นี้ไป เขาก็สามารถอ่านข้อความที่ถูกดักจับได้ทั้งหมด
Bitcoin แก้ปัญหานี้ด้วยวิธีที่ต่างออกไป เรียกว่า การเข้ารหัสคีย์สาธารณะ ซึ่งผู้ใช้ไม่จำเป็นต้องแบ่งปันคีย์ลับกันล่วงหน้า
การเข้ารหัสคีย์สาธารณะ/คีย์ส่วนตัวช่วยแก้ปัญหาการแบ่งปันความลับ แทนที่จะใช้รหัสผ่านร่วมกัน แต่ละคนจะมีคีย์สองชุด: คีย์สาธารณะและคีย์ส่วนตัว
- คีย์สาธารณะ สามารถแบ่งปันให้ใครก็ได้
- คีย์ส่วนตัว ต้องเก็บไว้เป็นความลับเสมอ
ถ้าเจษฎาต้องการส่งบางอย่างให้แอนนา เขาสามารถใช้คีย์สาธารณะของแอนนาได้ มีแต่แอนนาเท่านั้นที่ปลดล็อกได้ด้วยคีย์ส่วนตัวของเธอ แม้จะมีใครดักจับข้อความก็ไม่สามารถอ่านหรือใช้ได้หากไม่มีคีย์ส่วนตัว
ใน Bitcoin ระบบนี้ถูกใช้สร้างลายเซ็นดิจิทัล ลายเซ็นดิจิทัลพิสูจน์ว่าผู้ถือคีย์ส่วนตัวเป็นผู้อนุมัติธุรกรรม เหมือนกับการเซ็นชื่อในเอกสาร นี่คือสิ่งที่ทำให้ธุรกรรม Bitcoin ปลอดภัยและตรวจสอบได้โดยไม่ต้องเชื่อถือบุคคลที่สาม
ธุรกรรม Bitcoin คือการโอนความเป็นเจ้าของ bitcoin จากที่อยู่หนึ่งไปยังอีกที่อยู่หนึ่ง
การเข้ารหัสถูกใช้เพื่อให้แน่ใจว่ามีแต่เจ้าของ bitcoin ตัวจริงเท่านั้นที่มีสิทธิ์ส่งเงินของตนให้ผู้อื่นได้ มันช่วยปกป้องทรัพย์สินของพวกเขาจากผู้ไม่หวังดี
เพื่อความปลอดภัยเพิ่มเติม ทุกธุรกรรม Bitcoin จะได้รับลายเซ็นดิจิทัลที่ไม่ซ้ำกันโดยอัตโนมัติ ลายเซ็นดิจิทัลนี้ขับเคลื่อนด้วยเทคโนโลยีที่ป้องกันการปลอมแปลง ช่วยให้เครือข่ายตรวจสอบได้ว่าเจ้าของ bitcoin ตัวจริง ไม่ใช่คนอื่น เป็นผู้ส่ง
ผู้ใช้แต่ละคนจะมีคีย์สองชุด: คีย์ส่วนตัว, ซึ่ง เก็บเป็นความลับ, และ คีย์สาธารณะ ที่สามารถ แบ่งปันกับผู้อื่น. ส่วน คีย์ส่วนตัว ทำหน้าที่เป็นหลักฐานยืนยันตัวตนและความเป็นเจ้าของ โดยยืนยันว่า “ที่อยู่นี้เป็นของฉันและฉันควบคุมมันได้”
ขั้นตอนการทำงานของธุรกรรม Bitcoin
- การสร้างธุรกรรม: ผู้ใช้เริ่มต้นธุรกรรม Bitcoin โดยระบุรายละเอียด เช่น ที่อยู่ผู้รับและจำนวน bitcoin ที่จะส่ง
- การสร้างลายเซ็นดิจิทัล: ผู้ส่งจะสร้าง ลายเซ็นดิจิทัล ที่ไม่ซ้ำกันโดยใช้ คีย์ส่วนตัว. ลายเซ็นนี้เป็นรหัสเฉพาะที่ใช้ยืนยันความถูกต้องของธุรกรรม
- การกระจายธุรกรรม: ธุรกรรมที่เซ็นแล้วจะถูกกระจายไปยังเครือข่าย Bitcoin เพื่อแสดงความตั้งใจในการโอน bitcoin จากผู้ส่งไปยังผู้รับ
- การตรวจสอบบนเครือข่าย: โหนดในเครือข่าย Bitcoin จะได้รับธุรกรรมและใช้ คีย์สาธารณะ เพื่อตรวจสอบความถูกต้องของลายเซ็นของธุรกรรม ในขณะเดียวกัน พวกเขาจะใช้ กุญแจสาธารณะ เพื่อตรวจสอบ ลายเซ็นดิจิทัล .
- การยืนยันบนเครือข่าย Bitcoin: หากการตรวจสอบสำเร็จ ธุรกรรมจะถูกเพิ่มลงในบัญชีแยกประเภท ซึ่งทำหน้าที่เป็นบันทึกที่ปลอดภัยและโปร่งใสของธุรกรรมทั้งหมด เมื่อได้รับการยืนยันแล้ว การเป็นเจ้าของ bitcoin จะถูกโอนอย่างเป็นทางการจากผู้ส่งไปยังผู้รับ
ลายเซ็นดิจิทัล, ที่สร้างขึ้นด้วย กุญแจส่วนตัว ของผู้ส่ง พิสูจน์ว่าธุรกรรมนั้นได้รับอนุญาตโดยเจ้าของ bitcoin เครือข่าย Bitcoin สามารถตรวจสอบหลักฐานนี้และบันทึกธุรกรรมได้
คำอธิบายเกี่ยวกับการแฮช
โปรดอย่ารู้สึกกลัวกับศัพท์เทคนิคและแนวคิดทางคณิตศาสตร์ที่กำลังจะเจอ เราเข้าใจดีว่าไม่ใช่ทุกคนจะชอบคณิตศาสตร์ แต่คุณอาจจะประหลาดใจว่าตัวเองสามารถเข้าใจแนวคิดที่ซับซ้อนได้ด้วยความพยายามเพียงเล็กน้อย
ฟังก์ชัน ก็เหมือนกับเครื่องจักรที่รับข้อมูลบางอย่างแล้วเปลี่ยนมันเป็นสิ่งใหม่ ข้อมูลที่คุณใส่ให้กับฟังก์ชันเรียกว่า อินพุต ส่วนข้อมูลใหม่ที่ฟังก์ชันสร้างขึ้นเรียกว่า เอาต์พุต ฟังก์ชันช่วยให้คอมพิวเตอร์ทำงานและแก้ปัญหาได้
ฟังก์ชันคืออะไร?
ฟังก์ชันคือชุดของคำสั่งที่รับอินพุตและสร้างเอาต์พุต คุณสามารถนึกถึงมันเหมือนสูตรอาหาร: คุณทำตามขั้นตอนด้วยวัตถุดิบบางอย่าง และคุณจะได้ผลลัพธ์ที่คาดเดาได้เสมอ
ใน Bitcoin ฟังก์ชันถูกใช้เพื่อประมวลผลและตรวจสอบธุรกรรม เมื่อมีคนส่ง bitcoin ฟังก์ชันเข้ารหัสจะช่วยตรวจสอบว่าธุรกรรมนั้นถูกต้อง ยืนยันว่าผู้ส่งมีเงินเพียงพอ และอัปเดตยอดคงเหลือในบัญชีแยกประเภทของ Bitcoin เมื่อได้รับการตรวจสอบและเพิ่มลงในบล็อกแล้ว ธุรกรรมจะกลายเป็นส่วนหนึ่งของบันทึกถาวรบนบล็อกเชน
ฟังก์ชันทางเดียวคืออะไร?
ฟังก์ชันทางเดียวเป็นฟังก์ชันชนิดพิเศษที่คำนวณไปข้างหน้าได้ง่ายแต่ย้อนกลับได้ยากมาก ตัวอย่างเช่น การปั่นส่วนผสมให้เป็นสมูทตี้นั้นง่าย แต่คุณไม่สามารถแยกสมูทตี้กลับเป็นส่วนผสมเดิมได้
ความปลอดภัยของ Bitcoin ขึ้นอยู่กับฟังก์ชันทางเดียว ฟังก์ชันเหล่านี้ถูกใช้ในระบบเข้ารหัสกุญแจสาธารณะและกุญแจส่วนตัว ทำให้ผู้คนสามารถแบ่งปันกุญแจสาธารณะได้โดยที่กุญแจส่วนตัวยังคงเป็นความลับ แม้ว่ากุญแจสาธารณะจะมองเห็นได้ แต่ก็ไม่สามารถคำนวณกุญแจส่วนตัวจากมันได้ นี่คือสิ่งที่ทำให้ธุรกรรม Bitcoin ปลอดภัย
แฮชฟังก์ชันคืออะไร?
แฮชฟังก์ชัน ก็เหมือนเครื่องสร้างรหัสลับ มันรับข้อความแล้วเปลี่ยนเป็นรหัส
วิธีการแฮชในธุรกรรม Bitcoin
ใน Bitcoin ทุกธุรกรรมจะถูกแปลงเป็นแฮชก่อนที่จะถูกเพิ่มลงในบล็อกเชน แฮชคือรอยนิ้วมือดิจิทัลที่ไม่ซ้ำกันของธุรกรรม หากใครพยายามเปลี่ยนแปลงแม้เพียงเล็กน้อย แฮชก็จะเปลี่ยนไปโดยสิ้นเชิง สิ่งนี้ทำให้เครือข่ายสามารถตรวจจับการปลอมแปลงได้ง่าย
บทบาทของการแฮชในความปลอดภัยของ Bitcoin
การแฮชช่วยปกป้องเครือข่าย Bitcoin โดยทำให้ธุรกรรมตรวจสอบได้ง่ายและไม่สามารถแก้ไขได้โดยเงียบ ๆ เพราะแต่ละธุรกรรมมีแฮชเฉพาะของตัวเอง เครือข่ายจึงสามารถตรวจจับได้อย่างรวดเร็วหากมีการเปลี่ยนแปลงอะไรบางอย่าง
แฮชฟังก์ชันจะรับข้อมูลและแปลงเป็นสตริงของตัวเลขและตัวอักษรที่มีความยาวคงที่เรียกว่าแฮช อินพุตเดียวกันจะให้แฮชเดียวกันเสมอ แต่แม้จะเปลี่ยนแปลงเพียงเล็กน้อยในอินพุต ผลลัพธ์ก็จะเปลี่ยนไปโดยสิ้นเชิง คุณสมบัตินี้ช่วยให้คอมพิวเตอร์ตรวจสอบได้ว่าข้อมูลไม่ถูกเปลี่ยนแปลง
การแฮช ก็เหมือนกับการสร้างรอยนิ้วมือให้กับข้อมูลดิจิทัล มันคือกระบวนการนำข้อความดิจิทัลมาแปลงเป็นรหัสที่มีความยาวคงที่ ซึ่งทำหน้าที่เป็นตัวระบุที่ไม่ซ้ำกัน เช่นเดียวกับที่รอยนิ้วมือสามารถระบุบุคคลได้ แฮชก็สามารถระบุข้อความดิจิทัลได้
เอาต์พุต หรือแฮช จะมีความยาวเท่าเดิมเสมอ ไม่ว่าข้อมูลต้นฉบับจะยาวแค่ไหน Bitcoin ใช้แฮชฟังก์ชันบางประเภทที่เรียกว่า SHA-256 และ RIPEMD160 .
ตัวอย่างบางส่วนมีดังนี้:
- SHA256 hash ของสตริง สวัสดีชาวโลก
b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
- SHA256 แฮชของสตริง hello world.
7ddb227315f423250fc67f3be69c544628dffe41752af91c50ae0a9c49faeb87- สังเกตว่าการเปลี่ยนแปลงเพียงเล็กน้อยในข้อมูลนำเข้าจะทำให้ผลลัพธ์เปลี่ยนไปโดยสิ้นเชิงเมื่อเทียบกับอันแรก
- SHA256 แฮชของไฟล์ iso ที่ดาวน์โหลดได้ Ubuntu 18.10
7b9f670c749f797a0f7481d619ce8807edac052c97e1a0df3b130c95efae4765- อินพุตนี้เป็นไฟล์ขนาดใหญ่มากแต่ผลลัพธ์ก็ยังคงมีความยาวคงที่เหมือนเดิม
คุณสามารถนึกถึงการแฮชเหมือนกับโน้ตดนตรีที่จับแก่นแท้ของบทเพลงได้ เช่นเดียวกับที่โน้ตดนตรีเป็นตัวแทนเฉพาะของทำนองหนึ่ง ค่าแฮชก็เป็นตัวแทนเฉพาะของข้อมูลหนึ่งชุด
โดยการเปรียบเทียบโน้ตดนตรีของบทเพลงกับการแสดงจริง นักดนตรีสามารถตรวจสอบได้ว่าการแสดงนั้นถูกต้องหรือไม่ ในทำนองเดียวกัน โดยการเปรียบเทียบค่าแฮชของข้อมูลที่ได้รับกับค่าแฮชต้นฉบับ เราสามารถตรวจสอบได้ว่าข้อมูลถูกเปลี่ยนแปลงระหว่างการส่งหรือไม่
เช่นเดียวกับที่การเล่นดนตรีผิดเพียงเล็กน้อยก็ทำให้เสียงเปลี่ยนไป การเปลี่ยนแปลงข้อมูลต้นฉบับเพียงเล็กน้อยก็จะทำให้ค่าแฮชเปลี่ยนไปโดยสิ้นเชิง นี่ทำให้การแฮชเป็นเครื่องมือที่ทรงพลังสำหรับการรับรองความถูกต้องและความสมบูรณ์ของธุรกรรม Bitcoin
กระบวนการเข้ารหัส public key ด้วยการแฮชถูกใช้เพื่อเพิ่มความปลอดภัยของข้อมูลโดยแปลงให้อยู่ในรูปแบบที่อ่านไม่ออกและมีความยาวคงที่ Bitcoin ใช้อัลกอริทึม SHA-256 และ RIPEMD160 เพื่อสร้างที่อยู่สาธารณะ ผลลัพธ์ที่ได้จะเป็นตัวระบุเฉพาะสำหรับ public key และช่วยรับรองความสมบูรณ์และความปลอดภัยของธุรกรรมที่บันทึกไว้ในบัญชีแยกประเภท ด้วยการเข้ารหัสข้อมูลในลักษณะนี้ จะทำให้บุคคลที่ไม่ได้รับอนุญาตเข้าถึงและแก้ไขข้อมูลได้ยากขึ้น
คุณสมบัติของฟังก์ชันแฮช
- กำหนดแน่นอน: วัตถุดิบเดิมจะได้สมูทตี้รสเดิมเสมอ เช่นเดียวกับข้อมูลเดิมจะได้ค่าแฮชเดิมเสมอ
- ต้านทานการย้อนกลับ: ถ้าคุณมีแค่สมูทตี้ คุณจะไม่สามารถรู้ได้ว่าส่วนผสมคืออะไร เช่นเดียวกับถ้าคุณมีแค่ค่าแฮช คุณจะไม่สามารถรู้ข้อมูลต้นฉบับได้
- เอฟเฟกต์หิมะถล่ม: การเปลี่ยนส่วนผสมเพียงเล็กน้อยจะทำให้สมูทตี้เปลี่ยนไปโดยสิ้นเชิง ในการแฮช การเปลี่ยนข้อมูลเพียงเล็กน้อยจะทำให้ค่าแฮชเปลี่ยนไปโดยสิ้นเชิง
- ต้านทานการชนกัน: มันยากมากที่จะหาส่วนผสมสองชุดที่ต่างกันแต่ได้สมูทตี้รสเดียวกัน เช่นเดียวกับที่เป็นไปได้ยากมากที่ข้อมูลสองชุดที่ต่างกันจะได้ค่าแฮชเดียวกัน
- ตรวจสอบได้รวดเร็ว: การทำสมูทตี้ใช้เวลาไม่นาน และง่ายต่อการตรวจสอบว่าเป็นสมูทตี้ ฟังก์ชันแฮชคำนวณได้รวดเร็วและใคร ๆ ก็ตรวจสอบได้ง่าย
กิจกรรม: สร้างค่าแฮช SHA 256
อยากรู้ไหมว่าการแฮชทำงานอย่างไร? สแกน QR โค้ดเพื่อสร้างค่าแฮช SHA256 จากคำ ประโยค หรือข้อมูลอะไรก็ได้ที่คุณเลือกทันที ฟังก์ชันแฮชเปรียบเสมือนลายนิ้วมือดิจิทัล: เป็นทางเดียว หมายความว่าเมื่อข้อมูลถูกแฮชแล้วจะไม่สามารถย้อนกลับได้ ลองดูด้วยตัวคุณเอง!