สารบัญ
- ทำความเข้าใจกับ Blockchain
- จัดการกับการใช้จ่ายสองครั้ง
- หลักฐานการทำงาน & 'การขุด'
หนึ่งในความกังวลหลักของนักพัฒนา cryptocurrency ใด ๆ คือปัญหาของการใช้จ่ายสองครั้ง นี่หมายถึงอุบัติการณ์ของการใช้จ่ายยอดดุลของเงินดิจิตอลนั้นมากกว่าหนึ่งครั้งได้อย่างมีประสิทธิภาพสร้างความแตกต่างระหว่างบันทึกการใช้จ่ายและจำนวนเงินที่เข้ารหัสลับพร้อมใช้งานเช่นเดียวกับวิธีการที่มันมีการกระจาย
ปัญหาของการใช้จ่ายซ้ำซ้อนเป็นปัญหาที่ไม่มีเงินสด หากคุณจ่ายแซนวิชที่มีใบเรียกเก็บเงิน 10 ดอลลาร์เปลี่ยนการเรียกเก็บเงินนั้นไปยังผู้ผลิตแซนวิชคุณจะไม่สามารถหันกลับและใช้เงิน $ 10 เดียวกันนั้นไปที่อื่นได้ อย่างไรก็ตามการทำธุรกรรมโดยใช้สกุลเงินดิจิตอลเช่น bitcoin เกิดขึ้นแบบดิจิทัลทั้งหมด ซึ่งหมายความว่ามีความเป็นไปได้ที่จะคัดลอกรายละเอียดธุรกรรมและทำการออกอากาศซ้ำเพื่อให้สามารถใช้ BTC เดียวกันหลายครั้งโดยเจ้าของเดียว ด้านล่างนี้เราจะตรวจสอบว่านักพัฒนา cryptocurrency รับประกันได้อย่างไรว่าการใช้จ่ายสองครั้งไม่สามารถเกิดขึ้นได้
ประเด็นที่สำคัญ
- ปัญหาทางเทคนิคที่เกิดขึ้นกับความคิดของสกุลเงินดิจิทัลคือความสามารถในการทำซ้ำเงินดิจิทัลและใช้พร้อมกันในที่สองแห่งหรือมากกว่านั้นปัญหา 'การใช้จ่ายสองครั้ง' ถูกป้องกันใน cryptocurrencies ที่ใช้ blockchain เช่น Bitcoin โดย ใช้กลไกฉันทามติที่รู้จักกันในชื่อหลักฐานการทำงาน (PoW). PoW นี้ดำเนินการโดยเครือข่ายการกระจายอำนาจของ 'miners' ที่ไม่เพียง แต่รักษาความปลอดภัยของการทำธุรกรรมที่ผ่านมาในบัญชีแยกประเภทของ blockchain แต่ยังตรวจจับและป้องกัน.
ทำความเข้าใจกับ Blockchain
blockchain ซึ่งเป็นสกุลเงินดิจิตอลเช่น bitcoin ไม่สามารถป้องกันการใช้จ่ายซ้ำได้ด้วยตัวเอง แต่ธุรกรรมต่าง ๆ ทั้งหมดที่เกี่ยวข้องกับ cryptocurrency ที่เกี่ยวข้องนั้นจะถูกโพสต์ไปที่ blockchain ซึ่งจะมีการตรวจสอบและป้องกันแยกต่างหากโดยกระบวนการยืนยัน ในกรณีของ bitcoin และ cryptocurrencies อื่น ๆ การทำธุรกรรมที่ได้รับการยืนยันด้วยวิธีนี้จะไม่สามารถย้อนกลับได้ พวกเขาจะโพสต์ต่อสาธารณะและเก็บรักษาไว้ในความเป็นอมตะ
Bitcoin เป็นสกุลเงินดิจิตอลรายใหญ่รายแรกที่แก้ปัญหาการใช้จ่ายซ้ำซ้อน มันทำได้โดยการใช้กลไกการยืนยันนี้และรักษาระบบบัญชีแยกประเภททั่วไปที่เป็นสากล ด้วยวิธีนี้ bitcoin blockchain จะเก็บบันทึกธุรกรรมที่มีการประทับเวลากลับไปสู่การก่อตั้ง cryptocurrency ในปี 2552
ในแง่ของ Bitcoin "บล็อก" เป็นไฟล์ข้อมูลที่บันทึกอย่างถาวร การทำธุรกรรมล่าสุดทั้งหมดจะถูกเขียนลงในบล็อกเช่นเดียวกับบัญชีแยกประเภทการทำธุรกรรมหุ้นในการแลกเปลี่ยน ข้อมูลจากบล็อกจะถูกเพิ่มลงในบัญชีแยกประเภททุกสองสามนาที โหนดทั้งหมดบนเครือข่ายเก็บสำเนาของบัญชีแยกประเภท blockchain ผู้ใช้สามารถนำทาง blockchain สำหรับ bitcoin และตรวจสอบธุรกรรมในแง่ของปริมาณเท่านั้น รายละเอียดเกี่ยวกับตัวตนของผู้ซื้อและผู้ขายในการทำธุรกรรมใด ๆ ได้รับการคุ้มครองโดยการเข้ารหัสระดับสูงซึ่งช่วยป้องกันบัญชีแยกประเภทจากการปลอมแปลงโดยแหล่งข้อมูลภายนอก เมื่อมีการอัปเดตบัญชีแยกประเภท blockchain ด้วยเช่นกันคือกระเป๋าเงิน bitcoin ทั้งหมด
จัดการกับการใช้จ่ายสองครั้ง
ลองนึกภาพว่าคุณมี 1 BTC และคุณพยายามที่จะใช้มันสองครั้งในธุรกรรมที่แยกกันสองรายการ คุณสามารถลองทำได้โดยส่ง BTC เดียวกันไปยังที่อยู่ bitcoin wallet สองที่แยกกัน ธุรกรรมทั้งสองนี้จะไปสู่กลุ่มธุรกรรมที่ไม่ได้รับการยืนยัน การทำธุรกรรมครั้งแรกจะได้รับการอนุมัติผ่านกลไกการยืนยันแล้วตรวจสอบในบล็อกที่ตามมา อย่างไรก็ตามการทำธุรกรรมที่สองจะได้รับการยอมรับว่าไม่ถูกต้องโดยกระบวนการยืนยันและจะไม่ได้รับการตรวจสอบ หากทั้งสองธุรกรรมถูกดึงออกจากกลุ่มเพื่อยืนยันพร้อมกันธุรกรรมที่มีจำนวนการยืนยันสูงสุดจะรวมอยู่ในบล็อกเชนในขณะที่อีกรายการหนึ่งจะถูกยกเลิก
แม้ว่าสิ่งนี้จะเกี่ยวข้องกับปัญหาการใช้จ่ายสองเท่าอย่างมีประสิทธิภาพ แต่ก็ไม่ได้เป็นปัญหาหากไม่มี ตัวอย่างเช่นผู้รับที่ตั้งใจของธุรกรรมที่สอง (ล้มเหลว) จะไม่ได้มีส่วนร่วมในการทำธุรกรรมตัวเองล้มเหลวและยังบุคคลนั้นจะไม่ได้รับ bitcoin ที่เขาหรือเธอคาดการณ์ไว้ ร้านค้าหลายแห่งรอการยืนยันธุรกรรมอย่างน้อย 6 ครั้ง (หมายถึงมีการเพิ่มบล็อกธุรกรรม 6 รายการในบล็อกเชนหลังจากธุรกรรมดังกล่าว) ณ จุดนี้ผู้ค้าสามารถสันนิษฐานได้ว่าการทำธุรกรรมนั้นถูกต้อง
ยังมีช่องโหว่อื่นในระบบนี้ซึ่งอาจทำให้มีการโจมตีซ้ำซ้อน ตัวอย่างเช่นหากผู้โจมตีสามารถควบคุมอย่างน้อย 51% ของผู้มีอำนาจของเครือข่ายเขาหรือเธอสามารถใช้จ่ายสองเท่า หากผู้โจมตีสามารถควบคุมพลังการคำนวณได้มากเขาหรือเธอสามารถทำธุรกรรมย้อนกลับและสร้าง blockchain ส่วนตัวแยกต่างหาก อย่างไรก็ตามการเติบโตอย่างรวดเร็วของ bitcoin นั้นทำให้มั่นใจได้ว่าการโจมตีประเภทนี้เป็นไปไม่ได้ (สำหรับข้อมูลเพิ่มเติมโปรดดูการหลอกลวงห้า Bitcoin เหล่านี้)
หลักฐานการทำงาน & 'การขุด' อธิบาย
ทีนี้มาดูเทคนิคกันหน่อย วิธีที่ผู้ใช้ตรวจพบการปลอมแปลงเช่นความพยายามในการใช้จ่ายสองครั้งในทางปฏิบัติคือผ่านแฮชสตริงจำนวนยาวที่ใช้เป็นหลักฐานการทำงาน (PoW) ใส่ชุดข้อมูลที่กำหนดผ่านฟังก์ชั่นแฮช (bitcoin ใช้ SHA-256) และมันจะสร้างแฮชเพียงครั้งเดียว อย่างไรก็ตามเนื่องจาก "เอฟเฟกต์หิมะถล่ม" แม้การเปลี่ยนแปลงเพียงเล็กน้อยในส่วนใด ๆ ของข้อมูลต้นฉบับจะส่งผลให้แฮชที่ไม่สามารถจดจำได้ทั้งหมด ไม่ว่าขนาดของชุดข้อมูลต้นฉบับใดก็ตามแฮชที่สร้างโดยฟังก์ชันที่กำหนดจะมีความยาวเท่ากัน แฮชเป็นฟังก์ชั่นทางเดียว: ไม่สามารถใช้เพื่อรับข้อมูลต้นฉบับได้เพียงเพื่อตรวจสอบว่าข้อมูลที่สร้างแฮชตรงกับข้อมูลดั้งเดิม
การสร้างแฮชเพียงเล็กน้อยสำหรับชุดการทำธุรกรรม bitcoin นั้นจะไม่สำคัญสำหรับคอมพิวเตอร์ยุคใหม่ดังนั้นเพื่อเปลี่ยนกระบวนการให้กลายเป็น "ทำงาน" เครือข่าย bitcoin จะกำหนดระดับ "ความยากลำบาก" ระดับหนึ่ง การตั้งค่านี้จะถูกปรับเพื่อให้บล็อกใหม่เป็น "mined" - เพิ่มใน blockchain โดยสร้างแฮชที่ถูกต้อง - ประมาณทุกๆ 10 นาที ความยากลำบากในการตั้งค่าทำได้โดยการสร้าง "เป้าหมาย" สำหรับแฮช: เป้าหมายที่ต่ำกว่าชุดแฮชที่ถูกต้องที่น้อยกว่าและยิ่งยากที่จะสร้างมันขึ้นมา ในทางปฏิบัตินี่หมายถึงแฮชที่เริ่มต้นด้วยสตริงที่มีความยาว: แฮชสำหรับบล็อก # 429818 คือ 000000000000000000004dd3426129639082239efd583b5273b1bd75e8d78ff2e8d บล็อกนั้นมีธุรกรรม 2, 012 รายการที่มีมากกว่า 1, 000 bitcoin รวมถึงส่วนหัวของบล็อกก่อนหน้า หากผู้ใช้เปลี่ยนจำนวนหนึ่งธุรกรรมเป็น 0.0001 bitcoin แฮชผลลัพธ์จะไม่สามารถจดจำได้และเครือข่ายจะปฏิเสธการฉ้อโกง
เนื่องจากชุดข้อมูลที่กำหนดสามารถสร้างแฮชได้เพียงหนึ่งชุดเท่านั้นผู้ขุดจะแน่ใจได้อย่างไรว่าพวกเขาสร้างแฮชต่ำกว่าเป้าหมาย พวกเขาเปลี่ยนอินพุตโดยการเพิ่มจำนวนเต็มเรียกว่า nonce ("หมายเลขที่ใช้ครั้งเดียว") เมื่อพบแฮชที่ถูกต้องมันจะถูกส่งไปยังเครือข่ายและบล็อกจะถูกเพิ่มใน blockchain
การขุดเป็นกระบวนการแข่งขัน แต่มีลอตเตอรี่มากกว่าการแข่งขัน โดยเฉลี่ยแล้วใครบางคนจะสร้างหลักฐานการทำงานที่ยอมรับได้ทุกสิบนาที แต่ใครจะเดาได้ คนงานเหมืองรวมกันเพื่อเพิ่มโอกาสในการขุดบล็อกซึ่งสร้างค่าธรรมเนียมการทำธุรกรรมและระยะเวลาที่ จำกัด รางวัลของ bitcoins ที่สร้างขึ้นใหม่
หลักฐานการทำงานทำให้ยากมากที่จะเปลี่ยนมุมมองใด ๆ ของ blockchain เนื่องจากการเปลี่ยนแปลงดังกล่าวจะต้องทำการขุดบล็อกที่ตามมาทั้งหมดอีกครั้ง นอกจากนี้ยังทำให้ผู้ใช้หรือกลุ่มผู้ใช้ยากที่จะผูกขาดอำนาจการคำนวณของเครือข่ายเนื่องจากเครื่องจักรและพลังงานที่จำเป็นในการใช้ฟังก์ชันแฮชมีราคาแพง