SHA256 และการขุดปกป้องเครือข่าย Bitcoin PlatoBlockchain Data Intelligence อย่างไร ค้นหาแนวตั้ง AI.

SHA256 และการขุดปกป้องเครือข่าย Bitcoin อย่างไร

Bitcoin ได้รับการปกป้องด้วยพลังงานอย่างไร? และน็อคคืออะไร? คำถามเหล่านี้และอื่น ๆ มีคำตอบภายใน!

วิธีการทำงานของการขุดนั้นน่าทึ่งมาก เมื่อฉันอธิบายให้คนอื่นฟัง ฉันสนุกกับการเห็นใบหน้าของพวกเขาในขณะที่จิตใจของพวกเขาปลิวว่อน ฉันจะอธิบายที่นี่ แต่รู้ไว้ ฉันกำลังนึกภาพใบหน้าของคุณทั้งหมดเป็นระเบิด!

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

คุณไม่จำเป็นต้องเข้าใจว่า Bitcoin ทำงานอย่างไรเพื่อให้ได้ประโยชน์จากมัน เช่นเดียวกับที่คุณไม่จำเป็นต้องเข้าใจว่า TCP/IP ทำงานอย่างไรเพื่อใช้อินเทอร์เน็ต แต่ทำต่อไป เพราะมันค่อนข้างน่าสนใจและฉันจะทำให้เข้าใจง่าย ฉันสัญญา

ฟังก์ชันแฮช

เริ่มต้นด้วยแผนผังซึ่งฉันจะอธิบายด้านล่าง...

SHA256 และการขุดปกป้องเครือข่าย Bitcoin PlatoBlockchain Data Intelligence อย่างไร ค้นหาแนวตั้ง AI.
(กราฟฟิค/@jirols_btc)

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

Secure Hash Algorithm (SHA) แรกเริ่มเดิม พัฒนาโดย NSA และตอนนี้ก็มีเวอร์ชันต่างๆ มากมาย (Bitcoin ใช้ SHA256) เป็นชุดคำสั่งในการทำให้ข้อมูลสับสนในลักษณะที่ซับซ้อนมากแต่มีความเฉพาะเจาะจง คำแนะนำไม่ใช่ความลับและแม้แต่จะทำด้วยมือ แต่มันก็น่าเบื่อมาก

สำหรับ SHA256 เอาต์พุตจะเป็นตัวเลข 256 บิต (ไม่ใช่เรื่องบังเอิญ)

ตัวเลข 256 บิต หมายถึงเลขฐานสองที่มีความยาว 256 หลัก ไบนารี หมายถึง ค่าถูกแสดงด้วยสัญลักษณ์สองสัญลักษณ์ ไม่ว่าจะเป็น 0 หรือ 1 เลขฐานสองสามารถแปลงเป็นรูปแบบอื่นได้ เช่น ตัวเลขทศนิยม ซึ่งเป็นสิ่งที่เราคุ้นเคย

แม้ว่าฟังก์ชันจะส่งกลับเลขฐานสอง 256 หลัก ค่ามักจะแสดงในรูปแบบเลขฐานสิบหก ซึ่งมีความยาว 64 หลัก

เลขฐานสิบหกหมายความว่าแทนที่จะเป็น 10 สัญลักษณ์ที่เป็นไปได้เหมือนที่เราคุ้นเคยกับทศนิยม (0 ถึง 9) เรามีสัญลักษณ์ 16 ตัว (สิบที่เราคุ้นเคย 0-9 บวกตัวอักษร a, b, c, d, e, และ f ซึ่งมีค่า 11 ถึง 15) ตัวอย่างเช่น เพื่อแสดงค่าของทศนิยม 15 ในเลขฐานสิบหก เราแค่เขียน "f" และมันก็เป็นค่าเดียวกัน มีข้อมูลออนไลน์มากมายพร้อมการค้นหาโดย Google อย่างรวดเร็ว หากคุณต้องการรายละเอียดเพิ่มเติม

