📙
[TH] The Book of Satoshi by Phil Champagne (beta)
[TH] bitcoin booksourceช่วยแปล
  • หนังสือแห่งซาโตชิ: ผลงานรวมการเขียนของผู้สร้างบิตคอยน์ ซาโตชิ นากาโมโตะ
  • เกี่ยวกับภาพปก
  • กิตติกรรมประกาศ
  • หนังสือเล่มนี้มีไว้สำหรับใคร
  • คำนำ
  • 1 บทนำ
  • 2 บิตคอยน์ทำงานอย่างไรและทำไม
  • 3 โพสต์แรกบนกระดานสนทนาเรื่องการเข้ารหัสลับ
  • 4 ข้อกังวลเรื่องความสามารถในการขยายตัว
  • 5 การโจมตีด้วยพลัง 51%
  • 6 เกี่ยวกับเครือข่ายที่ควบคุมโดยส่วนกลางเปรียบเทียบกับเครือข่ายแบบ Peer-to-Peer
  • 7 ซาโตชิพูดถึงอัตราเงินเฟ้อเริ่มต้นที่ 35%
  • 8 เกี่ยวกับธุรกรรม
  • 9 เรื่องบล็อกกำพร้า (Orphan Blocks)
  • 10 เกี่ยวกับการซิงโครไนซ์ธุรกรรม
  • 11 ซาโตชิพูดถึงค่าธรรมเนียมธุรกรรม
  • 12 เกี่ยวกับการยืนยันและเวลาของบล็อก
  • 13 ปัญหานายพลไบแซนไทน์
  • 14 เรื่องเวลาในการสร้างบล็อก, การทดสอบอัตโนมัติ, และมุมมองของพวกเสรีนิยม
  • 15 เพิ่มเติมเกี่ยวกับ Double Spend, Proof-of-Work, และค่าธรรมเนียมธุรกรรม
  • 16 เกี่ยวกับ Elliptic Curve Cryptography, การโจมตีแบบ Denial of Service, และการยืนยัน
  • 17 เพิ่มเติมเกี่ยวกับ TransactionPool, NetworkingBroadcast, และรายละเอียดการเขียนโค้ด
  • 18 เปิดตัว Bitcoin ครั้งแรก
  • 19 เกี่ยวกับวัตถุประสงค์สำหรับการใช้งาน Bitcoin ในระยะแรก
  • 20 โทเค็น "Proof-of-Work" และสแปมเมอร์
  • 21 ประกาศ Bitcoin บน P2P Foundation
  • 22 เรื่องการกระจายอำนาจเป็นกุญแจสำคัญสู่ความสำเร็จ
  • 23 เกี่ยวกับเรื่องปริมาณเงิน
  • 24 Release of Bitcoin Vo.1.3
  • 25 เรื่องการประทับเวลาเอกสาร
  • 26 ข้อความต้อนรับของเว็บบอร์ด Bitcointalk
  • 27 เรื่องการครบกำหนดของ Bitcoin
  • 28 Bitcoin มีความเป็นนิรนามแค่ไหน?
  • 29 คำถามและคำตอบจาก Satoshi
  • 30 เรื่อง "เงินฝืดตามธรรมชาติ"
  • 31 Bitcoin เวอร์ชัน 0.2 มาแล้ว!
  • 32 คำแนะนำวิธีการชำระเงินสำหรับการสั่งซื้อ
  • 33 เกี่ยวกับความยากของ Proof-of-Work
  • 34 เรื่องขีดจำกัดของ Bitcoin และความคุ้มค่าในการเป็นโหนด
  • 35 ความเป็นไปได้ที่จะเกิดการชนกันของ Bitcoin Address
  • 36 QR Code
  • 37 ไอคอน/โลโก้ของ Bitcoin
  • 38 ใบอนุญาต GPL เทียบกับใบอนุญาต MIT
  • 39 เรื่องกฎระเบียบการโอนเงิน
  • 40 ความเป็นไปได้ของจุดอ่อนทางการเข้ารหัส
  • 41 เกี่ยวกับความหลากหลายของประเภทธุรกรรม
  • 🚰42 ก๊อกน้ำ Bitcoin แห่งแรก
  • 43 Bitcoin 0.3 ปล่อยออกมาแล้ว!
  • 44 เกี่ยวกับการแบ่งส่วนหรือ "สวิตช์ตัดการเชื่อมต่ออินเทอร์เน็ต"
  • 45 เกี่ยวกับการครอบงำตลาด
  • 46 เรื่องความสามารถในการขยายตัวและไคลเอนต์แบบเบา
  • 47 เรื่องปัญหาการทำธุรกรรมเร็ว
  • 48 บทความวิกิพีเดียเกี่ยวกับบิตคอยน์
  • 49 เกี่ยวกับความเป็นไปได้ในการขโมยเหรียญ
  • 50 พบข้อบกพร่องสำคัญ
  • 51 เรื่องการป้องกันการโจมตีแบบน้ำท่วม
  • 52 การถ่ายเทของ Bitcoin Faucet
  • 53 การทำธุรกรรมไปยังที่อยู่ IP แทนที่จะเป็นที่อยู่บิทคอยน์
  • 54 เรื่องเอสโครว์และธุรกรรมแบบมัลติซิกเนเจอร์
  • 55 เรื่องการขุด Bitcoin เป็นการสิ้นเปลืองทรัพยากร
  • 56 เกี่ยวกับประเภทของบล็อกเชนทางเลือกที่มีเพียงบันทึกแฮช
  • 57 เกี่ยวกับต้นทุนที่สูงขึ้นของการขุด
  • 58 เกี่ยวกับการพัฒนาระบบแจ้งเตือน
  • 59 เกี่ยวกับคำนิยามของเงินและบิตคอยน์
  • 60 ว่าด้วยข้อกำหนดของค่าธรรมเนียมธุรกรรม
  • 61 On Sites with CAPTCHA and Paypal Requirements
  • 62 เกี่ยวกับข้อความสั้นๆ ใน Block Chain
  • 63 เกี่ยวกับการจัดการกับการโจมตีด้วยการทำธุรกรรมจำนวนมาก
  • 64 เกี่ยวกับรายละเอียดเทคนิคของการขุดแร่แบบพูล
  • 65 เกี่ยวกับ WikiLeaks ที่ใช้ Bitcoin
  • 66 เกี่ยวกับระบบชื่อโดเมนแบบกระจาย
  • 67 เกี่ยวกับบทความใน PC World เกี่ยวกับบิตคอยน์และ WikiLeaks ที่กำลังเตะรังแตน
  • 68 โพสต์สุดท้ายของ Satoshi ในฟอรัม: การปล่อย Bitcoin 0.3-19
  • 69 อีเมลถึง Dustin Trammell
  • 70 สุดท้ายของการส่งจดหมายส่วนตัว
  • 71. บิตคอยน์และผม (Hal Finney)
  • 72 บทสรุป
  • Bitcoin: A Peer-to-Peer Electronic Cash System
  • คำศัพท์และนิยาม
  • ดัชนี
