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

วิทยาศาสตร์ยอดนิยม: ขั้นตอนการทำธุรกรรม Bitcoin

闲话挖矿
特邀专栏作者
2020-06-20 03:21
บทความนี้มีประมาณ 2487 คำ การอ่านทั้งหมดใช้เวลาประมาณ 4 นาที
จุดประสงค์หลักของบทความนี้คือการแสดงขั้นตอนการทำธุรกรรมของ Bitcoin ในภาษาที่ค่อนข้างง่าย เพ
สรุปโดย AI
ขยาย
จุดประสงค์หลักของบทความนี้คือการแสดงขั้นตอนการทำธุรกรรมของ Bitcoin ในภาษาที่ค่อนข้างง่าย เพ

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

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

ก่อนเริ่มคำอธิบาย คุณต้องแนะนำแนวคิดบางประการของแอมเวย์

การเข้ารหัสแบบอสมมาตร:หรือที่เรียกว่าการเข้ารหัสคีย์สาธารณะ โดยสร้างคีย์สาธารณะและคีย์ส่วนตัวคู่หนึ่งผ่านอัลกอริธึมการเข้ารหัส คีย์สาธารณะจะถูกทำให้เป็นสาธารณะ และคีย์ส่วนตัวจะถูกเก็บไว้โดยบุคคล มันมีสองจุดประสงค์ข้อมูลข้อมูลเข้ารหัสด้วยรหัสสาธารณะการแพร่เชื้อเจ้าของคีย์สาธารณะใช้คีย์ส่วนตัวที่เกี่ยวข้องเพื่อถอดรหัสข้อมูลและอ่านข้อมูล ด้วยวิธีนี้ คุณสามารถมั่นใจในความปลอดภัยในการรับส่งข้อมูลประการที่สอง เจ้าของคีย์สาธารณะสามารถใช้คู่คีย์ส่วนตัวได้ลายเซ็นข้อมูล(กระบวนการลายเซ็นคล้ายกับกระบวนการเข้ารหัส) จากนั้นจึงส่งข้อมูลและลายเซ็นไปยังผู้อื่น และอื่น ๆ สามารถตรวจสอบลายเซ็นข้อมูลผ่านรหัสสาธารณะ (กระบวนการตรวจสอบคล้ายกับกระบวนการถอดรหัส) และตรวจสอบว่า ข้อมูลลายเซ็นสอดคล้องกับข้อมูลที่ส่ง เป็นการพิสูจน์ว่าข้อมูลนั้นมาจากสาธารณะที่ออกโดยผู้ถือกุญแจ โดยไม่เปิดเผยตัวตนและรหัสส่วนตัวของผู้ถือกุญแจสาธารณะตรวจสอบความน่าเชื่อถือของแหล่งข้อมูล. (ลิงค์อ้างอิง:https://en.wikipedia.org/wiki/Public-key_cryptography)

อัลกอริทึมแฮช: เรียกอีกอย่างว่าฟังก์ชันแฮช สามารถใช้ในการคำนวณข้อความหรือข้อมูลที่มีข้อมูลจำนวนมากให้อยู่ในรูปแบบที่มีรูปแบบตายตัวและข้อมูลจำนวนน้อยนามธรรมดิจิตอลหรือที่เรียกว่าลายนิ้วมือค่าแฮชกัญชากัญชา. อัลกอริทึมแฮชที่ดีควรเป็นกลับไม่ได้(ข้อมูลหรือข้อมูลเดิมไม่สามารถย้อนกลับผ่านการสรุปดิจิทัลได้)อ่อนไหว(การเปลี่ยนแปลงเล็กๆ น้อยๆ ในข้อมูลต้นฉบับจะทำให้เกิดการเปลี่ยนแปลงครั้งใหญ่ในข้อมูลสรุปดิจิทัล)ป้องกันการชนกัน(เป็นการยากที่จะหาข้อมูลสองส่วนที่มีไดเจสต์ตัวเลขเดียวกัน) (ลิงค์อ้างอิง:https://en.wikipedia.org/wiki/Hash_function)

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

UTXO: เอาต์พุตธุรกรรมที่ไม่ได้ใช้ เอาต์พุตธุรกรรมที่ไม่ได้ใช้ มันคือเงินที่เป็นนามธรรม, แต่ละ UTXO ครอบคลุมโดย aกุญแจสาธารณะ (ที่อยู่กระเป๋าเงิน) ล็อคเฉพาะผู้ที่ถือคีย์ส่วนตัวของคีย์สาธารณะที่เกี่ยวข้องเท่านั้นที่สามารถทำได้ลงชื่อ (ปลดล็อค) ด้วยรหัสส่วนตัวและใช้ UTXO นั้น UTXO สามารถเข้าใจได้ว่าเป็นธนบัตรที่เป็นนามธรรมชื่อเรื่องรองhttps://en.wikipedia.org/wiki/Unspent_transaction_output)

นอกเหนือจากรหัสแล้ว เรามาดูกันว่าธุรกรรม bitcoin เป็นอย่างไร

ดังที่แสดงในรูปด้านล่าง มีสี่คน A, B, C และ D พวกเขาทั้งหมดมีกระเป๋าเงิน Bitcoin กุญแจส่วนตัวของกระเป๋าเงินจะถูกเก็บไว้ด้วยตัวเอง ที่อยู่กระเป๋าเงิน (สร้างโดยกุญแจสาธารณะของแต่ละคน กระเป๋าเงิน) ถูกเผยแพร่บนเครือข่าย Bitcoin สำหรับการล็อคและตรวจสอบ UTXO

ในขั้นต้น A ให้ C 0.7BTC บันทึกในเครือข่าย Bitcoin คือUTXO(1): A ถึง C 0.7BTC;B ถึง C 0.5BTC บันทึกในเครือข่าย Bitcoin คือUTXO(2): B ถึง C 0.5BTC. ในขณะนี้ ยอดเงินในบัญชีของกระเป๋าสตางค์ Bitcoin ของ C คือผลรวมของ UTXO ทั้งสองนี้จำนวน bitcoins ทั้งหมดของ C = UTXO(1)+UTXO(2)=1.2BTC. ดังที่แสดงด้านล่าง:

ในวันนี้ C ซื้อสินค้าชุดหนึ่งจาก D และต้องจ่ายเงิน 0.8 BTC ให้กับ D C โอนเงินไปยัง D ผ่านเครือข่าย Bitcoin แต่ UTXO ที่มีอยู่สองตัวของ C นั้นน้อยกว่า 0.8 BTC ทั้งคู่ ดังนั้นจึงจำเป็นต้องใช้ UTXO ทั้งสองร่วมกันคล้ายกับการทำธุรกรรมเงินสด: จ่าย 1.2BTC ให้ Ding และ Ding จ่าย 0.4BTC ให้ Bing. แต่ในเครือข่าย Bitcoin สิ่งนี้งานการเปลี่ยนแปลงเริ่มต้นโดย C เอง

ขั้นตอนการทำธุรกรรมทั้งหมดมีดังนี้:

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

  • ผลลัพธ์ของธุรกรรมไม่ได้รับการยืนยันUTXO(3): C ถึง D 0.8BTCUTXO ใหม่นี้ชี้ไปที่รหัสสาธารณะกระเป๋าเงินของ Ding และจะถูกล็อคโดยรหัสสาธารณะกระเป๋าเงินของ Ding หลังจากธุรกรรมได้รับการยืนยัน

    ในขณะนี้ ยังคงมี 0.4BTC ที่จะให้เปลี่ยนเป็น C ดังนั้นจึงจำเป็นต้องแสดงผลลัพธ์ที่ไม่ได้รับการยืนยันUTXO(4): C ถึง C 0.3999BTCUTXO ใหม่นี้ชี้ไปที่รหัสสาธารณะกระเป๋าเงินของ C และจะถูกล็อคโดยรหัสสาธารณะกระเป๋าเงินของ C หลังจากธุรกรรมได้รับการยืนยัน

    ทำไมจำนวนเงินที่เปลี่ยนแปลงถึงไม่ใช่ 0.4BTC?? เนื่องจากข้อกำหนดของเครือข่าย Bitcoin การโอนธุรกรรมจำเป็นต้องจ่ายค่าธรรมเนียมการทำธุรกรรมให้กับเครือข่าย Bitcoinเหลือ 0.0001BTCไม่ได้ชี้ไปที่รหัสสาธารณะของกระเป๋าเงินใด ๆเป็นค่าโอนจ่ายให้กับนักขุดที่ทำธุรกรรม (หากไม่มีการเปลี่ยนแปลง bitcoins ที่เหลือทั้งหมดที่ไม่ได้ระบุจะถูกใช้เป็นค่าธรรมเนียมการจัดการให้กับนักขุดที่ทำธุรกรรม แต่กระเป๋าเงินทำการเปลี่ยนแปลงโดยอัตโนมัติในขณะนี้ กังวล).

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

  • UTXO เก่าจะถูกใช้ และ UTXO ใหม่จะมีผลในเวลานี้กระเป๋าเงินของ Ding ยังไม่ได้ใช้UTXO(3): โพรเพนดีน 0.8BTC, กระเป๋าเงินของ C ยังไม่ได้ใช้UTXO(4): C ถึง C 0.3999BTC


ข้างต้นเป็นขั้นตอนการทำธุรกรรม bitcoin ที่เป็นนามธรรมมากขึ้น, เกี่ยวกับการสร้างธุรกรรม bitcoin, การตรวจสอบลายเซ็น, การตรวจสอบโหนด, การออกอากาศธุรกรรม, การเข้าร่วมโหนดการขุด mempool, นักขุดสร้างบล็อกเบื้องต้นและกระบวนการยืนยันบล็อกสุดท้าย พวกเขาจะแนะนำแยกกัน และ จะไม่ขยายความในบทความนี้

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

BTC
矿业