เพื่อสาธิตการใช้งานจริงของ SHA256 ฉันสามารถใช้หมายเลข 1 และเรียกใช้ผ่าน an เครื่องคิดเลขแฮชออนไลน์และได้รับผลลัพธ์นี้ (เป็นเลขฐานสิบหก):

SHA256 และการขุดปกป้องเครือข่าย Bitcoin PlatoBlockchain Data Intelligence อย่างไร ค้นหาแนวตั้ง AI.

กล่องบนคืออินพุต กล่องล่างคือผลลัพธ์

โปรดทราบว่าคอมพิวเตอร์ทุกเครื่องในโลกจะผลิตเอาต์พุตเหมือนกัน หากอินพุตเหมือนกันและใช้ฟังก์ชัน SHA256

เอาต์พุตเลขฐานสิบหก หากแปลงเป็นทศนิยม คือ (โปรดสังเกตว่าต้องใช้ตัวเลขมากกว่าในการเขียน):

48,635,463,943,209,834,798,109,814,161,294,753,926,839,975,257,569,795,305,637,098,542,720,658,922,315

และแปลงเป็นเลขฐานสองคือ:

11010111000011010110010011100111111111100110100111111001110000110011101011010111000000001001110111111110101101000111111010101110100011110101101101001001110101010100010001011110001110101001001110000000001111001010010110111011011011110000111010110110100101111010111001101011100110101110011010111001101011100110101110011010111001101011100111

เพียงออกจากความสนใจนี่คือค่าเดียวกันใน ฐาน 64.

1w1k5/5p+cM61wCd/rR+ro9bSdVEXjqTgDylu28OtpY=

โปรดทราบว่าค่า SHA256 ที่น้อยที่สุดที่เป็นไปได้สามารถส่งคืนได้คือศูนย์ แต่ LENGTH ยังคงเป็น 256 บิต นี่คือการแสดงค่าศูนย์:

0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

และค่าที่เป็นไปได้มากที่สุดคือ:

1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

ในรูปทศนิยม นั่นคือ:

115,792,089,237,316,195,423,570,985,008,687,907,853,269,984,665,640,564,039,457,584,007,913,129,639,935

ในเลขฐานสิบหก มันคือ:

ฟฟฟฟฟฟฟฟฟฟฟฟฟฟฟฟฟฟฟฟฟฟฟฟฟฟฟฟฟฟฟฟฟ

โปรดทราบว่ามี 64 F อย่างแน่นอน

เลขศูนย์ในเลขฐานสิบหกสามารถเขียนเป็นศูนย์เดียวได้ แต่สำหรับเอาต์พุตแฮช จะมีค่า 64 ค่าตามข้อกำหนดของเอาต์พุตที่มีขนาดคงที่:

0000000000000000000000000000000000000000000000000000000000000000

ต่อไปนี้คือข้อมูลสรุปเกี่ยวกับฟังก์ชันแฮชที่มีความสำคัญอย่างยิ่งยวด:

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

เมื่อคุณเข้าใจแนวคิดพื้นฐานของแฮชแล้ว คุณสามารถเข้าใจคำอธิบายว่าการขุด Bitcoin ทำงานอย่างไร

แต่ก่อนที่คุณจะไปต่อ ฉันแนะนำให้คุณไปที่เครื่องคำนวณแฮชออนไลน์แล้วลองเล่นดูซักหน่อยแล้วทดสอบด้วยตัวเองว่าเราพูดอะไรเกี่ยวกับฟังก์ชันแฮช ฉันชอบอันนี้

การทำเหมืองแร่

ฉันจะเริ่มต้นด้วยการสาธิตแนวคิดในการทำงาน ซึ่งเป็นที่มาของ “การพิสูจน์การทำงาน” ใน Bitcoin

ไปที่เครื่องคำนวณแฮชออนไลน์และพิมพ์ว่า "ฉันกำลังสร้าง 50 bitcoins และจ่ายเงินจำนวนนี้เอง"

