BTC
ETH
HTX
SOL
BNB
ดูตลาด
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

วิทยาศาสตร์ยอดนิยม: กระบวนการสร้างบล็อกใหม่ของ Bitcoin

闲话挖矿
特邀专栏作者
2020-07-07 02:45
บทความนี้มีประมาณ 2939 คำ การอ่านทั้งหมดใช้เวลาประมาณ 5 นาที
นี่คือเนื้อหาที่สองของอัลบั้มวิทยาศาสตร์ยอดนิยมเกี่ยวกับการขุดของ Blogger เนื้อหาต่อจากบทค
สรุปโดย AI
ขยาย
นี่คือเนื้อหาที่สองของอัลบั้มวิทยาศาสตร์ยอดนิยมเกี่ยวกับการขุดของ Blogger เนื้อหาต่อจากบทค

นี่คือเนื้อหาที่สองของอัลบั้มวิทยาศาสตร์การขุดยอดนิยมของ Blogger ต่อจากเนื้อหาก่อนหน้า"ขั้นตอนการทำธุรกรรม Bitcoin"ดูภาพรวมทั้งหมดของการขุด Bitcoin ต่อไปโดยการวิเคราะห์กระบวนการทั้งหมดของการทำธุรกรรม Bitcoin ตั้งแต่เริ่มต้นจนถึงการยืนยัน

มีอยู่

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

ต่อไป บล็อกเกอร์จะอธิบายว่าบล็อก Bitcoin บันทึกและยืนยันข้อมูลธุรกรรมผ่านกระบวนการสร้างบล็อก Bitcoin ใหม่ได้อย่างไร

ต่อไปนี้เป็นประเด็นความรู้บางประการที่จำเป็นต้องมีแอมเวย์ก่อน:

กลุ่มธุรกรรมชื่อภาษาอังกฤษ: mempool หรือที่เรียกว่า memory pool ใช้เพื่อจัดเก็บธุรกรรมที่จะได้รับการยืนยัน แต่ละโหนดการขุด Bitcoin มีกลุ่มธุรกรรมอิสระของตนเอง เนื่องจากขนาดของกลุ่มธุรกรรม อัตราส่วนค่าธรรมเนียมการทำธุรกรรมขั้นต่ำ (อัตราส่วนค่าธรรมเนียม เป็นค่าธรรมเนียมการจัดการที่รวมอยู่ในธุรกรรมต่อหน่วยปริมาณ และหน่วยคือ Sat/B นั่นคือค่าธรรมเนียมการจัดการสำหรับแต่ละธุรกรรม B-byte คือ x Satoshi bitcoin ซึ่งเหมือนกันด้านล่าง) กลุ่มธุรกรรมของแต่ละโหนดจะแตกต่างกัน เนื่องจากข้อจำกัดที่แตกต่างกัน นักขุด (กลุ่มการขุด) จำเป็นต้องเลือกธุรกรรมที่จะบรรจุจากกลุ่มธุรกรรมเมื่อสร้างบล็อกเบื้องต้น เนื่องจากกลุ่มธุรกรรมมักถูกเรียก ข้อมูลจึงถูกจัดเก็บไว้ใน RAM ของโหนดเซิร์ฟเวอร์ ซึ่งหมายความว่าปริมาณของกลุ่มธุรกรรมจะไม่ใหญ่เกินไป

โหนดการขุดในเครือข่าย Bitcoin การเข้าร่วมในการบันทึกและการตรวจสอบธุรกรรมและบล็อก Bitcoin เป็นโหนดที่บันทึกข้อมูล Bitcoin โหนดเหล่านี้บางโหนดไม่เพียงแต่มีส่วนร่วมในการบันทึกและการตรวจสอบเท่านั้นแต่ยังมีส่วนร่วมในการสร้างบล็อก Bitcoin ใหม่ พวกเขาสร้างบล็อกใหม่และแข่งขันเพื่อสิทธิ์ในการจัดทำบัญชีผ่านการพิสูจน์ปริมาณงานของ PoW และได้รับสิทธิ์ในการสร้างบล็อกใหม่ เหล่านี้ โหนดเป็นโหนดการขุด โหนดการขุดในช่วงแรกมีตัวขุดและพูลการขุด แต่ในปัจจุบันเนื่องจากความยากสูงของการขุด Bitcoin จึงเป็นเรื่องยากสำหรับผู้ขุดคนเดียวที่จะชนะสิทธิ์ในการจัดทำบัญชีและสร้างบล็อกใหม่ ในปัจจุบัน โหนดการขุด Bitcoin หลักคือกลุ่มการขุด เช่น F2Pool, Poolin, BTC.com, Antpool, Slushpool เป็นต้น

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

รางวัล Coinbaseชื่อเรื่องรอง

ธุรกรรมที่จะได้รับการยืนยันจะเข้าสู่กลุ่มธุรกรรมก่อน

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

คำอธิบายภาพ

รูปที่ 1 ธุรกรรมที่จะยืนยันเข้าสู่กลุ่มธุรกรรม

