นักขุดแต่ละคนรวบรวมธุรกรรมที่ไม่ได้รับการตรวจสอบลงในบล็อก (ประมาณ 500 ธุรกรรม) แล้วแข่งกันเพื่อแก้ปัญหาของ Bitcoin หลักฐานการทำงาน.
ความท้าทายนี้คล้ายกับการเดาค่าที่ถูกต้องจากความเป็นไปได้สี่พันล้าน เมื่อไม่มีรูปแบบใดที่จะต้องออกไปหรือเรียนรู้ กลยุทธ์เดียวคือกำลังดุร้าย ลองใช้ค่าต่างๆ ให้มากที่สุด
สิ่งนี้ทำให้เป็นเกมแห่งพลังการประมวลผลล้วนๆ
ในความเป็นจริงมีค่าที่ถูกต้องหลายค่า อ่านต่อ.
หลักฐานการทำงานคืออะไร?
Proof of Work เป็นระบบที่ Bitcoin ใช้ ทำให้นักขุดต้องคำนวณหลายๆ อย่างเพื่อหาค่าที่ถูกต้อง ในขณะที่ยังทำให้การแก้ไขที่ถูกต้องสามารถตรวจสอบได้ง่ายกับฝ่ายใดฝ่ายหนึ่ง
ในกรณีของ Bitcoin สิ่งนี้เกี่ยวข้องกับฟังก์ชันแฮช
แม้ว่าข้อกำหนดสำหรับคำตอบที่ถูกต้องจะเปลี่ยนไปตามกาลเวลา ปัจจุบัน Bitcoin ต้องการให้นักขุดค้นหาอินพุตของฟังก์ชันแฮชซึ่งส่งผลให้มีเอาต์พุตที่ขึ้นต้นด้วยศูนย์ 19 ตัว
วิธีแก้ปัญหาที่ถูกต้องอาจมีลักษณะดังนี้:000000000000000000069aef2b97ba47122bfe11d81abb58c91068d331226623
เราจะอธิบายฟังก์ชันแฮชในอีกสักครู่
นักขุดคนแรกที่ค้นพบวิธีแก้ปัญหาที่ถูกต้องจะถ่ายทอดคำตอบของพวกเขา พวกเขาชนะในรอบนี้
นักขุดคนอื่นๆ ทั้งหมดจะเพิ่มบล็อกนักขุดที่ชนะไปยังบัญชีแยกประเภท ธุรกรรมของผู้ขุดที่ชนะตอนนี้มีอยู่ในบล็อคเชนแล้ว และนักขุดรายอื่นไม่สามารถทำงานได้อีกต่อไป
ฟังก์ชันแฮชคืออะไร?
ฟังก์ชันแฮชจะแปลงสตริงของค่าต่างๆ ตามอำเภอใจ (เช่น คำ ประโยค ตัวเลข...) เป็นสตริงที่มีความยาวคงที่
ตัวอย่างเช่น ฟังก์ชันแฮชที่สมมติขึ้นอย่างง่ายสามารถทำสิ่งนี้ได้
อินพุต | เอาท์พุต
---------------------------------------------
'สวัสดีชาวโลก' | hd72kf97x
'สวัสดีชาวโลก 2' | l9ancg478
'123' | nfhyeiv00
'ฉันชอบพาสต้าในวันที่ฝนตก' | x913gzmaw
Bitcoin ใช้ SHA-256 เวอร์ชันดัดแปลง
เราจะกลับไปที่ SHA-256 ในอีกสักครู่
รับรู้ว่าอินพุตที่คล้ายกันไม่ได้ส่งผลให้เอาต์พุตเหมือนกัน ดังนั้นจึงไม่มีแรงจูงใจให้ทำอย่างอื่นนอกจากเดาอินพุตแบบสุ่ม
อินพุตของฟังก์ชันแฮชของ Bitcoin คืออะไร?
อินพุตสำหรับฟังก์ชันแฮชของ Bitcoin ถูกกำหนดไว้ล่วงหน้า คุณต้องปฏิบัติตามกฎ
แต่นั่นไม่ได้หมายความว่าผู้ใช้แต่ละคนใช้อินพุตเดียวกัน
มี 6 อินพุตสำหรับฟังก์ชันแฮชของ Bitcoin
- บล็อกหมายเลขเวอร์ชัน ระบุกฎปัจจุบันที่ตั้งไว้สำหรับตรวจสอบบล็อก ปัจจุบันนี้คือ
0x20000004
แต่มีการเปลี่ยนแปลงเป็นระยะ ทุกคนใช้เวอร์ชันเดียวกันเป็นอินพุตแฮช - แฮชส่วนหัวของบล็อกก่อนหน้า นี่คือแฮชเอาท์พุตที่เกี่ยวข้องกับบล็อกก่อนหน้าในบล็อคเชน สิ่งนี้ทำให้แน่ใจได้ว่าบัญชีแยกประเภทนั้นเป็นสายโซ่ที่ต่อเนื่องกัน โดยแต่ละบล็อกจะอ้างอิงถึงบล็อกก่อนหน้านั้น สิ่งนี้จะเหมือนกันสำหรับผู้ขุดทุกคนในช่วงเวลาที่กำหนด
ตัวอย่างล่าสุด:1b9affbba072ba2e923797d3b2050b9b9c8baacf696f84ac9940282b5568c547
. - แฮชธุรกรรมบล็อกปัจจุบัน. แฮชตามธุรกรรมที่ผู้ขุดได้รวมไว้ในบล็อกปัจจุบัน สิ่งนี้แตกต่างกันไปสำหรับผู้ขุดแต่ละคน เนื่องจากนักขุดแต่ละคนมีแนวโน้มที่จะทำงานในบล็อกของธุรกรรมที่แตกต่างกัน
ตัวอย่างล่าสุด:11a510d7adcde1ad5c8b33c35f5902f08cdb1d9800161f8af3874258f935ecea
- เวลาปัจจุบัน การประทับเวลาแบบยูนิกซ์แสดงเวลาที่ผู้ขุดเริ่มแฮชอินพุตสำหรับบล็อกปัจจุบัน คนขุดแร่ตั้งเวลานี้ ดังนั้นมันจะแตกต่างกันระหว่างคนงานเหมือง
- เป้าหมาย nBits เวอร์ชันเข้ารหัสของเกณฑ์ที่ผลลัพธ์แฮชที่ประสบความสำเร็จต้องเป็นไปตาม (หรือที่รู้จักว่าเริ่มต้นด้วยศูนย์อย่างน้อย 19 ตัว) เกณฑ์จะได้รับการแก้ไขทุกๆ 2,016 บล็อก เพื่อให้บล็อกเชนเติบโตต่อไปในอัตราที่วางแผนไว้ 1 บล็อก ทุกๆ 10 นาที
- Nonce (aka. จำนวนเต็มบวกแบบสุ่ม) ตัวเลขสุ่มที่เพิ่มขึ้นทุกครั้งที่มีการแฮชอินพุต การเปลี่ยนแปลงจำนวนเต็ม 1 ในตัวเลขนี้จะเปลี่ยนเอาต์พุตแฮชโดยสิ้นเชิง
อินพุตแฮชจะถูกต่อและป้อนไปยังอัลกอริธึมการแฮช
##################
# รหัสหลอก #
##################block_header = รุ่น + prevHash + curHash + เวลา + diff + nonce
เนื่องจากการเปลี่ยนอินพุตเดียวจะเปลี่ยนเอาต์พุตโดยสิ้นเชิง จึงไม่น่าเป็นไปได้ที่ผู้ขุด 2 คนจะสร้างเอาต์พุตเดียวกัน
Bitcoin ใช้อัลกอริทึมการแฮชแบบใด
Bitcoin ใช้ SHA-256 สองเท่า
ซึ่งเป็นเพียงเอาต์พุตของ SHA-256 ที่ป้อนใหม่ลงใน SHA-256
##################
# รหัสหลอก #
##################block_header = รุ่น + prevHash + curHash + เวลา + diff + noncesha_function( sha_function( block_header ) )
คุณสามารถลอง an เครื่องคิดเลข SHA-256 ออนไลน์ ที่นี่
มาลองแฮชบางอย่างด้วยอัลกอริธึมเดียวกับที่ Bitcoin ใช้กัน เราจะเริ่มต้นด้วยสตริงและแฮชสองครั้ง
Input:Big money
เอาต์พุต 1: 5f5255f01f4d7196484869c824266fbe5c2fa0fad9485dd911d507d2812fab7f
ตอนนี้เรามาแฮชนั้นอีกครั้ง
เอาต์พุต 2:8aa2a47234e9c320bbe3248b6a03fb5c68546ad0988b3faa6d0731805b19ad16
หากคุณแฮชสิ่งนี้ด้วยตัวเอง คุณจะได้ผลลัพธ์ที่เหมือนกันทุกประการ นั่นคือลักษณะของฟังก์ชันแฮช เจ๋งใช่มั้ย
นักขุดทุกคนทำงานบนบล็อกธุรกรรมเดียวกันหรือไม่?
เราพูดถึงเรื่องนี้มาก่อน แต่นี่เป็นคำอธิบายเพิ่มเติมเล็กน้อย
ผู้ขุดเลือกธุรกรรมที่จะรวมในบล็อกของพวกเขา บล็อกมีขนาดสูงสุด 1MB และแต่ละธุรกรรมประมาณ 0.5kb
ในขณะที่นักขุดทำเงินจากการรับ Bitcoin จากบล็อกที่ขุดได้สำเร็จ พวกเขายังทำเงินจากค่าธรรมเนียมการทำธุรกรรม สิ่งเหล่านี้แตกต่างกันไปตามธุรกรรม
ดังนั้นนักขุดจึงมีแรงจูงใจในการเลือกธุรกรรมที่มีค่าธรรมเนียมสูงสุด
- ขั้นตอนวิธี
- ทั้งหมด
- Bitcoin
- การทำเหมือง Bitcoin
- blockchain
- ท้าทาย
- เปลี่ยนแปลง
- รหัส
- อย่างต่อเนื่อง
- ปัจจุบัน
- CZ
- เฟด
- ค่าธรรมเนียม
- ชื่อจริง
- ปฏิบัติตาม
- ฟังก์ชัน
- เกม
- GitHub
- การเจริญเติบโต
- กัญชา
- hashing
- โปรดคลิกที่นี่เพื่ออ่านรายละเอียดเพิ่มเติม
- HTTPS
- ia
- IP
- IT
- เรียนรู้
- บัญชีแยกประเภท
- LG
- LP
- การทำ
- กลาง
- คนงานเหมือง
- การทำเหมืองแร่
- ML
- เงิน
- MS
- MT
- ใบสั่ง
- อื่นๆ
- อำนาจ
- พิสูจน์
- ความจริง
- ความต้องการ
- กฎระเบียบ
- ชุด
- ง่าย
- ขนาด
- So
- โซลูชัน
- แก้
- เริ่มต้น
- ข้อความที่เริ่ม
- กลยุทธ์
- ที่ประสบความสำเร็จ
- ระบบ
- เวลา
- การทำธุกรรม
- การทำธุรกรรม
- ความคุ้มค่า
- ชนะ
- งาน
- โลก