พิมพ์ให้ถูกต้องตรงตามตัวพิมพ์เล็กและตัวพิมพ์ใหญ่รวมถึงจุดเต็ม คุณควรได้รับผลลัพธ์นี้:

SHA256 และการขุดปกป้องเครือข่าย Bitcoin PlatoBlockchain Data Intelligence อย่างไร ค้นหาแนวตั้ง AI.

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

เราต้องเพิ่มข้อมูลโดยใช้การลองผิดลองถูก แต่เราไม่ต้องการเปลี่ยนความหมายของข้อความที่ป้อน เรามาสร้างฟิลด์ (ส่วนที่จัดสรร) ที่เรียกว่า "nonce" ซึ่งจะเก็บค่าไร้สาระ

คำว่า "น็องซ์" น่าจะมาจาก "จำนวนที่ใช้เพียงครั้งเดียว" แต่ฉันไม่เห็นมัน

สังเกตด้านล่างว่าการเพิ่ม “Nonce:” เป็นส่วนหัวของฟิลด์พิเศษจะเปลี่ยนผลลัพธ์ของแฮชได้อย่างไร

SHA256 และการขุดปกป้องเครือข่าย Bitcoin PlatoBlockchain Data Intelligence อย่างไร ค้นหาแนวตั้ง AI.

ผลลัพธ์ยังไม่ขึ้นต้นด้วย "0" เรามาเติมเรื่องไร้สาระกันเถอะ (ฉันเพิ่ม "x" ที่ไม่มีความหมาย):

SHA256 และการขุดปกป้องเครือข่าย Bitcoin PlatoBlockchain Data Intelligence อย่างไร ค้นหาแนวตั้ง AI.

มันยังไม่เริ่มต้นด้วยศูนย์ ฉันลองใช้อักขระเพิ่มเติมบางตัวจนกว่าแฮชจะเริ่มต้นด้วยศูนย์:

SHA256 และการขุดปกป้องเครือข่าย Bitcoin PlatoBlockchain Data Intelligence อย่างไร ค้นหาแนวตั้ง AI.

เราจะไปที่นั่น. ตามกฎเกณฑ์ที่ฉันตั้งไว้สำหรับ Bitcoin เวอร์ชันปลอมนี้ ข้อความในหน้าต่างอินพุตเป็นบล็อกที่ถูกต้องโดยมีธุรกรรมเดียวที่จ่ายให้ฉัน 50 บิตคอยน์

โปรดทราบว่าบล็อค Bitcoin เป็นหน้าของบัญชีแยกประเภท แต่ละบล็อคมีการกำหนดหมายเลขและสร้าง bitcoin ใหม่ พร้อมกับแสดงรายการธุรกรรมระหว่างผู้ใช้ บันทึกนี้เป็นที่ที่ bitcoin อาศัยอยู่

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

SHA256 และการขุดปกป้องเครือข่าย Bitcoin PlatoBlockchain Data Intelligence อย่างไร ค้นหาแนวตั้ง AI.

แฮชเริ่มต้นด้วย "f" ไม่ใช่ "0" ดังนั้นฉันจะต้องลองค่าบางอย่างในฟิลด์ nonce:

SHA256 และการขุดปกป้องเครือข่าย Bitcoin PlatoBlockchain Data Intelligence อย่างไร ค้นหาแนวตั้ง AI.

คราวนี้ฉันโชคดีกว่าและพบ nonce ที่เหมาะสมหลังจากลองเพียงสี่ครั้ง จำได้ว่าสำหรับบล็อกแรกต้องใช้ 22 ครั้ง มีการสุ่มบางอย่างที่นี่ แต่โดยทั่วไป ไม่ยากเกินไปที่จะหาแฮชที่ถูกต้อง หากทั้งหมดที่เรากำลังพยายามให้ได้คือศูนย์หนึ่งตัว มีค่าที่เป็นไปได้ 16 ค่าสำหรับหลักแฮชแรก ดังนั้นฉันมีโอกาส 1 ใน 16 ที่การปรับเปลี่ยนใดๆ ที่ฉันทำกับฟิลด์อินพุตจะส่งผลให้แฮชหลักแรกเป็น "0"

