2 บิตคอยน์ทำงานอย่างไรและทำไม
แปลโดย : Claude 3 Opus (Pro)
2
บิตคอยน์ทำงานอย่างไรและทำไม
บิตคอยน์ถูกอธิบายว่ามีลักษณะเป็นเสรีนิยม แต่ไม่ใช่ทุกคนที่เป็นพวกเสรีนิยมและสนับสนุนสกุลเงินที่มีทองคำหนุนหลังที่ชื่นชมมัน และบางคนแม้กระทั่งเกลียดชังมันอย่างจริงจัง จากประสบการณ์ของเรา แนวคิดพื้นฐานบางอย่างที่เกี่ยวข้องกับบิตคอยน์ยังไม่เป็นที่เข้าใจดีนักสำหรับคนเหล่านี้ การเข้าใจอย่างถ่องแท้ว่าบิตคอยน์ทำงานอย่างไร และสำคัญพอๆกันคือเหตุผลเชิงปรัชญาว่าทำไมมันถึงทำงานได้ เป็นสิ่งจำเป็น ระบบกระจายศูนย์ที่ประกอบด้วยกลุ่มต่างๆหลายกลุ่มและบริหารโดยหลายคนพร้อมกันจะรักษาความสมบูรณ์ของมันและหลีกเลี่ยงสภาวะที่เรียกว่า "โศกนาฏกรรมของส่วนรวม" โดย Garrett Hardin ได้อย่างไร? ในสภาวะทางเศรษฐกิจนี้ ปัจเจกบุคคลที่กระทำอย่างอิสระและมีเหตุผลตามผลประโยชน์ส่วนตัว จะมีพฤติกรรมที่ขัดแย้งกับผลประโยชน์สูงสุดระยะยาวของกลุ่มทั้งหมด โดยการทำให้ทรัพยากรส่วนรวมร่อยหรอลง ตัวอย่างทั่วไปคือเมื่อกลุ่มเกษตรกรแบ่งปันทุ่งหญ้าสาธารณะเพื่อเลี้ยงปศุสัตว์ การใช้มากเกินไปและการทำให้ทรัพยากรส่วนรวมคือทุ่งหญ้าร่อยหรอลงอาจเกิดขึ้นได้ เนื่องจากไม่ใช่ผลประโยชน์ส่วนตัวของเกษตรกรแต่ละคนที่จะอนุรักษ์มันโดยการจำกัดการกินทุ่งหญ้าของปศุสัตว์
เรามาเริ่มด้วยการพูดคุยเกี่ยวกับวิธีการทำงานของบิตคอยน์กัน เพื่อที่จะซาบซึ้งและเข้าใจเนื้อหาส่วนใหญ่ในหนังสือเล่มนี้ จำเป็นต้องมีความเข้าใจพื้นฐานเกี่ยวกับแนวคิดสำคัญของบิตคอยน์ บทนี้จะให้ความเข้าใจนั้น และจะสรุปด้วยมุมมองว่าทำไมบิตคอยน์ในฐานะระบบการชำระเงิน จึงพิสูจน์แล้วจนถึงตอนนี้ว่าเป็นวิธีแก้ปัญหาที่เป็นไปได้ เพื่อทำให้การอภิปรายของเราสมบูรณ์ เราจะขยายความนัยทางเศรษฐกิจของบิตคอยน์
ในแก่นแท้แล้ว บิตคอยน์ผนวกแนวคิดต่อไปนี้เข้าไว้ด้วยกัน:
• บัญชีแยกประเภทสาธารณะ (เรียกว่า บล็อกเชนของบิตคอยน์) ให้ถือว่านี่คือหนังสือบัญชีขนาดยักษ์ที่เปิดเผยต่อสาธารณะและมีบันทึกการทำบัญชีของธุรกรรมทั้งหมดที่เคยทำในระบบบิตคอยน์ โดยมีหน้าใหม่ๆเพิ่มเข้ามาอย่างต่อเนื่อง
• อัลกอริทึมการเข้ารหัสแบบอสมมาตร ที่ใช้สำหรับการอนุมัติธุรกรรม
• เครือข่ายกระจายศูนย์ของโหนดคอมพิวเตอร์ (หรือที่เรียกทั่วไปว่า นักขุด) ที่ตรวจสอบและยืนยันความถูกต้องของธุรกรรมบิตคอยน์ และปรับปรุงบัญชีแยกประเภทสาธารณะ
เรามาสำรวจแนวคิดเหล่านี้ให้ละเอียดยิ่งขึ้น
บล็อกเชนของบิตคอยน์: การทำบัญชีแบบสาธารณะ
สมาชิกทั้งหมดของเครือข่ายบิตคอยน์แชร์บัญชีแยกประเภทสาธารณะ หรือที่เรียกว่า บล็อกเชน ลองจินตนาการถึงหนังสือบัญชีขนาดใหญ่ที่แต่ละหน้ามีรายการธุรกรรมที่ต่อเนื่องกัน โดยหน้าใหม่ที่มีธุรกรรมบิตคอยน์ล่าสุดที่ผู้จ่ายส่งมาจากทั่วโลก จะถูกเพิ่มเข้ามาประมาณทุกๆ 10 นาที หนังสือเล่มใหญ่นี้มีให้บนอินเทอร์เน็ตอยู่เสมอกับทุกคนที่เปิดใช้ซอฟต์แวร์บิตคอยน์ โปรดทราบว่าซอฟต์แวร์ที่เรียกว่า wallet ของบิตคอยน์ สามารถทำงานบนสมาร์ทโฟนหรือคอมพิวเตอร์ส่วนบุคคล และทำให้ผู้ใช้สามารถชำระเงินผ่านเครือข่ายบิตคอยน์ได้
ในบริบทของบิตคอยน์ หน้าที่ประกอบกันเป็นบัญชีแยกประเภทเรียกว่า บล็อก เพราะมันแสดงถึง "บล็อก" ของข้อมูล โดยบล็อกเชนที่ประกอบด้วยบล็อกเดี่ยวๆหลายบล็อก จะเติบโตยาวขึ้นอย่างต่อเนื่องและมีธุรกรรมทั้งหมดที่ทำใน Bitcoin นับตั้งแต่เปิดตัวในเดือนมกราคม 2009
คำร้องขอธุรกรรมบิตคอยน์มีสิ่งต่อไปนี้:
1. ที่อยู่บิตคอยน์ของผู้จ่าย ซึ่งมีที่มาของเงินสำหรับการชำระเงิน
2. ที่อยู่บิตคอยน์ของผู้รับ (ผู้รับเงิน)
3. จำนวนบิตคอยน์ที่โอน
เนื่องจากบล็อกเชนมีประวัติของการชำระเงินขาออกและขาเข้าทั้งหมดที่เชื่อมโยงกับที่อยู่บิตคอยน์ของผู้จ่าย นักขุดที่ดูแลเครือข่ายบิตคอยน์ด้วยสามารถตรวจสอบได้ว่าผู้จ่ายมีเงินเพียงพอสำหรับการชำระเงินหรือไม่ ใครก็ตามสามารถดูจำนวนบิตคอยน์ที่เชื่อมโยงกับ (หรือในแง่นามธรรม ที่ถือไว้ใน) ที่อยู่บิตคอยน์เฉพาะใดๆได้ตลอดเวลา ลองดูด้วยตัวคุณเอง ไปที่ blockchain.info แล้วใส่ที่อยู่ต่อไปนี้
1GaMmGRxKCNuyymancjmAcu3mvUnVjTVmh
ภายใต้ "ค้นหา" จะแสดงจำนวนบิตคอยน์ที่เชื่อมโยงกับที่อยู่นี้
แม้ว่าจะไม่สามารถทราบตัวตนของเจ้าของได้จากที่อยู่บิตคอยน์ของเขาหากเขาไม่ได้ให้ข้อมูลนี้ไว้ แต่การโอนเงินเข้าและออกจากบัญชีของเขา รวมถึงยอดคงเหลือปัจจุบันของเขา ก็เปิดเผยให้ดูได้สาธารณะ
การเข้ารหัสแบบอสมมาตร: ใครจะได้ใช้บิตคอยน์เหล่านั้น
กุญแจเข้ารหัสจะเชื่อมโยงกับธุรกรรมอย่างเช่นที่อธิบายข้างต้น บิตคอยน์ใช้ระบบการเข้ารหัสแบบอสมมาตร (หรือที่รู้จักกันในชื่อ การเข้ารหัสแบบกุญแจสาธารณะ) เรียกเช่นนี้เพราะอัลกอริทึมการเข้ารหัสต้องใช้กุญแจเป็นคู่ โดยแต่ละอันประกอบด้วยตัวเลขหลายหลักเรียงต่อกันเป็นชุดยาว กุญแจหนึ่งเป็นกุญแจสาธารณะและควบคุมการถอดรหัส ส่วนอีกอันคือกุญแจส่วนตัวที่กำกับการเข้ารหัส หรือในทางกลับกัน
อัลกอริทึมสามารถสร้างกุญแจส่วนตัวและสร้างกุญแจสาธารณะที่สัมพันธ์กันได้อย่างง่ายดาย อย่างไรก็ตาม การหากุญแจส่วนตัวจากกุญแจสาธารณะที่สัมพันธ์กันนั้นเป็นไปไม่ได้ในทางคำนวณ ทำให้กุญแจสาธารณะสามารถเปิดเผยต่อสาธารณะได้ตามชื่อของมัน ด้วยกุญแจสาธารณะ ผู้รับเงินสามารถดึงข้อมูลธุรกรรมมาได้ ทำให้การโอนบิตคอยน์ดำเนินต่อไปได้ ภาพที่ 2 ต่อไปนี้แสดงให้เห็นถึงระบบกุญแจคู่ของบิตคอยน์ในเชิงแนวคิด ซึ่งเป็นส่วนหนึ่งของพื้นฐานการทำงานของบิตคอยน์
ภาพที่ 2: การเข้ารหัสแบบสมมาตรโดยภาพประกอบ
อัลกอริทึมของซอฟต์แวร์บิตคอยน์อนุญาตให้เฉพาะเจ้าของกุญแจส่วนตัวเท่านั้นที่สามารถ "ใช้" บิตคอยน์ที่เชื่อมโยงกับที่อยู่บิตคอยน์นั้น ผู้รับหรือผู้รับเงินจะแชร์ที่อยู่บิตคอยน์ของเขากับผู้จ่าย เนื่องจากมีเพียงผู้รับเท่านั้นที่รู้กุญแจส่วนตัวที่เชื่อมโยงกับที่อยู่ของเขา จึงมีเพียงเขาเท่านั้นที่จะสามารถเข้าถึง ใช้จ่าย หรือโอนบิตคอยน์เหล่านั้นได้ในภายหลัง
ภายในบิตคอยน์ ผู้ส่งจะเซ็นธุรกรรมบิตคอยน์ด้วยวิธีดิจิทัลด้วยกุญแจส่วนตัวของเขา ธุรกรรมบิตคอยน์จริงๆแล้วมีกุญแจสาธารณะ (สมมติว่านี่คือที่อยู่บิตคอยน์ในตอนนี้) ระบบจะใช้กุญแจสาธารณะนี้ตรวจสอบว่าลายเซ็นดิจิทัลถูกต้อง และยืนยันว่าผู้ส่งเป็นเจ้าของกุญแจส่วนตัวจริงๆ ระบบนี้อนุญาตให้เจ้าของ "ใช้จ่าย" บิตคอยน์ที่เชื่อมโยงกับที่อยู่บิตคอยน์ของเขาในบัญชีแยกประเภทสาธารณะ และบัญชีแยกประเภทสาธารณะ (เช่น บล็อกเชน) จะถูกอัปเดตด้วยหน้าใหม่ (เช่น บล็อก) ที่มีธุรกรรมนี้ การเพิ่มธุรกรรมใหม่นี้เข้าไปในบล็อกเชนจะทำให้เครือข่ายบิตคอยน์โอนบิตคอยน์เข้าบัญชีที่อยู่ของผู้รับ และตัดออกจากที่อยู่บิตคอยน์ของผู้ส่ง กุญแจส่วนตัวประกอบด้วยชุดตัวเลขยาวที่เก็บและจัดการโดย wallet ของบิตคอยน์ที่ป้องกันด้วยรหัสผ่าน (เช่น ซอฟต์แวร์บนคอมพิวเตอร์ อุปกรณ์มือถือ หรือเว็บแอปพลิเคชันอื่นๆของผู้ใช้)
เครือข่ายของนักขุดที่ทำหน้าที่เป็นผู้ตีเหรียญ ผู้ทำบัญชี และผู้ควบคุมระบบ
ถึงตอนนี้ เราได้พูดถึงธุรกรรมว่ามีลักษณะอย่างไร และตรวจสอบความถูกต้องอย่างไร หากบิตคอยน์เป็นระบบที่ดำเนินการโดยส่วนกลาง เรื่องราวก็จะจบลงที่นี่: หน่วยงานเดียวจะรับผิดชอบงานนี้ อย่างไรก็ตาม บิตคอยน์เป็นระบบกระจายศูนย์ และด้วยเหตุนี้ งานนี้จึงแบ่งปันกันระหว่างกลุ่มโหนด (นักขุด) ที่สมัครใจเข้าร่วมซึ่งกระจายอยู่ทั่วโลก การทำความเข้าใจว่าระบบที่รวมการทำบัญชีและการอนุมัติการโอนการชำระเงินสามารถดำเนินการโดยนิติบุคคลที่แตกต่างกันได้อย่างไร เพื่อสนับสนุนผลประโยชน์ส่วนตนของเขาหรือเธอ เป็นสิ่งสำคัญ ลักษณะของระบบนี้เป็นหนึ่งในความเข้าใจสำคัญที่ผมกล่าวถึงก่อนหน้านี้ว่ามักถูกมองข้ามไปโดยผู้วิจารณ์บิตคอยน์
นักขุด ซึ่งเป็นโหนดที่รับผิดชอบในการดำเนินงานเครือข่ายบิตคอยน์ จะตรวจสอบความถูกต้องของธุรกรรมและอัปเดตบล็อกเชนด้วยบล็อกใหม่ที่ประกอบด้วยธุรกรรมล่าสุดเป็นประจำ ซอฟต์แวร์บิตคอยน์ที่นักขุดใช้งานบนคอมพิวเตอร์ของตนเองนั้นรวมโปรโตคอลบิตคอยน์ที่มีชุดกฎและข้อตกลงเอาไว้
โดยรวมแล้ว เครือข่ายบิตคอยน์กำหนดให้บล็อกเชน (บัญชีแยกประเภทสาธารณะ) ต้องได้รับการอัปเดตอย่างต่อเนื่องด้วยการเพิ่มบล็อกใหม่ (หน้าในสมุดบัญชี) ประมาณทุกๆ 10 นาที จะมีการเพิ่มบล็อกใหม่ที่มีรายการธุรกรรมล่าสุด แม้ว่านักขุดทั้งหมดจะทำงานกับบล็อกถัดไป แต่จะมีเพียงหนึ่งคนเท่านั้นที่จะถูกเลือกให้เพิ่มเวอร์ชันบล็อกของเขาเข้าไปในบล็อกเชน อันที่จริง นักขุดแต่ละคนดำเนินการเพื่อประโยชน์ส่วนตัวเมื่อเขาสร้างเวอร์ชันของบล็อกถัดไปนี้ และเก็บค่าธรรมเนียมการทำธุรกรรมที่เกี่ยวข้องกับบล็อกธุรกรรมนั้นด้วยตัวเอง แม้ว่าพารามิเตอร์หลักของธุรกรรมบิตคอยน์จะไม่เปลี่ยนแปลง (ผู้จ่าย ผู้รับ จำนวนเงิน) แต่ส่วนใหญ่จะรวมค่าธรรมเนียมการทำธุรกรรมที่จ่ายโดยผู้จ่ายและจะถูกโอนเข้าบัญชีของนักขุดที่บล็อกของเขาถูกเลือกให้รวมเข้าไปในบล็อกเชน ดังนั้น นักขุดคนนี้จะอัปเดตธุรกรรมแต่ละรายการเหล่านี้ และจะโอนค่าธรรมเนียมที่เกี่ยวข้องกับธุรกรรมเหล่านั้นเข้าที่อยู่บิตคอยน์ของเขาเอง
นอกเหนือจากค่าธรรมเนียมการทำธุรกรรมแล้ว นักขุดที่บล็อกของพวกเขาถูกเพิ่มเข้าไปในบล็อกเชนจะได้รับเครดิตเพิ่มเติมด้วยบิตคอยน์ที่ตีขึ้นใหม่ด้วย พวกเขาสร้างธุรกรรมพิเศษที่เพิ่มเหล่านี้ลงในบัญชีบิตคอยน์ของตนเอง สิ่งนี้เรียกว่ารางวัลบล็อก ปัจจุบัน โปรโตคอลบิตคอยน์อนุญาตให้นักขุดจัดสรรให้ตัวเองได้ 25 บิตคอยน์ใหม่ต่อบล็อกที่สร้างขึ้น นี่เป็นส่วนเพิ่มเติมจากยอดรวมค่าธรรมเนียมการทำธุรกรรม ในช่วงแรกเมื่อเปิดตัวบิตคอยน์ มีการจัดสรรรางวัลบล็อก 50 บิตคอยน์ (BTC) ต่อบล็อก ซึ่งจะลดลงครึ่งหนึ่งประมาณทุกๆ 4 ปี
ด้วยบิตคอยน์ใหม่ที่ถูกโอนเข้าที่อยู่ของเขา นักขุดที่เวอร์ชันบล็อกของเขาถูกเลือกให้รวมเข้าไปในบล็อกเชนจะได้รับประโยชน์อย่างชัดเจนจากการหาคำตอบได้ก่อนเพื่อนนักขุดคนอื่นๆ วิธีการทำงานของกระบวนการคัดเลือกนี้จะอธิบายในไม่ช้า อย่างไรก็ตาม ในตอนนี้ ให้มองว่าเป็นการแก้ปัญหาทางคณิตศาสตร์โดยการประมวลผลที่ใช้ทรัพยากรมาก คำตอบนั้นยากที่จะหา แต่เมื่อพบแล้ว การตรวจสอบความถูกต้องก็ทำได้ง่าย นักขุดคนแรกที่หาคำตอบให้กับบล็อกของเขาได้จะได้รับอนุญาตให้เผยแพร่เวอร์ชันนี้ไปยังเครือข่ายนักขุดทั้งหมด
นักขุดเหล่านี้จะได้รับบล็อกและคำตอบของมัน และจากนั้นจะทำงานเพื่อตรวจสอบและยืนยันความถูกต้อง นั่นคือ รับรองว่าคำตอบที่นักขุดคนแรกหาได้จากบล็อกนั้นถูกต้อง โปรโตคอลบิตคอยน์กำหนดความยากของปัญหาในลักษณะที่ใช้เวลาเฉลี่ยประมาณ 10 นาทีเพื่อหาคำตอบ
หากนักขุดที่หาคำตอบของบล็อกพบจะโอนให้กับตัวเองมากกว่า 25 บิตคอยน์ใหม่ที่อนุญาตในปัจจุบัน นักขุดคนอื่นๆจะปฏิเสธบล็อกของนักขุดคนนั้น และจะทำงานต่อไปเพื่อหาคำตอบสำหรับเวอร์ชันบล็อกของตัวเอง แต่ละบล็อกจะแตกต่างกันเล็กน้อย และดังนั้นแต่ละบล็อกก็จะมีคำตอบที่แตกต่างกัน
สิ่งที่อาจดูขัดแย้งกันคือ เมื่อนักขุดแก้ปัญหาการคำนวณได้ นักขุดคนอื่นๆจะยอมแพ้ ยอมรับที่จะรวมบล็อกของนักขุดคนนี้เป็นบล็อกถัดไปในบล็อกเชนหากสามารถตรวจสอบได้ และจะเริ่มทำงานกับบล็อกถัดไป งานนี้จะให้นักขุดแต่ละคนเพิ่มธุรกรรมล่าสุดทั้งหมดที่เข้ามาตั้งแต่สร้างบล็อกก่อนหน้าเข้าไปในบล็อกใหม่ ซึ่งในทางกลับกันจะถูกแก้ไขและเพิ่มเข้าไปในบล็อกเชนที่ไม่มีวันสิ้นสุด
ลักษณะการทำงานของบิตคอยน์อธิบายได้ว่าทำไมนักขุดที่เป็นคนแรกที่หาคำตอบได้จะเครดิตให้ตัวเองเฉพาะจำนวนรางวัลบล็อกที่อนุญาตโดยโปรโตคอลบิตคอยน์เท่านั้น การทำเช่นนี้จะทำให้มั่นใจได้ว่าบล็อกของเขาจะได้รับการยอมรับจากนักขุดคนอื่นๆ และได้รับรางวัลที่เกี่ยวข้อง (เช่น ค่าธรรมเนียมการทำธุรกรรม) ในทำนองเดียวกัน นักขุดคนอื่นๆจะไม่ได้รับประโยชน์ใดๆจากการปฏิเสธบล็อก แม้ว่าบล็อกนั้นจะถูกต้องก็ตาม ระบบการชำระเงินของบิตคอยน์จะรักษามูลค่าไว้ได้ก็ต่อเมื่อมันทำงานอย่างถูกต้องเท่านั้น หากนักขุดปฏิเสธบล็อกทั้งหมดยกเว้นของตัวเอง ก็จะไม่มีวันบรรลุฉันทามติ มูลค่าของระบบโดยรวมจะถูกทำลาย และนักขุดจะไม่สามารถได้รับประโยชน์ใดๆเลย ในกรณีเช่นนี้ ไม่ว่าจำนวนบิตคอยน์ที่นักขุดถือไว้จะเท่าใด ก็จะไร้ค่า ดังนั้น นักขุดทั้งหมดจะได้ประโยชน์หากทุกคนเคารพโปรโตคอลบิตคอยน์ที่กำหนดไว้ในซอฟต์แวร์บิตคอยน์ที่ใช้ร่วมกัน ด้วยเหตุนี้ บิตคอยน์จึงมีลักษณะตรงกันข้ามกับโศกนาฏกรรมของทรัพยากรส่วนรวมที่อธิบายไว้ก่อนหน้านี้
ตอนนี้ เรามาดูรายละเอียดของสิ่งที่เราเรียกก่อนหน้านี้ว่าเป็นงานการคำนวณที่ใช้ทรัพยากรมากที่จำเป็นต้องใช้ในการแก้ปัญหาทางคณิตศาสตร์ของบล็อก เพื่อให้นักขุดได้รับเลือกบล็อกของเขา เขาต้องแก้ปัญหาที่เกี่ยวข้องกับบล็อก กระบวนการคัดเลือกนี้เรียกว่า "proof-of-work" เนื่องจากมันบ่งบอกว่านักขุดต้องทำงานเพื่อให้ได้มา เพื่อทำความเข้าใจกลไกที่เกี่ยวข้องอย่างถ่องแท้ เราต้องเข้าใจแนวคิดทางการเข้ารหัสที่เรียกว่า ฟังก์ชันแฮช (hash function) ก่อน จากนั้นเราจึงสามารถอธิบายได้ว่ามันถูกใช้อย่างไรในบริบทของ proof-of-work ของนักขุด
ฟังก์ชันแฮชทางการเข้ารหัส - "ลายนิ้วมือ" แบบดิจิทัล
การแฮชเชิงการเข้ารหัสเป็นอัลกอริทึมที่ซับซ้อน ซึ่งทำงานพื้นฐานมากอย่างหนึ่ง นั่นคือการแปลงข้อความที่มีความยาวตามต้องการ (หนังสือทั้งเล่ม เอกสาร ประโยค หรือแม้กระทั่งคำเดียว) ให้เป็นสตริงตัวเลขความยาวคงที่ที่ดูเหมือนสุ่ม ภาพที่ 3 ต่อไปนี้แสดงตัวอย่าง ผลลัพธ์ของฟังก์ชันแฮชหรือแฮชนั้นมักเรียกว่าค่าย่อยของข้อความ (message digest) และสามารถพิจารณาได้ว่าเป็น "ลายนิ้วมือ" ของเอกสาร
รูปที่ 3: อัลกอริทึมแฮชในการทำงาน
ในรูปข้างต้น ให้สังเกตว่าข้อความนำเข้า "There are 2 dogs in the backyard" ให้ผลลัพธ์เป็นค่าย่อยที่แตกต่างโดยสิ้นเชิงจาก "There are 3 dogs in the backyard" การเปลี่ยนแปลงเพียงอักขระเดียวทำให้ผลลัพธ์มีตัวเลขทุกตัวแตกต่างกันโดยสิ้นเชิง ผลลัพธ์ค่าย่อยในรูปนี้แสดงเป็นตัวเลขฐานสิบหก ซึ่งแตกต่างจากระบบฐานสิบที่เราใช้กันทั่วไป ระบบฐานสิบหกมีฐานเป็น 16 ใช้สัญลักษณ์ 16 ตัวเพื่อแทนตัวเลข 16 ตัวในระบบ สัญลักษณ์ 0 ถึง 9 แทนตัวเลข 0 ถึง 9 และตัวอักษร A ถึง F แทนตัวเลข 10 ถึง 15 ดังนั้น F ในเลขฐานสิบหกแทนเลข 15 ดังนั้น ตัวเลขฐานสิบหก 5A36 จึงเท่ากับ (5 x 163) + (10 x 162) + (3 x 161) + (6 x 160) ซึ่งเท่ากับ 23,094 ในระบบตัวเลขฐานสิบ ลองทดลองสลับระหว่างฐานสิบหกกับฐานสิบบนเครื่องคิดเลขในคอมพิวเตอร์ของคุณเองเพื่อดูว่ามันทำงานอย่างไร
ผู้ใช้บิตคอยน์ไม่สามารถควบคุมได้ว่าผลลัพธ์ (ค่าย่อยในรูปที่ 3) จะออกมาเป็นอย่างไร นอกจากนี้ เมื่อให้ค่าย่อยที่เฉพาะเจาะจง การหาข้อมูลนำเข้าที่จะสร้างมันนั้นเป็นไปไม่ได้เลย ดังนั้น การสร้างค่าย่อยนั้นง่าย แต่การได้ข้อความต้นฉบับจากค่าย่อยนั้นเป็นไปไม่ได้ โดยใช้อุปมาอุปไมยเรื่องลายนิ้วมือของมนุษย์ หากให้ลายนิ้วมือเดียว เราจะพบว่าเป็นไปไม่ได้ที่จะระบุได้ว่าใครเป็นคนทิ้งมันไว้ เว้นแต่คนคนนั้นจะเคยถูกพิมพ์ลายนิ้วมือไว้ก่อนแล้ว
ก่อนหน้านี้เราได้กล่าวว่านักขุดทุกคนสามารถตรวจสอบได้ง่ายว่าคำตอบถูกต้องเมื่อหาเจอแล้ว แต่การหามันนั้นเป็นส่วนที่ยาก นั่นเป็นเหตุผลว่าทำไมการแฮชเชิงการเข้ารหัสจึงเหมาะสมกับวัตถุประสงค์ของบิตคอยน์ นักขุดในความพยายามที่จะแก้ปัญหาบล็อก ต้องทำซ้ำรูปแบบเฉพาะที่ปรากฏโดยเนื้อหาของค่าย่อย เนื่องจากการทำซ้ำผลลัพธ์ที่เฉพาะเจาะจงในค่าย่อยเป็นไปไม่ได้ พวกเขาจึงต้องเพิ่มตัวเลขในข้อความและคำนวณค่าแฮชใหม่ซ้ำแล้วซ้ำอีกจนกว่าจะพบรูปแบบที่เฉพาะเจาะจงในค่าย่อยตามที่โปรโตคอลบิตคอยน์กำหนด กระบวนการนี้เปรียบได้กับการเปลี่ยนจำนวนสุนัขในตัวอย่างในรูปที่ 3 ("2 dogs", "3 dogs", "4 dogs") เพื่อสร้างค่าย่อยที่แตกต่างกัน ตัวอย่างเช่น สมมติว่าโปรโตคอลบิตคอยน์ปัจจุบันระบุว่าเนื้อหาของค่าย่อยต้องแสดงรูปแบบที่ขึ้นต้นด้วย "00" โดยการเปลี่ยนจำนวนสุนัขในตัวอย่าง ตัวเลขฐานสิบหกที่สอดคล้องกันในค่าย่อยจะต้องตรงตามข้อกำหนดนี้ในที่สุด ซึ่งบ่งชี้ว่าเป็นคำตอบของบล็อก
นักขุดที่กำลังมองหาคำตอบมักต้องคำนวณแฮชหลายล้านครั้งเพื่อหารูปแบบที่ถูกต้อง แต่เมื่อพบแล้ว นักขุดคนอื่นๆเพียงแค่คำนวณแฮชครั้งเดียวก็เพียงพอที่จะตรวจสอบความถูกต้องแล้ว
อัลกอริทึมแฮชของบิตคอยน์ซึ่งสร้างเนื้อหาของค่าย่อยจากข้อความนำเข้า ทำให้ระบบที่อธิบายไว้ข้างต้นเป็นไปได้ ดังนั้น ฟังก์ชันแฮชเชิงการเข้ารหัสที่เหมาะสมจึงมีคุณสมบัติหลัก 4 ประการ ได้แก่:
• การคำนวณค่าแฮชที่สอดคล้องกับข้อความใดๆ ที่กำหนดนั้นง่าย
• การสร้างข้อความที่มีแฮชที่กำหนดนั้นเป็นไปไม่ได้
• การแก้ไขข้อความโดยไม่เปลี่ยนแปลงแฮชนั้นเป็นไปไม่ได้
• การค้นหาข้อความสองข้อความที่แตกต่างกันที่มีแฮชเหมือนกันนั้นเป็นไปไม่ได้
ตัวอย่างต่อไปนี้ ซึ่งนำมาจาก Wikipedia แสดงให้เห็นการใช้งานฟังก์ชันแฮช
Alice ตั้งโจทย์ปัญหาคณิตศาสตร์ที่ยากให้กับ Bob และอ้างว่าเธอได้แก้ปัญหานั้นแล้ว Bob อยากลองแก้ปัญหาด้วยตัวเอง แต่เขาก็อยากให้แน่ใจว่า Alice ไม่ได้โกหก ดังนั้น Alice จึงเขียนวิธีแก้ปัญหาของเธอลงไป คำนวณค่าแฮชของวิธีแก้ และบอกค่าแฮชให้ Bob ทราบ (โดยเก็บวิธีแก้เป็นความลับ) จากนั้น เมื่อ Bob คิดวิธีแก้ปัญหาได้ด้วยตัวเองในอีกไม่กี่วันต่อมา Alice สามารถพิสูจน์ได้ว่าเธอมีวิธีแก้ปัญหามาก่อนแล้ว โดยการเปิดเผยวิธีแก้และให้ Bob คำนวณแฮชของมันและตรวจสอบว่าตรงกับค่าแฮชที่เธอให้ไว้ก่อนหน้านี้หรือไม่ (นี่เป็นตัวอย่างของ commitment scheme อย่างง่าย ในทางปฏิบัติ Alice และ Bob จะเป็นโปรแกรมคอมพิวเตอร์ และความลับจะเป็นบางสิ่งที่ปลอมแปลงได้ยากกว่าวิธีแก้ปัญหาที่อ้างว่าแก้ได้)
ฟังก์ชันแฮชเป็นส่วนหนึ่งของกระบวนการที่ช่วยให้ผู้ใช้สามารถเซ็นเอกสารหรือข้อความด้วยลายเซ็นดิจิทัลใน Bitcoin ในบริบทของระบบ Proof-of-Work ของ Bitcoin ซึ่งจะได้กล่าวถึงต่อไป คุณสมบัติที่เป็นประโยชน์ที่สุดสองประการของฟังก์ชันแฮช ได้แก่:
• เป็นไปไม่ได้ที่จะสร้างข้อความจากค่าแฮชที่กำหนดให้
• เปลี่ยนแปลงอักขระเพียงตัวเดียวในข้อความก็จะทำให้ค่าแฮชเปลี่ยนไปอย่างสิ้นเชิง
มีการสร้างอัลกอริทึมแฮชหลายประเภท และ Bitcoin ใช้สองประเภท ได้แก่ SHA-256 สำหรับระบบ Proof-of-Work และ RIPEMD-160 สำหรับที่อยู่ Bitcoin ฟังก์ชันแฮชเป็นหัวใจสำคัญของระบบ Proof-of-Work ซึ่งเราจะกล่าวถึงต่อไป
การพิสูจน์งานของนักขุด (Miner's Proof of Work)
ณ เวลาใดก็ตาม นักขุดแต่ละคนจะมีส่วนร่วมอย่างแข็งขันในการสร้างบล็อกถัดไปที่จะถูกเพิ่มเข้าไปในบล็อกเชน โดยการแก้ปัญหาที่ยาก ซึ่งเรียกว่า การพิสูจน์งาน (proof-of-work) นักขุดคนแรกที่แก้ปัญหาการพิสูจน์งานจะได้รับรางวัลเป็นบิทคอยน์ที่เพิ่งถูกขุดขึ้นมาใหม่ (ปัจจุบันคือ 25 บิทคอยน์) และค่าธรรมเนียมการทำธุรกรรมสะสมที่เกี่ยวข้องกับธุรกรรมที่รวมอยู่ในบล็อกที่กำลังสร้าง ค่าธรรมเนียมการทำธุรกรรม ซึ่งโดยทั่วไปเป็นจำนวนเงินเล็กน้อย จะถูกเพิ่มโดยผู้จ่ายเมื่อพวกเขาส่งธุรกรรม ภายในปี ค.ศ. 2140 บิทคอยน์ทั้งหมดจะถูกขุดแล้ว และนักขุดจะได้รับรางวัลเฉพาะค่าธรรมเนียมการทำธุรกรรมเท่านั้น
ดังนั้นการพิสูจน์งานจึงสามารถมองได้ว่าเป็นการแข่งขันระหว่างนักขุดบิทคอยน์เพื่อค้นหาค่าแฮช SHA-256 ของบล็อกที่พวกเขาพยายามสร้างซึ่งจะมีลักษณะบางอย่าง ดังที่เราเห็นก่อนหน้านี้ ผลลัพธ์ของแฮชเป็นเพียงตัวเลขที่ใหญ่มากซึ่งแสดงในรูปแบบเลขฐานสิบหก เป้าหมายของนักขุด ปัญหาที่ต้องแก้ คือการสร้างผลลัพธ์แฮชที่มีค่าต่ำกว่าค่าที่กำหนด นักขุดคนแรกที่คำนวณค่าที่มีลักษณะนี้ได้สำเร็จจะเป็นผู้ชนะ และเวอร์ชันของบล็อกของเขาจะถูกเพิ่มเข้าไปในบล็อกเชนที่กล่าวถึงก่อนหน้านี้ในบทนี้หลังจากผ่านการตรวจสอบโดยนักขุดคนอื่นๆ
เพื่อความง่าย จินตนาการว่าผลลัพธ์ของแฮชนั้นเป็นตัวเลขระหว่าง 0 ถึง 1,000,000 และนักขุดคนแรกที่ได้ผลลัพธ์แฮชน้อยกว่า 10,000 จะเป็นผู้ชนะ ตัวเลข 10,000 ทำหน้าที่เป็นค่าเริ่มต้น (threshold) และแต่ละบล็อกภายในบิทคอยน์จะมีตัวเลขที่มีวัตถุประสงค์เพียงเพื่อให้ได้ค่าเริ่มต้น
ตัวเลขภายในบล็อกบิทคอยน์ที่ถูกทดสอบกับค่าเริ่มต้นเป็นที่รู้จักกันในชื่อ "nonce" นักขุดแต่ละคนจะเพิ่มค่า nonce ของตนเองตามจำนวนที่กำหนดจนกว่าผลลัพธ์แฮชสำหรับบล็อกของมันจะต่ำกว่าค่าเริ่มต้น อย่างที่เราพูดไปก่อนหน้านี้ บล็อกของนักขุดแต่ละคนมีข้อมูลที่แตกต่างกัน ดังนั้นจึงมีผลลัพธ์แฮชที่แตกต่างกันสำหรับ "nonce" เดียวกัน กระบวนการนี้แสดงไว้ในภาพที่ 4
FIGURE 4: การพิสูจน์งานแสดงด้วยภาพประกอบ
โปรโตคอลบิทคอยน์ ซึ่งดำเนินการโดยซอฟต์แวร์ที่ทำงานอยู่บนคอมพิวเตอร์ของนักขุดแต่ละคน จะปรับระดับความยากของปัญหาเพื่อให้ใช้เวลาประมาณ 10 นาทีก่อนที่นักขุดคนแรกจะแก้ปัญหานี้ได้ วัตถุประสงค์คือเพื่อให้บล็อกเชนได้รับการอัปเดตอย่างสม่ำเสมอด้วยบล็อกใหม่ที่มีธุรกรรมล่าสุดที่ส่งมาในช่วง 10 นาทีก่อนหน้า ค่านี้ค่อนข้างสุ่ม และดังที่จะเห็นในบทต่อๆ ไป ซาโตชิได้อุทิศการอภิปรายบางส่วนของเขาให้กับหัวข้อนี้
การอภิปรายก่อนหน้าเปรียบเทียบ nonce กับค่าเริ่มต้น เนื่องจากตัวเลขของแฮชซึ่งเรียกว่าการพิสูจน์งาน อยู่ในระบบเลขฐานสิบหก หรือฐาน 16 สิ่งนี้แปลว่าตัวเลข X ไบต์แรกคือตัวเลข 0 โดยที่ X จะปรับเป็นระยะๆ เพื่อให้ระดับความยากของการพิสูจน์งานค่อนข้างคงที่
ตัวอย่างเช่น สมมติว่าบล็อก #282,435 ของบล็อกเชนมีผลลัพธ์ SHA-256 ดังต่อไปนี้:
0000000000000000c6647dad26b01b28f534223450d75d3b6b2882855039b673
จำไว้ว่าในระบบเลขฐาน 16 จะมีสัญลักษณ์ที่แทนตัวเลขสิบหกตัวตั้งแต่ 0 ถึง 15 สัญลักษณ์ที่แทน 0 ถึง 9 ในระบบนี้คือ 0 ถึง 9 เช่นเดียวกับในระบบทศนิยม หรือฐาน 10 และตัวเลข 10 ถึง 15 ของระบบเลขฐานสิบหกจะถูกแทนด้วย A ถึง F ตัวเลขฐานสิบหกข้างต้นประกอบด้วย 64 หลัก เนื่องจากตัวอักษรทางซ้ายในจำนวนฐานสิบหกแสดงถึงเลขยกกำลังสูงกว่าของ 16 ดังนั้นตัวเลขที่ใหญ่กว่า หากต้องการให้ผลลัพธ์แฮชเล็กลง ตัวเลขนำหน้าในผลลัพธ์แฮชจะต้องเป็น 0 นี่คือเหตุผลที่ว่าการระบุผลลัพธ์แฮชที่ต้องต่ำกว่าค่าเริ่มต้นแปลว่าต้องมีตัวเลขนำหน้าจำนวนหนึ่งเป็น 0 ไม่ว่าจะมองจากมุมมองใด การพิสูจน์งานคือการหา nonce ที่จะสร้างผลลัพธ์แฮชต่ำกว่าค่าเริ่มต้นที่กำหนดโดยโปรโตคอลบิทคอยน์ในขณะนั้น
ในตัวอย่างในภาพที่ 4 - การพิสูจน์งานแสดงด้วยภาพประกอบ มีเพียงเมื่อตัวเลขสิบหกหลักแรกของผลลัพธ์เท่ากับ 0 เท่านั้น ผลลัพธ์ของแฮชจึงจะต่ำกว่าค่าเริ่มต้นที่กำหนดโดยโปรโตคอลของบิทคอยน์ ดังนั้นนักขุดที่ได้เลขนี้เป็นคนแรกและ "ชนะ" บล็อกนั้นจึงต้องเปลี่ยนตัวเลข "nonce" จนกว่าจะสร้างตัวเลขฐานสิบหกที่มี 0 นำหน้าในจำนวนที่ต้องการอย่างน้อย เช่นเดียวกับในลอตเตอรี่ นักขุดที่ซื้อ "ตั๋ว" มากที่สุด (เช่น สร้างตัวเลข SHA-256 มากที่สุด) จะมีโอกาสดีกว่าในการหาตัวเลขที่มี 0 ในจำนวนที่ถูกต้อง ข้อกำหนดนี้ของระบบบิทคอยน์ทำให้เกิดการแข่งขันในการสร้างฮาร์ดแวร์ที่สามารถสร้างแฮชต่อวินาทีได้มากขึ้น นักขุดผู้โชคดีที่ค้นพบแฮชสำหรับบล็อก #282,435 ของบล็อกเชนเป็นคนแรกได้เพิ่มค่า nonce เป็น 505,482,605 ซึ่งระบุในเลขฐานสิบ หมายความว่านักขุดรายนี้ต้องสร้าง "แฮช" มากกว่า 500 ล้านครั้งก่อนที่จะพบแฮชที่มีจำนวนศูนย์นำหน้าที่ถูกต้อง
ดังที่กล่าวไว้ก่อนหน้านี้ เป้าหมายของโปรโตคอลบิทคอยน์คือการสร้างบล็อกธุรกรรมในทุกๆ 10 นาทีโดยประมาณ สำหรับระดับความยากที่กำหนด หากมีนักขุดเข้าร่วมมากขึ้น หรือพูดให้ถูกต้องคือ มีการคำนวณแฮชต่อวินาทีมากขึ้น โอกาสในการค้นพบไดเจสต์ที่ต้องการ (ผลลัพธ์แฮช) ในเวลาน้อยกว่า 10 นาทีจะเพิ่มขึ้น หลังจากจำนวนบล็อกหนึ่ง โปรโตคอลบิทคอยน์จะประเมินว่าบล็อกกำลังถูกสร้างขึ้นมาเร็วเพียงใด หากเร็วกว่า 10 นาทีโดยเฉลี่ย ระดับความยากจะเพิ่มขึ้น (เช่น จำนวนของ 0 นำหน้าเพิ่มขึ้น ลดความน่าจะเป็นที่นักขุดแต่ละคนจะได้ไดเจสต์ที่มีลักษณะนั้น) แต่หากช้ากว่า ความยากจะลดลง (เช่น จำนวนของ 0 นำหน้าลดลง เพิ่มความน่าจะเป็นในการได้มัน)
เมื่อนักขุดค้นพบ nonce ที่ให้ผลลัพธ์แฮชที่ถูกต้อง บล็อกจะถูกกระจายออกไป และนักขุดคนอื่นๆ จะตรวจสอบ ยอมรับ และเริ่มทำงานในบล็อกถัดไป ดังนั้น บิทคอยน์จึงทำงานเหมือนเกมลอตเตอรี่ที่ดำเนินต่อเนื่องโดยเริ่มใหม่ทุก 10 นาที ใครจะเป็นนักขุดผู้โชคดีที่จะพบ nonce ที่มีลักษณะที่ถูกต้อง?
รูปที่ 5 แสดงให้เห็นถึงแนวคิดที่อยู่เบื้องหลังการพิสูจน์งาน โปรดทราบว่ามีข้อมูลในบล็อกมากกว่าที่แสดงไว้ แต่ได้ถูกลดทอนลงเพื่อความง่าย
ฉันทามติของนักขุดและบล็อกกำพร้า
ดังที่กล่าวไปแล้ว บิทคอยน์พึ่งพาฉันทามติอย่างมากเพื่อให้สามารถทำงานได้ แนวคิดนี้ซึ่งจะได้รับการอภิปรายเพิ่มเติมในบทที่ 9 จะเข้ามามีบทบาทเมื่อนักขุดสองคนแก้ปัญหาบล็อกของตนในเวลาใกล้เคียงกัน เมื่อเกิดเหตุการณ์นี้ขึ้น นักขุดทั้งสองจะออกอากาศบล็อกของตนรวมถึงวิธีแก้ปัญหาไปทั่วระบบบิทคอยน์ นักขุดคนอื่นๆ ทั้งหมดจะได้รับและเก็บบล็อกทั้งสองไว้ แต่งานของพวกเขาในบล็อกถัดไปจะขึ้นอยู่กับว่าพวกเขาได้รับบล็อกปัจจุบันสองบล็อกใดก่อน สมมติว่า 50% ของนักขุดได้รับบล็อกจากนักขุด A ก่อน และอีกครึ่งหนึ่งได้รับบล็อกของนักขุด B ก่อน สถานการณ์นี้แสดงให้เห็นสำหรับบล็อก #29302 ในรูปที่ 6 ด้านล่าง
สถานการณ์นี้เปรียบเสมือนการแข่งขันที่เข้าสู่ช่วงต่อเวลา ว่าบล็อกใดในสองบล็อกจะกลายเป็นส่วนหนึ่งของบล็อกเชนที่แท้จริงจะขึ้นอยู่กับว่าบล็อกถัดไปจะถูกแก้ไขได้อย่างรวดเร็วเพียงใดและโดยใคร นักขุดที่ได้รับบล็อกของ A หรือนักขุดที่ได้รับบล็อกของ B ณ จุดนี้ บล็อกเชนมีอยู่สองเวอร์ชัน โดยนักขุดครึ่งหนึ่งมีเวอร์ชันบล็อก #29302 ของนักขุด A และอีกครึ่งหนึ่งมีเวอร์ชันของนักขุด B ว่าเวอร์ชันใดในสองเวอร์ชันนี้จะรอดชีวิตขึ้นอยู่กับว่านักขุดที่แก้ปัญหาบล็อกถัดไปใน #29303 ในรูปที่ 6 มีเวอร์ชันใดในคอมพิวเตอร์ของเขา เมื่อบล็อก #29303 ถูกแก้ไข เวอร์ชันนี้ของบล็อกเชนจะกลายเป็นเวอร์ชันที่ยาวที่สุดในสองเวอร์ชันและกลายเป็นเวอร์ชันอย่างเป็นทางการ จากนั้นนักขุดทั้งหมดจะทิ้งเวอร์ชันอื่นของบล็อกเชน ซึ่งจะกลายเป็นสิ่งที่เรียกว่า บล็อกกำพร้า กระบวนการนี้แสดงไว้ในรูปที่ 7
FIGURE 6: การแยกบล็อก
ทำไมบิทคอยน์ถึงใช้ได้ผล?
จนถึงตอนนี้เราได้กล่าวถึงวิธีการทำงานของบิทคอยน์ แต่ยังไม่ได้บอกว่าทำไม เพื่อที่จะเข้าใจเรื่องนี้ จำเป็นต้องมีความรู้เกี่ยวกับแนวคิดเพิ่มเติมอีกสองสามอย่าง เช่น ซอฟต์แวร์โอเพนซอร์ส แนวคิดเหล่านี้มีดังต่อไปนี้และจะอธิบายด้านล่าง:
FIGURE 7: เชนที่ยาวที่สุดเป็นผู้ชนะ
• บิทคอยน์เป็น ซอฟต์แวร์โอเพนซอร์ส
• ซอฟต์แวร์บิทคอยน์กำหนด คำสั่งการทำงาน ที่นักขุดและไคลเอนต์กระเป๋าสตางค์ต้องปฏิบัติตาม
• ซอฟต์แวร์บิทคอยน์ยังกำหนดและดำเนินการ โปรโตคอลการสื่อสาร ด้วย
• การแบ่งปันไฟล์บล็อกเชนแบบกระจายช่วยให้สามารถทำบัญชีแบบเปิดได้
ซอฟต์แวร์โอเพนซอร์สคือซอฟต์แวร์คอมพิวเตอร์ที่มีซอร์สโค้ดให้ทุกคนสามารถดูได้ นอกจากนี้ยังทำงานภายใต้สัญญาอนุญาตพิเศษที่อนุญาตให้ทุกคนแก้ไขและใช้ได้ ด้วยซอร์สโค้ด โปรแกรมเมอร์สามารถสร้างโปรแกรม (ไฟล์ไบนารีที่ทำงานบนคอมพิวเตอร์) ใหม่และปรับเปลี่ยนได้ตามต้องการ จึงเกิดผู้ลอกเลียนแบบบิทคอยน์ขึ้นมามากมาย สกุลเงินเสมือนอื่นๆ ที่แตกต่างจากบิทคอยน์เพียงเล็กน้อยและส่วนใหญ่ไม่ได้มีนวัตกรรมที่สำคัญใดๆ ยกเว้นสกุลเงินไม่กี่สกุลเช่น Namecoin สกุลเงินเสมือนทางเลือกเหล่านี้ส่วนใหญ่อิงจากการเปลี่ยนอัตราการสร้างบล็อก จำนวนเหรียญทั้งหมดที่หมุนเวียน และอัลกอริทึมแฮชเชิงการเข้ารหัสลับที่ใช้
การที่โค้ดของซอฟต์แวร์เป็นโอเพนซอร์สช่วยให้ผู้เชี่ยวชาญสามารถวิเคราะห์และยืนยันความสมบูรณ์ของมันได้ นั่นคือยืนยันว่ามันทำในสิ่งที่อ้างว่าทำได้จริง ตัวอย่างที่โดดเด่นของซอฟต์แวร์โอเพนซอร์สคือ Linux ซึ่งได้แย่งส่วนแบ่งการตลาดจาก Microsoft Windows ในอุตสาหกรรมเซิร์ฟเวอร์ เนื่องจากเป็นโอเพนซอร์ส ปัญหาจึงถูกพบและแก้ไขได้เร็วกว่ามากหากเป็นซอฟต์แวร์ที่มีกรรมสิทธิ์ เนื่องจากมีโปรแกรมเมอร์จำนวนมากตรวจสอบและปรับปรุงโค้ดอย่างต่อเนื่อง Linux ได้แสดงให้เห็นว่าประโยชน์ส่วนรวมและผลประโยชน์ส่วนตัวสามารถทำงานร่วมกันได้จนถึงตอนนี้ อย่างน้อยในแง่ของการจัดการซอฟต์แวร์โอเพนซอร์ส ความเปิดเผยนี้ทำให้มั่นใจได้ถึงระดับความสมบูรณ์ที่สูงซึ่งไม่สามารถทำได้ในซอฟต์แวร์ที่มีลิขสิทธิ์ ซึ่งมีเพียงชื่อเสียงของบริษัทที่รับผิดชอบซอฟต์แวร์นั้นเท่านั้นที่รับประกันว่ามันทำในสิ่งที่ควรทำ
นอกจากนี้ บิทคอยน์ยังทำงานผ่านอินเทอร์เน็ตโดยใช้โปรโตคอลการทำงานที่กำหนดไว้ซึ่งนักขุดและไคลเอนต์กระเป๋าสตางค์ต้องปฏิบัติตาม ไคลเอนต์กระเป๋าสตางค์—ซอฟต์แวร์ที่เป็นแอปบนสมาร์ทโฟนหรือโปรแกรมบนคอมพิวเตอร์ส่วนบุคคล—คือสิ่งที่ใช้เมื่อมีคนกำลังส่งธุรกรรมการชำระเงิน ซึ่งนักขุดจะตรวจสอบความถูกต้องก่อนที่จะรวมเข้าไปในบล็อกเชน หากนักขุดคนใดคนหนึ่งเบี่ยงเบนจากโปรโตคอล การดำเนินการของเขาจะถูกปฏิเสธโดยนักขุดที่เหลือและจะไม่ได้รับอนุญาตให้มีส่วนร่วมในการดำเนินงานของเครือข่าย
การโต้แย้งที่พบบ่อยอย่างหนึ่งเกี่ยวกับบิทคอยน์คือเรื่องจำนวนบิทคอยน์สูงสุดที่จะมีการสร้างขึ้นมา ซึ่ง Satoshi Nakamoto ได้กำหนดไว้ที่ 21 ล้านเหรียญ เมื่อถึงจำนวนนี้แล้ว อะไรจะมาขัดขวางไม่ให้ใครสามารถเพิ่มขีดจำกัดนี้ได้? จริงๆ แล้วไม่มีอะไร แต่เขาจะต้องได้รับความร่วมมือจากนักขุดส่วนใหญ่เพื่อให้การเปลี่ยนแปลงนี้เป็นที่ยอมรับ แม้ว่านักขุดส่วนใหญ่จะเห็นพ้องต้องกันที่จะยกเลิกข้อจำกัดนี้ หากทุกคนไม่เห็นด้วย บล็อกเชนก็จะแตกออกเป็นสองส่วน ผู้ที่เห็นด้วยกับการยกเลิกข้อจำกัดจะใช้บล็อกเชนเวอร์ชันหนึ่ง ในขณะที่ผู้ที่ไม่เห็นด้วยจะใช้เวอร์ชันที่แตกต่างกัน โดยผลก็คือเราจะมีสองสกุลเงินเสมือนแทนที่จะเป็นหนึ่ง นั่นคือ "บิทคอยน์ดั้งเดิม" และ "บิทคอยน์ที่ผ่อนคลายเชิงปริมาณ" ในระยะยาว สกุลใดจะรักษามูลค่าได้นานกว่าและดีกว่า และจะกลายเป็นเวอร์ชันที่ได้รับความนิยม ในขณะที่อีกสกุลจะมีมูลค่าลดลง คุณคิดว่าสกุลใดจะรักษามูลค่าได้นานกว่าและยังคงได้รับความสนใจจากผู้ใช้บิทคอยน์? ส่วนตัวแล้ว ผมมีความคิดที่ชัดเจนมากว่าจะเป็นสกุลใด
ชุมชนนักพัฒนาบิทคอยน์มีแนวคิดที่อนุรักษ์นิยมมากในเรื่องการเปลี่ยนแปลง และอย่างน้อยจนถึงตอนนี้ วิธีการที่นิยมใช้ในการสร้างการเปลี่ยนแปลงครั้งใหญ่คือการสร้างสกุลเงินเสมือนใหม่ๆ บางสกุลไม่มีขีดจำกัดในเรื่องจำนวนเหรียญ
ลักษณะสุดท้ายที่เป็นรากฐานของบิทคอยน์คือ ซอฟต์แวร์ไม่เพียงแต่เป็นโอเพนซอร์ส แต่การทำบัญชีก็เป็นแบบเปิดเผยด้วย บางคนเรียกบล็อกเชนว่า "การทำบัญชีแบบทริปเปิลเอนทรี" เพราะมันปฏิวัติวงการบัญชี ใครก็ตามสามารถตรวจสอบบล็อกเชนและยืนยันว่าการบัญชีเป็นไปตามข้อกำหนดและข้อมูลจำเพาะของโปรโตคอลบิทคอยน์ที่กำหนดไว้ในปัจจุบัน การแบ่งปันไฟล์บล็อกเชนแบบกระจายหมายความว่าทุกคนที่ใช้ซอฟต์แวร์บิทคอยน์จะเชื่อมต่อกับเครือข่ายบิทคอยน์และสามารถเข้าถึงบล็อกเชนได้
เพื่อให้เข้าใจความชาญฉลาดของแนวคิดพื้นฐานของบิทคอยน์ได้ดียิ่งขึ้น ผมขอแนะนำอย่างยิ่งให้อ่านเอกสารไวท์เปเปอร์ของ Satoshi Nakamoto ข้อมูลที่ผมได้ให้ไว้ที่นี่ควรทำให้สามารถเข้าถึงเอกสารนั้นได้ง่ายขึ้น โดยมีการผนวกสำเนาของเอกสารนี้ไว้ท้ายหนังสือเล่มนี้ด้วย
http://bitcoin.org/bitcoin.pdf
เราหวังว่าบทนี้จะช่วยให้คุณเข้าใจแนวคิดหลักๆ ได้ ตอนนี้คุณควรจะสามารถอ่านเอกสารบิทคอยน์และส่วนที่เหลือของหนังสือเล่มนี้ได้ง่ายขึ้นมากแล้ว
ผลกระทบของบิทคอยน์
ผลกระทบของบิทคอยน์ในฐานะระบบการเงินนั้นมีมหาศาล ข้อดีอย่างหนึ่งคือความสามารถที่มันมอบให้ผู้คนในการ "โอนเงิน" ข้ามทวีปได้ง่ายเพียงแค่ส่งอีเมล ซึ่งเป็นประโยชน์อย่างยิ่งสำหรับแรงงานย้ายถิ่นที่ต้องการส่งเงินให้ญาติในประเทศบ้านเกิด ในทางตรงกันข้าม บริษัทที่โอนเงินข้ามประเทศจะเรียกเก็บค่าธรรมเนียมสูงในการทำเช่นนั้น มีค่าธรรมเนียมที่เกี่ยวข้องกับการแปลงสกุลเงินประจำชาติเป็น BTC และกลับมาอีกครั้ง แต่ค่าธรรมเนียมการแปลงเหล่านี้มีขนาดเล็กเมื่อเทียบกับค่าใช้จ่ายในการโอนเงิน
อีกประโยชน์หนึ่งที่กล่าวถึงก่อนหน้านี้เกี่ยวกับการซื้อของออนไลน์และการบริจาคออนไลน์ ผมมั่นใจว่าระบบการจ่ายเงินด้วยบัตรเครดิตในปัจจุบันจะเปลี่ยนแปลงไปอย่างสิ้นเชิงในอนาคต การจ่ายเงินด้วยบัตรเครดิตต้องให้ข้อมูลอย่างละเอียดเกี่ยวกับผู้จ่าย รวมถึงที่อยู่ในการเรียกเก็บเงินและรหัส 3 หลักที่ด้านหลังบัตรเครดิต โดยแก่นแท้แล้ว นี่เทียบเท่ากับการให้คีย์การเข้ารหัสลับส่วนตัวของคุณแก่ร้านค้าในระบบบิทคอยน์ จำนวนการฉ้อโกงที่สูงอันเป็นผลมาจากจุดอ่อนด้านความปลอดภัยนี้ได้แสดงออกมาในรูปแบบของค่าธรรมเนียมที่สูงและการเรียกเก็บเงินย้อนหลังซึ่งพ่อค้าต้องรับมือ บริษัทบัตรเครดิตใช้เงินจำนวนมหาศาลในแต่ละปีในการจัดการกับการเรียกเก็บเงินที่ฉ้อโกง ค่าใช้จ่ายเหล่านี้ถูกโอนไปยังร้านค้า ซึ่งร้านค้าก็โอนต่อไปให้ผู้บริโภคผ่านการตั้งราคาสินค้าและบริการที่สูงขึ้น
ผลกระทบสำคัญอีกอย่างหนึ่งของบิทคอยน์คือในด้านการเงิน โดยเฉพาะอย่างยิ่งในความสามารถของระบบที่จะเป็นเงินและไม่ใช่แค่สกุลเงิน สกุลเงินมีคุณสมบัติต่อไปนี้1:
• เป็นสื่อกลางในการแลกเปลี่ยน (ใช้เป็นตัวกลางในการค้า) • เป็นหน่วยบัญชี (นับได้ วัดปริมาณได้) • ทนทาน (ใช้ได้นาน) • แบ่งแยกได้ (เพื่อให้มีหน่วยที่เล็กกว่า) • พกพาได้ (เพื่อให้ขนส่งได้ง่าย) • เป็นสินค้าทดแทนได้ (หน่วยหนึ่งๆ ของมูลค่าที่ระบุสามารถแทนที่หน่วยอื่นที่เหมือนกันได้)
เงินมีคุณสมบัติที่ระบุไว้ข้างต้นทั้งหมด และยังมีอีกหนึ่งอย่าง:
• ความสามารถในการรักษามูลค่าในระยะยาว
ต่างจากเงิน สกุลเงินอาจเผชิญภาวะเงินเฟ้อได้ ในช่วงต้นทศวรรษ 1900 เงินเฟ้อถูกนิยามเพียงว่าเป็นการเพิ่มปริมาณสิ่งใดสิ่งหนึ่ง เช่นในกรณีของสกุลเงิน โดยการพิมพ์เพิ่มขึ้น พจนานุกรมปัจจุบันได้นิยามว่าเป็นการเพิ่มขึ้นของราคาโดยทั่วไป อย่างไรก็ตาม ราคาที่เพิ่มขึ้นนั้นเป็นอาการของการเสื่อมค่าของสกุลเงิน ซึ่งเกิดขึ้นเมื่อสกุลเงินนั้นมีอยู่มากกว่าแต่ก่อน เป็นเรื่องที่น่าสนใจแต่ไม่น่าแปลกใจที่การเปลี่ยนแปลงในคำนิยามนี้สอดคล้องกับช่วงเวลาที่สกุลเงินกระดาษค่อยๆ แยกตัวออกจากทองคำและเงิน ซึ่งเป็นพัฒนาการที่นำไปสู่ราคาที่สูงขึ้น บรรพบุรุษของเราเห็น ตัวอย่างเช่น ราคาอาหารยังคงไม่เปลี่ยนแปลงตลอดชีวิตของพวกเขา อย่างไรก็ตาม ประชากรในปัจจุบันถูกปลูกฝังให้มองว่าราคาสินค้าที่เพิ่มขึ้นเป็นข้อเท็จจริงที่ไม่เปลี่ยนแปลงของชีวิต เหมือนแรงโน้มถ่วง เหมือนกับว่าในสถานที่ที่ฝนตกตลอดเวลา ไม่มีใครเชื่อมโยงระหว่างเมฆกับฝน แต่ใครจะตำหนิพวกเขาได้ในเมื่อพวกเขาไม่เคยเห็นท้องฟ้าสีฟ้าเลย? ในทำนองเดียวกัน ผู้คนส่วนใหญ่ในปัจจุบันไม่รับรู้ว่าราคาอาหารที่สูงขึ้นมีสาเหตุมาจากเงินเฟ้อของสกุลเงิน ซึ่งบางครั้งราคาที่สูงขึ้นอาจใช้เวลาหลายปีกว่าจะแสดงออกมา นี่คือกรณีของเงินเฟ้อของสกุลเงินในทศวรรษ 1960 ที่แสดงออกมาเองในทศวรรษถัดไป คือ ในทศวรรษ 1970
เพื่อรักษาอำนาจซื้อในระยะยาว (เช่น เพื่อไม่ให้เกิดเงินเฟ้อ) ปริมาณเงินต้องมีจำกัด ทองคำและเงินเป็นเงินที่ได้รับการเลือกใช้มานับพันปี ปริมาณของมันบนโลกใบนี้มีจำกัด และใครก็ตามที่ตั้งใจจะได้มันมามากขึ้นจะต้องแลกด้วยพลังงานและเวลาผ่านการขุด คุณอาจพูดได้ว่าความพยายามที่ใช้ไปในการขุดโลหะมีค่านั้นเทียบได้กับการพิสูจน์งานในระบบบิทคอยน์ เปรียบเทียบงานจริงนี้กับการพิมพ์ธนบัตรดอลลาร์เพิ่มขึ้นง่ายๆ สกุลเงินกระดาษถูกนำมาใช้ในตอนแรกเพื่อทำหน้าที่เป็นเพียงแค่ตัวแทนที่สะดวก (อนุพันธ์) ของโลหะมีค่า เพื่ออำนวยความสะดวกในการทำธุรกรรม สกุลเงินกระดาษซึ่งทำซ้ำได้ง่ายจึงมักถูกเงินเฟ้อ เนื่องจากช่างทองและต่อมาคือนายธนาคารใช้การธนาคารแบบสำรองเงินบางส่วนเพื่อปล่อยกู้ (เช่น พิมพ์ธนบัตรกระดาษ) มากกว่าที่พวกเขามีทองคำในที่เก็บจริง สิ่งนี้นำไปสู่วิกฤต "วิ่งธนาคาร" ที่เกิดขึ้นบ่อยครั้งในหน้าประวัติศาสตร์
ก่อนการเกิดขึ้นของคอมพิวเตอร์และเครือข่าย ธุรกรรมต่างๆ ถูกจำกัดอยู่ที่โลหะมีค่าและสกุลเงินกระดาษเท่านั้น หลังจากนั้น การสื่อสารอิเล็กทรอนิกส์ได้แนะนำวิธีใหม่ในการทำธุรกรรมซึ่งทองคำและเงินไม่สามารถเป็นส่วนหนึ่งได้โดยตรง จนถึงตอนนี้ มีเพียงสกุลเงินที่ถูกควบคุมอย่างรวมศูนย์และส่งผ่านอิเล็กทรอนิกส์เท่านั้นที่มีอยู่ ซึ่งช่วยให้ผู้ควบคุมสามารถตัดสินใจได้อย่างอิสระในการกำหนดขนาดของอุปทานสกุลเงินพื้นฐาน ประธานาธิบดีนิกสันได้แสดงให้เห็นอย่างชัดเจนเมื่อเขายกเลิกการแปลงค่าดอลลาร์เป็นทองคำในตลาดแลกเปลี่ยนเงินตราต่างประเทศ สงครามเวียดนามและ "สังคมที่ยิ่งใหญ่" ของลินดอน จอห์นสัน ได้รับการสนับสนุนเงินทุนโดยการทำให้ดอลลาร์สหรัฐอ่อนค่าลงผ่านการพิมพ์เงินอิเล็กทรอนิกส์ ต้องใช้เวลาสักพักกว่าจะแสดงออกมาผ่านราคาสินค้าโภคภัณฑ์ที่สูงขึ้น แต่เมื่อเกิดขึ้นแล้ว ราคาทองคำเป็นดอลลาร์ก็สูงกว่าราคาคงที่ 35 ดอลลาร์ต่อทองคำ 1 ออนซ์ที่เคยมีก่อนที่ดอลลาร์จะถูกยกเลิกจากมาตรฐานทอง หลังจากนั้นมันก็กลายเป็นสกุลเงินลอยตัวที่มีภาวะเงินเฟ้อเกิดขึ้นอย่างต่อเนื่อง เช่นเดียวกับสกุลเงินของชาติอื่นๆ ที่มีอยู่ในปัจจุบัน
ดังที่เราได้อภิปรายไว้ในบทที่ 7 สกุลเงินกระดาษ (เงินตรา) ช่วยให้รัฐบาลสามารถใช้จ่ายขาดดุลโดยการขโมยมูลค่าของสกุลเงินที่หมุนเวียนอยู่ คนจนและชนชั้นกลางระดับล่างได้รับผลกระทบมากที่สุดจากภาวะเงินเฟ้อ ในขณะที่คนรวยใช้หนี้และอนุพันธ์ทางการเงินต่างๆ ในการได้มาซึ่งบริษัทและอสังหาริมทรัพย์เชิงพาณิชย์ที่ก่อให้เกิดรายได้ พวกเขารู้ว่าหนี้จะลดค่าไปพร้อมกับสกุลเงิน ทำให้ได้กำไรเพิ่มเติมที่ได้มาอย่างผิดธรรมชาติ วิธีแรกในการจัดการกับ "สงครามต่อต้านความยากจน" คือการกำจัดเงินเฟ้อของสกุลเงินและกลับไปใช้รูปแบบของเงินที่มูลค่ายังคงอยู่ในระยะยาว แต่อย่าคาดหวังให้รัฐบาลเสนอหรือแม้แต่รับฟังข้อเสนอที่เกี่ยวข้องกับแนวทางนี้
ปัจจุบัน บทความในนิตยสารและหนังสือพิมพ์หลายฉบับเกี่ยวกับบิทคอยน์ได้นำเสนอธรรมชาติของมันที่ "ต่อต้านเงินเฟ้อ" ในฐานะข้อเสียหลัก โดยเงินฝืด พวกเขาหมายความว่าราคาที่วัดในหน่วย BTC จะลดลง ในความเป็นจริง นี่คือประโยชน์หลักของบิทคอยน์ พวกเขารายงานว่าผู้คนจะ "กักตุน" บิทคอยน์แทนที่จะใช้จ่ายในระบบเศรษฐกิจ ก่อนอื่น ลองจินตนาการว่าพรุ่งนี้บิทคอยน์จะกลายเป็นสกุลเงินที่ได้รับความนิยมในประเทศของคุณ ในฐานะมนุษย์ คุณก็ยังต้องกินและมีที่พักอาศัย ดังนั้นคุณจะต้องจ่ายค่าใช้จ่ายในสองสิ่งนี้ สิ่งที่ความคิดเห็นในบทความเหล่านี้แสดงให้เห็นคือความเข้าใจผิดเกี่ยวกับสิ่งที่เงินคืออะไร โดยการออมแทนการใช้จ่าย—"กักตุน" เป็นเพียงคำที่ใช้แทนการออม—ผู้คนกำลังเลื่อนการบริโภคออกไปในอนาคต เราเห็นพฤติกรรมประเภทนี้ปรากฏขึ้นเมื่อเร็วๆ นี้โดย "เศรษฐีบิทคอยน์" บางคน ซึ่งเมื่อถึงจุดหนึ่งพวกเขาก็รู้สึกสบายใจพอที่จะใช้บิทคอยน์ส่วนหนึ่งซื้อสินค้าฟุ่มเฟือย ในระบบเศรษฐกิจที่อิงกับเงิน—สกุลเงินที่รักษามูลค่าในระยะยาว—ผู้ออมไม่ได้แข่งขันเพื่อแย่งชิงทรัพยากรกับผู้ผลิต ผู้ก่อสร้าง โรงงาน และผู้ที่สกัดสินค้าโภคภัณฑ์ (เช่น สินค้าที่ขายได้) ด้วยการชะลอการใช้จ่าย ทรัพยากรในที่นี้หมายถึงพลังงานทุกรูปแบบ สินค้าโภคภัณฑ์ เวลา และแรงงาน โดยเฉพาะแรงงานเฉพาะทาง จินตนาการถึงกรณีของคนที่ตัดสินใจออมโดยอยู่บ้านแทนที่จะลากรถพ่วงไปเที่ยวทั่วประเทศ โดยการไม่เดินทาง เขาจึงปล่อยให้น้ำมันที่เขาจะใช้ในการเดินทางถูกใช้โดย เช่น ผู้ผลิตในการขนส่งวัสดุเพื่อสร้างโรงงานใหม่ การพิมพ์ดอลลาร์ไม่ได้สร้างถังน้ำมันเพิ่มขึ้น กิกะวัตต์ไฟฟ้า หรือชั่วโมงในหนึ่งวันมากขึ้น ผมได้อธิบายแนวคิดนี้ด้วยตัวอย่างที่ค่อนข้างง่าย แต่ผมหวังว่าคุณจะเห็นว่าสกุลเงินอย่างบิทคอยน์ ที่มีความสามารถในการรักษามูลค่าที่ได้มาจากปริมาณจำกัดของมัน มีผลกระทบอย่างมาก
ในบทนี้ เราได้กล่าวถึงเทคโนโลยีที่อยู่เบื้องหลังบิทคอยน์ แนวคิดซอฟต์แวร์ที่เป็นพื้นฐานของมัน และเราได้สัมผัสกับมุมมองทางเศรษฐศาสตร์ทางเลือกซึ่ง Satoshi Nakamoto เองก็น่าจะยึดถือด้วย ตอนนี้ที่คุณมีความเข้าใจที่ดีเกี่ยวกับบิทคอยน์ว่าคืออะไรและมันทำงานอย่างไร ให้เปิดหน้าถัดไปและมาพบกับผู้สร้างบิทคอยน์ Satoshi Nakamoto!
http://en.wikipedia.org/wiki/Cryptographic_hash_function
Last updated