ข้อมูลธุรกรรมที่ต้องตรวจสอบประกอบด้วย:

  • การทำธุรกรรมมีที่อยู่กระเป๋าเงินเข้าและออกที่ถูกต้องหรือไม่;

  • ปริมาณธุรกรรมน้อยกว่าปริมาณสูงสุดของบล็อกหรือไม่ (ปริมาณสูงสุดของบล็อก Bitcoin ปัจจุบันคือ 1M)

  • อินพุต UTXO นั้นถูกกฎหมายหรือไม่ (เมื่อเทียบกับไลบรารี UTXO ของโหนด อินพุต UTXO ไม่ได้ใช้)

  • อินพุตและเอาต์พุตทั้งหมดของธุรกรรมมีความสมเหตุสมผลหรือไม่ (อินพุตทั้งหมด ≥ เอาต์พุตทั้งหมด)

  • การตัดสินว่าการทำธุรกรรมมีรางวัลจาก Coinbase หรือไม่ สกุลเงินที่สอดคล้องกับรางวัลจะต้องมีการยืนยันการบล็อกอย่างน้อย 100 ครั้งก่อนที่จะสามารถใช้ได้

  • ยืนยันว่าไม่มีธุรกรรมที่ซ้ำกันในกลุ่มธุรกรรม

  • ชื่อเรื่องรอง

โหนดการขุดเลือกธุรกรรมจากกลุ่มธุรกรรมและสร้างบล็อกเบื้องต้น

เมื่อโหนดการขุดต้องการสร้างบล็อกเบื้องต้นและเตรียมสร้างบล็อกใหม่ โหนดจะจัดเรียงธุรกรรมตามลำดับความสำคัญและนำธุรกรรมไปได้รับการยืนยันจากกลุ่มธุรกรรม บล็อกสำรองมักจะสงวนพื้นที่บางส่วนสำหรับการทำธุรกรรมที่มีลำดับความสำคัญสูง และพื้นที่ที่เหลือจะถูกใช้เพื่อเติมเต็มบล็อกหรือใช้ธุรกรรมทั้งหมดในกลุ่มธุรกรรมตามอัตราส่วนค่าธรรมเนียมการทำธุรกรรม (วันเสาร์/B) จากสูงไปต่ำ .

คำอธิบายภาพ

ใน,

ใน,"เลขมหัศจรรย์"เป็นค่าคงที่ซึ่งมีค่าเป็น 0xD9B4BEF9;"ขนาดบล็อก"คือปริมาณรวมของข้อมูลทั้งหมดในบล็อกนี้"หัวบล็อก"สามารถถือเป็นข้อมูลย่อของบล็อกทั้งหมด และข้อมูลบล็อกที่ใช้สำหรับการขุดคือส่วนหัวของบล็อก"เคาน์เตอร์ธุรกรรม"ใช้เพื่อบันทึกจำนวนธุรกรรมในบล็อก"ข้อมูลการทำธุรกรรม"เป็นข้อมูลธุรกรรมทั้งหมดที่อยู่ในบล็อกรวมถึงส่วนรางวัลของ Coinbase โดยทั่วไป ข้อมูลส่วนนี้ใช้พื้นที่ส่วนใหญ่ของบล็อกทั้งหมด

ในบล็อก Bitcoin ส่วนหัวของบล็อกเป็นข้อมูลที่สำคัญที่สุด ประกอบด้วยข้อมูลคุณลักษณะทั้งหมดของบล็อกทั้งหมด:

  • หมายเลขรุ่นของบล็อก. ข้อมูลเวอร์ชันของโหนด Bitcoin ที่สร้างบล็อกนั้นใช้เพื่อติดตามการอัปเกรดและอัปเดตโปรโตคอล Bitcoin

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

  • แฮช MerkleRootคำอธิบายภาพ

    รูปที่ 3 โครงสร้าง Merkle tree ของข้อมูลธุรกรรม

    เนื่องจากความไวของอัลกอริธึมการแฮช การเปลี่ยนแปลงเพียงเล็กน้อยในข้อมูลธุรกรรมใน Merkle tree ของธุรกรรมทั้งหมดจะมีผลเชื่อมโยง ส่งผลให้ค่าแฮชรากของ Merkle tree เปลี่ยนไปอย่างมาก ดังนั้น ค่าแฮชรากของ Merkle (MerkleRoot Hash) ของข้อมูลธุรกรรมจึงถือเป็นลายนิ้วมือของธุรกรรมทั้งหมด ซึ่งใช้เพื่ออ้างถึงข้อมูลธุรกรรมในบล็อก

  • การประทับเวลา. เวลาในการสร้างบล็อกเตรียมการ

  • แฮชเป้าหมายปัจจุบันหมายเลขสุ่ม

  • หมายเลขสุ่ม. เรียกอีกอย่างว่าโนนเซ่ เราพบว่าในข้อมูลส่วนหัวของบล็อก หมายเลขรุ่นของบล็อก ค่าแฮชของบล็อกก่อนหน้า ค่าแฮชของ MerkleRoot การประทับเวลา และแฮชเป้าหมายปัจจุบันล้วนเป็นข้อมูลที่ทราบ ค่อนข้างคงที่ และไม่สะดวกที่จะเปลี่ยนแปลงตามต้องการ . ดังนั้น หากคุณต้องการปรับค่าแฮชของบล็อกเตรียมการ คุณต้องแนะนำข้อมูลตัวแปร - ตัวเลขสุ่ม โดยการปรับเปลี่ยนตัวเลขสุ่ม สามารถปรับค่าแฮชของบล็อกเตรียมการได้

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

อ้างอิง:

อ้างอิง:

  • การวิเคราะห์ซอร์สโค้ด Bitcoin

  • การวิเคราะห์โครงสร้างส่วนหัวของบล็อก Bitcoin:

  • อัตราแฮชเป้าหมาย bitcoin

  • โครงสร้างบล็อก Bitcoin

  • การเรียนรู้ Bitcoin

PoW
BTC
矿业