โปรดทราบว่าฟิลด์ของ Bitcoin เป็นแบบนี้ แต่มีรายละเอียดเพิ่มเติมที่ฉันไม่ได้เพิ่ม นี่เป็นเพียงการแสดงจุด ไม่จำเป็นต้องให้รายละเอียดว่าบล็อก Bitcoin เป็นอย่างไร

ฉันจะเพิ่มฟิลด์เวลาให้กับบล็อกถัดไปเนื่องจากฉันต้องการให้อธิบาย "การปรับความยาก" ต่อไป:

SHA256 และการขุดปกป้องเครือข่าย Bitcoin PlatoBlockchain Data Intelligence อย่างไร ค้นหาแนวตั้ง AI.

ด้านบนเป็นบล็อกที่ 1 รวมแฮชของบล็อกก่อนหน้าและตอนนี้ฉันก็เริ่มรวมเวลาด้วย Nonce ที่ฉันพบได้สำเร็จทำให้แฮชเริ่มต้นด้วยศูนย์ (ฉันแค่พิมพ์ “XNUMX” ไปเรื่อยๆ จนกว่าจะถึงเป้าหมายแฮช)

ตอนนี้พอฉันสามารถเริ่มอธิบายแนวคิดที่น่าสนใจสองสามข้อเกี่ยวกับบล็อคเชน Bitcoin และการขุดได้

ชนะบล็อก

กระบวนการทำเหมืองมีการแข่งขันสูง ใครก็ตามที่สร้างบล็อกที่ถูกต้องก่อนจะได้รับรางวัลชุดบล็อก นักขุดที่สร้างหมายเลขบล็อกเดียวกันหลังจากนั้นเล็กน้อยจะไม่ได้รับอะไรเลย — บล็อกนั้นถูกปฏิเสธ การอธิบายว่าเหตุใดจึงเป็นเหตุให้เกิดการเบี่ยงเบนมากเกินไปในตอนนี้ ฉันจะอธิบายในภาคผนวก

หลังจากพบบล็อกที่สามและเผยแพร่ไปยังทุกคน (โหนด Bitcoin ทั้งหมด) นักขุดทั้งหมดหยุดทำงานกับสิ่งที่จะเป็นเวอร์ชันของบล็อกที่สาม พวกเขาเริ่มสร้างบนบล็อกที่สามที่ประสบความสำเร็จ (โดยการดึงแฮชของบล็อกไปข้างหน้าในบล็อกใหม่) และเริ่มทำงานเพื่อค้นหา nonce ที่เหมาะสมสำหรับบล็อกที่สี่ ผู้ชนะจะเผยแพร่ผลงาน จากนั้นทุกคนก็เริ่มทำงานในบล็อกที่ XNUMX เป็นต้น

ในแต่ละบล็อก Bitcoin ใหม่จะถูกสร้างขึ้นและรวมกันเป็นอุปทานทั้งหมด หากมีนักขุดจำนวนมาก ตามสถิติแล้ว เราควรคาดหวังว่าบล็อกจะถูกสร้างขึ้นเร็วขึ้น ดังนั้น Bitcoin จะถูกสร้างขึ้นเร็วขึ้น ปัญหาใช่ไหม

Satoshi Nakamoto ได้คิดถึงปัญหานี้และแนะนำการวนรอบความคิดเห็นเชิงลบเพื่อให้การผลิตบล็อกอยู่ที่ช่วงเวลา 10 นาทีโดยเฉลี่ย ยังไง? ดูว่าคุณสามารถคิดหาวิธีได้หรือไม่ หยุดชั่วครู่และไตร่ตรอง — ดูว่าคุณสามารถหาวิธีแก้ปัญหาอัจฉริยะแบบเดียวกันได้หรือไม่และอ่านต่อเมื่อคุณยอมแพ้