Powered by GitBook
On this page

13 ปัญหานายพลไบแซนไทน์

แปลโดย : Claude 3 Opus (Pro)

13

ปัญหานายพลไบแซนไทน์

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

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

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

เพื่อเรียนรู้เพิ่มเติม โปรดอ่านส่วน "การอธิบายปัญหา" ในบทความ Wikipedia ต่อไปนี้:

http://en.wikipedia.org/wiki/Two_Generals%27_Problem

ดูบทความนี้เกี่ยวกับความทนทานต่อความผิดพลาดแบบไบแซนไทน์ด้วย:

http://en.wikipedia.org/wiki/Byzantine_fault_tolerance

Re: บทความ Bitcoin P2P e-cash

Satoshi Nakamoto พฤ. 13 พ.ย. 2008 19:34:250800

James A. Donald เขียนว่า:

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

โซ่พิสูจน์งานเป็นวิธีแก้ปัญหานายพลไบแซนไทน์ ผมจะลองถอดความในบริบทนั้น

นายพลไบแซนไทน์หลายคนต่างมีคอมพิวเตอร์และต้องการโจมตี wi-fi ของกษัตริย์ด้วยการบังคับรหัสผ่าน ซึ่งพวกเขาได้เรียนรู้ว่ามีความยาวตัวอักษรจำนวนหนึ่ง เมื่อพวกเขากระตุ้นเครือข่ายให้สร้างแพ็กเก็ต พวกเขาต้องแคร็กรหัสผ่านในเวลาจำกัดเพื่อบุกเข้าไปและลบล็อก มิฉะนั้นพวกเขาจะถูกค้นพบและมีปัญหา พวกเขามีพลัง CPU เพียงพอที่จะแคร็กได้เร็วพอก็ต่อเมื่อส่วนใหญ่โจมตีพร้อมกัน

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

พวกเขาใช้โซ่พิสูจน์งาน (proof-of-work chain) เพื่อแก้ปัญหานี้ เมื่อแต่ละนายพลได้รับเวลาโจมตีที่เขาได้ยินเป็นคนแรก เขาจะตั้งคอมพิวเตอร์ของเขาให้แก้ปัญหาพิสูจน์งานที่ยากมากซึ่งรวมเวลาโจมตีไว้ในแฮชของมัน งานพิสูจน์นี้ยากมากจนคาดว่าจะใช้เวลา 10 นาทีกว่าที่พวกเขาทั้งหมดจะทำงานพร้อมกันก่อนที่หนึ่งในนั้นจะหาคำตอบได้ เมื่อนายพลคนใดคนหนึ่งพบพิสูจน์งาน เขาจะกระจายมันไปยังเครือข่าย และทุกคนจะเปลี่ยนการคำนวณพิสูจน์งานปัจจุบันของพวกเขาให้รวมการพิสูจน์งานนั้นไว้ในแฮชที่พวกเขากำลังทำงานอยู่ หากใครกำลังทำงานกับเวลาโจมตีที่แตกต่างกัน พวกเขาจะเปลี่ยนมาใช้เวลานี้ เพราะโซ่พิสูจน์งานของมันตอนนี้ยาวกว่า

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

โซ่พิสูจน์งานคือวิธีที่ปัญหาการซิงโครไนซ์ ฐานข้อมูลแบบกระจาย และมุมมองระดับโลกทั้งหมดที่คุณถามถึงได้รับการแก้ไข

The Cryptography Mailing List

Previous12 เกี่ยวกับการยืนยันและเวลาของบล็อกNext14 เรื่องเวลาในการสร้างบล็อก, การทดสอบอัตโนมัติ, และมุมมองของพวกเสรีนิยม

Last updated 11 months ago