NODES: ฉันพูดถึงบล็อกที่ "ถูกต้อง" แล้วไง? ใครเป็นคนตรวจสอบ? โหนด Bitcoin คือ โหนด Bitcoin จะเก็บสำเนาของบล็อคเชนไว้และปฏิบัติตามชุดของกฎเพื่อตรวจสอบว่าบล็อกใหม่อยู่ภายในกฎและปฏิเสธบล็อกที่ไม่ได้อยู่ในกฎ กฎอยู่ที่ไหน? ในรหัส. คอมพิวเตอร์ที่ดาวน์โหลดรหัส Bitcoin เป็นโหนด

การปรับความยาก

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

จริงๆ แล้ว ไม่ใช่จำนวนศูนย์ที่ปรับ แต่ค่าเป้าหมายที่แฮชต้องต่ำกว่านั้น แต่การคิดถึงเลขศูนย์นำหน้านั้นอธิบายได้ง่ายกว่า

หากมีการสร้างบล็อกเร็วเกินไป เป้าหมายแฮชจะถูกปรับตามกฎที่กำหนดไว้ล่วงหน้าซึ่งโหนดทั้งหมดปฏิบัติตามเหมือนกัน (ซึ่งอยู่ในโค้ดของพวกมัน)

ยกตัวอย่างง่ายๆ สมมติว่ามีคนอื่นแข่งขันกับฉัน บล็อกเกิดขึ้นเร็วเกินไป และตอนนี้บล็อกที่สี่ต้องการศูนย์สองตัวแทนที่จะเป็นหนึ่ง ตามการคำนวณในจินตภาพ

ฉันจะใช้เวลานานขึ้นอีกหน่อยกว่าจะได้เลขศูนย์สองตัว แต่เราคิดว่ามีคนอีกมากที่แข่งขันกับฉัน ดังนั้นเวลาทั้งหมดที่ใช้ในการค้นหาบล็อกจะถูกเก็บไว้ที่เป้าหมาย

นี่คือบล็อกถัดไป:

SHA256 และการขุดปกป้องเครือข่าย Bitcoin PlatoBlockchain Data Intelligence อย่างไร ค้นหาแนวตั้ง AI.

สังเกตเวลา. ผ่านไปกว่า 10 นาทีตั้งแต่บล็อกที่แล้ว (ฉันเพิ่งมีเวลาสาธิต) เป้าหมาย 10 นาทีมีความน่าจะเป็น ไม่มีใครรู้แน่ชัดว่าเมื่อไรจะพบบล็อกถัดไป

ฉันยุ่งกับแป้นพิมพ์เป็นเวลาหนึ่งนาทีจนกระทั่งเลขศูนย์สองตัวปรากฏขึ้น สิ่งนี้ยากกว่าการหาศูนย์ตัวเดียวแบบทวีคูณ โอกาสในการหาศูนย์สองตัวติดต่อกันคือ 1 ใน 162หรือโอกาส 1 ใน 256

หากมีผู้คนเข้าร่วมในการขุดและแข่งขันกันเพื่อ bitcoin ใหม่มากขึ้น ในที่สุดแล้ว ก็จะต้องใช้ศูนย์สามตัว

ฉันเพิ่งค้นหาบล็อก Bitcoin จริงล่าสุด ซึ่งมีแฮชของบล็อกก่อนหน้า แฮชคือ:

000000000000000000084d31772619ee08e21b232f755a506bc5d09f3f1a43a1

นั่นคือศูนย์ 19 ตัว! มี 1 ใน 1619 โอกาสในการค้นหาบล็อกดังกล่าวในแต่ละครั้ง นักขุด Bitcoin ทำหลาย ๆ ครั้งต่อวินาที รวมกันทั่วโลก

จำนวนครั้งต่อวินาทีเรียกว่า "อัตราการแฮช" ปัจจุบัน อัตราแฮชของโลกโดยประมาณนั้นต่ำกว่า 200 ล้านเทราแฮชต่อวินาที (หนึ่งเทราแฮชคือล้านล้านแฮช) ด้วยความพยายามหลายครั้งต่อวินาที บล็อกที่มีแฮชที่เริ่มต้นด้วยศูนย์ 19 ตัวจะพบทุกๆ 10 นาที

ในอนาคต เมื่อมีผู้ขุดเข้าร่วมมากขึ้น อัตราแฮชจะเพิ่มขึ้น พบบล็อกเร็วขึ้น และความยากของ Bitcoin จะปรับให้ต้องใช้ศูนย์ 20 ตัว ซึ่งจะทำให้การผลิตบล็อกลดลงเหลือประมาณ 10 นาที

การ Halving

เมื่อ Bitcoin เริ่มต้น 50 bitcoin ถูกสร้างขึ้นทุกบล็อก กฎของบล็อคเชน Bitcoin ระบุว่าทุกๆ 210,000 บล็อก รางวัลจะถูกตัดออกครึ่งหนึ่ง ช่วงเวลานี้เรียกว่า “การลดลงครึ่งหนึ่ง” และเกิดขึ้นทุกๆ สี่ปีโดยประมาณ การลดจำนวนลงครึ่งหนึ่งรวมกับการปรับความยากในการเก็บบล็อกไว้ทุกๆ 10 นาที หมายความว่าประมาณปี 2140 รางวัลบล็อกจะเท่ากับ 0.00000001 หรือ 1 satoshi ซึ่งเป็นหน่วยที่เล็กที่สุดของ bitcoin และไม่สามารถลดลงครึ่งหนึ่งได้อีกต่อไป การขุดจะไม่หยุด แต่รางวัลบล็อกจะเป็นศูนย์ จากช่วงเวลานั้น จะไม่มีการสร้าง bitcoin ใหม่ในอนาคต และจำนวน bitcoin นั้นสามารถคำนวณทางคณิตศาสตร์ได้และใกล้เคียงถึง 21 ล้านเหรียญ นี่คือวิธีที่ทราบอุปทานทั้งหมด — มันถูกตั้งค่าโดยทางโปรแกรม

แม้ว่ารางวัลบล็อคจะอยู่ที่ศูนย์ นักขุดจะยังคงได้รับแรงจูงใจให้ทำงานต่อไปเพื่อรับค่าธรรมเนียมการทำธุรกรรม

รางวัลบล็อกลดลงครึ่งหนึ่งได้อย่างไร? มันอยู่ในรหัสที่ถือโดยโหนด พวกเขารู้ว่าจะปฏิเสธบล็อกใหม่หลังจาก 210,000 ซึ่งนักขุดจ่ายเงินให้ตัวเองมากกว่า 25 bitcoin จากนั้นให้ปฏิเสธบล็อคใดๆ หลังจาก 420,000 คนขุดแร่จ่ายเงินให้ตัวเองมากกว่า 12.5 bitcoin และอื่นๆ

ค่าธรรมเนียมการทำธุรกรรม

จนถึงตอนนี้ ฉันเพิ่งแสดงบล็อกจินตภาพด้วยธุรกรรมเดียว — ธุรกรรมที่ผู้ขุดได้รับรางวัล สิ่งนี้เรียกว่า “ธุรกรรม coinbase”

มันไม่ได้ตั้งชื่อตามบริษัท Conbase ฉันหมายถึง Coinbase บริษัทตั้งชื่อตัวเองตามธุรกรรมของ coinbase ไม่ใช่ในทางกลับกัน อย่าสับสน

นอกจากธุรกรรม coinbase แล้ว ยังมีธุรกรรมของผู้คนที่จ่ายเงินให้กันอีกด้วย นี่คือตัวอย่างในจินตนาการ:

SHA256 และการขุดปกป้องเครือข่าย Bitcoin PlatoBlockchain Data Intelligence อย่างไร ค้นหาแนวตั้ง AI.

ฉันไม่ได้รำคาญที่จะหาแฮชจริงในครั้งนี้ (จริงๆ แล้วเป็นแฮชจริงที่รายงานในบล็อก 200,001) Nonce ฉันเพิ่งทำขึ้นเพื่อความสนุกสนาน แต่สังเกตเห็นว่าสามารถฝังข้อความไว้ที่นั่นได้

Satoshis รวมคำว่า "Chancellor on Brink of Second Bailout for Banks" ไว้ในบล็อก Bitcoin แรก (The Genesis Block) หลังจากพาดหัวหนังสือพิมพ์ในวันนี้

SHA256 และการขุดปกป้องเครือข่าย Bitcoin PlatoBlockchain Data Intelligence อย่างไร ค้นหาแนวตั้ง AI.

ประเด็นคือมีธุรกรรมรวม 132 รายการ (ไม่แสดงทั้งหมด) ดูธุรกรรม #132 – 2.3 bitcoin จากที่อยู่จ่าย 2.1 bitcoin ไปยังที่อยู่อื่นและไปยังที่อยู่ที่สองด้วยจำนวน 0.1 bitcoin (ฉันใช้จุดเพื่อลดความยาวของที่อยู่)

ดังนั้นแหล่งที่มาของ 2.3 bitcoin จ่ายทั้งหมด 2.2 bitcoin (2.2 + 0.1 = 2.2) มี 0.1 bitcoin หายไปหรือไม่? ไม่ คนขุดแร่อ้างสิทธิ์ความแตกต่าง ตามที่ฉันจะอธิบาย

นักขุดได้รับอนุญาตให้จ่าย 25 bitcoin เป็นรางวัลบล็อก (เพราะผ่านไป 210,000 บล็อกดังนั้นรางวัลจึงลดลงครึ่งหนึ่งจาก 50 เป็น 25) แต่ถ้าคุณดู ธุรกรรมของ coinbase คือ 27.33880022 2.33880022 bitcoin เพิ่มเติมมาจากธุรกรรม 132 รายการอื่น ๆ ในบล็อก – อินพุตทั้งหมดจะมากกว่าผลลัพธ์ทั้งหมดเล็กน้อย ดังนั้นคนขุดแร่จึงเรียกร้อง bitcoin ที่ "ถูกทอดทิ้ง" นี้เป็นการชำระเงินให้กับตัวเอง สิ่งเหล่านี้ถือเป็นค่าธรรมเนียมการทำธุรกรรมที่จ่ายให้กับผู้ขุด

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

ดังนั้นเมื่อรางวัลบล็อกลดลงเรื่อย ๆ โดยลดลงครึ่งหนึ่งทุก ๆ สี่ปีและในที่สุดก็เหลือศูนย์ ผู้ขุดยังคงได้รับเงินในลักษณะนี้

บางคนแนะนำว่าสักวันหนึ่งรางวัลสำหรับนักขุดจะไม่เพียงพอและจะทำให้ Bitcoin ล้มเหลว ข้อกังวลนี้ได้ถูกหักล้างอย่างละเอียดแล้ว และฉันจะไม่ทำซ้ำที่นี่

บล็อกสามารถเขียนใหม่ได้หรือไม่?

สิ่งนี้ไม่น่าเป็นไปได้อย่างยิ่งและควรทำความเข้าใจว่าทำไม จากนั้นคุณจะประทับใจว่าทำไมธุรกรรม Bitcoin จึงไม่เปลี่ยนแปลง (ไม่สามารถเปลี่ยนแปลงได้)

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

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

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

จะเกิดอะไรขึ้นหากนักขุดสองคนพบบล็อกพร้อมกัน?

สิ่งนี้เกิดขึ้นจริงเป็นระยะ ๆ และมักจะเรียงลำดับดังนี้:

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

เพื่อให้เห็นภาพ ให้เรียกบล็อกหนึ่งว่าเป็นสีน้ำเงินและอีกบล็อกหนึ่งเป็นสีแดง (พวกมันไม่มีสี แค่อดทนกับฉัน)

จากนั้นคนงานเหมืองจะทำงานในบล็อกถัดไป แต่จะมีการแบ่งแยกว่าบล็อกใดที่พวกเขาขยายห่วงโซ่ออกไป

สมมติว่าผู้ขุดที่ชนะพบบล็อกโดยใช้โซ่สีน้ำเงิน พวกเขาจะส่งบล็อกใหม่ไปยังโหนดทั้งหมดและจะเห็นสายที่ยาวที่สุด โหนดที่ยอมรับสายสีแดงจะปล่อยมันและใช้สายสีน้ำเงิน

นักขุดทุกคนที่ทำงานบนสายโซ่สีแดงจะหยุดและตอนนี้จะทำงานบนสายที่ยาวกว่า ซึ่งก็คือสายสีน้ำเงิน ห่วงโซ่สีแดงตายแล้ว

ภาคผนวก

เหตุใดบล็อกของผู้ขุดจึงไม่ถูกต้อง

สมมติว่าบล็อก 700,000 เพิ่งถูกขุดโดย MINER-A สามสิบวินาทีต่อมา MINER-B ได้สร้างบล็อกเวอร์ชันอื่นอีก 700,000 บล็อก เมื่อ MINER-B แพร่ภาพทางเลือกนี้ ทุกโหนดจะปฏิเสธ เนื่องจากพวกเขาได้เห็นและยอมรับการบล็อกโดย MINER-A แล้ว ยิ่งไปกว่านั้น ใน 30 วินาทีนั้น สมมติว่า MINER-C พบบล็อก 700,001 เนื่องจากบล็อกที่ 700,000 ที่แข่งขันกันของ MINER-B ไม่ได้ขยายห่วงโซ่ปัจจุบัน (ซึ่งสูงถึง 700,001) จึงถูกปฏิเสธด้วยเหตุผลดังกล่าวด้วย

สิ่งที่น่าสนใจยิ่งกว่าคือถ้า MINER-B ทำงานบนบล็อก 700,001 แทนที่จะเป็นรุ่นแข่งขันกันที่ 700,000 พวกเขาก็จะมีโอกาสมากพอที่จะขุดบล็อกที่ถูกต้อง 700,001 เพราะพวกเขาจะต้องค้นหาบล็อกอื่น 700,000 ในท้ายที่สุด ดังนั้นทันทีที่นักขุดเห็นบล็อกใหม่ พวกเขาควรพยายามในบล็อกถัดไป

อย่างไรก็ตาม หาก Miner-B พบบล็อก 700,000 หนึ่งวินาทีหลังจากที่ MINER-A ทำ อาจเป็นไปได้ว่าบางโหนดเห็นการบล็อกของ MINER-A ก่อน ในขณะที่บางโหนดเห็นการบล็อกของ MINER-B ก่อน ขึ้นอยู่กับตำแหน่งทางภูมิศาสตร์และความเร็วอินเทอร์เน็ต ในกรณีนั้นจะมีทางแยกชั่วคราว และนักขุดบางคนกำลังทำงานเพื่อขยายเวอร์ชันหนึ่ง ในขณะที่นักขุดคนอื่นๆ กำลังทำงานเพื่อขยายอีกเวอร์ชันหนึ่ง ตามที่อธิบายไว้ก่อนหน้านี้โดยใช้คำอธิบาย "ห่วงโซ่สีน้ำเงิน" และ "สายสีแดง" ในที่สุดเวอร์ชันหนึ่งจะขยายออกไปก่อนหน้าอีกเวอร์ชันหนึ่งและกลายเป็นเวอร์ชันที่ถูกต้องอย่างเป็นเอกฉันท์

นี่คือแขกโพสต์โดย Arman The Parman ความคิดเห็นที่แสดงออกมาเป็นความคิดเห็นของตนเองทั้งหมด และไม่จำเป็นต้องสะท้อนถึงความคิดเห็นของ BTC Inc หรือ นิตยสาร Bitcoin.

ประทับเวลา:

เพิ่มเติมจาก นิตยสาร Bitcoin