📙
[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

8 เกี่ยวกับธุรกรรม

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

8

เกี่ยวกับธุรกรรม

โพสต์นี้ครอบคลุมหลายคำถามและคำตอบ โดย Hal Finney ผู้รับธุรกรรมบิทคอยน์คนแรก เป็นผู้ตั้งคำถาม

ในส่วนแรก ซาโตชิอธิบายว่าเหมืองจะเก็บธุรกรรมไว้จนกว่าจะรวมเป็นบล็อกได้อย่างไร

ในส่วนที่สอง เขาอธิบายว่าการใช้จ่ายซ้ำซ้อน (double spending) ไม่สามารถเกิดขึ้นบนบล็อกเชนเฉพาะได้อย่างไร และเหตุใดจึงมีบล็อกเชนเดียวเท่านั้นที่จะเป็นฉันทามติ หากมีเหมืองสองรายที่ขุดบล็อกพร้อมกัน ยังครอบคลุมด้วยว่า ผู้รับจะต้องเก็บธุรกรรมไว้หนึ่งชั่วโมง จนกว่ามันจะได้รับการยืนยันอย่างเป็นทางการในบล็อกเชน ซาโตชิกล่าวว่า 6 บล็อก (10 นาทีต่อบล็อก คูณ 6 บล็อก เท่ากับ 1 ชั่วโมง) เป็นเวลาที่เหมาะสมให้ธุรกรรมได้รับการยืนยัน และกลายเป็นส่วนหนึ่งของบล็อกเชนตลอดไป

สำหรับคำถามที่สาม เขาอธิบายว่าผู้โจมตีจะต้องทำอย่างไร เพื่อ "แก้ไขประวัติศาสตร์" นั่นคือการสร้างและเปลี่ยนแปลงบล็อกเชนใหม่ การจะเพิ่มหรือลบธุรกรรมในบล็อกที่ผ่านมา ต้องเขียนใหม่ให้เร็วกว่าเหมืองทั้งหมดบนเครือข่ายที่ยังทำงานบนบล็อกเชนเดิมอยู่ จงจำไว้จากการอภิปรายเรื่องบล็อกกำพร้าว่า บล็อกเชนที่ยาวที่สุดคือสิ่งที่เครือข่ายใช้ ซาโตชิกล่าวว่า: พลังการโหวต proof-of-work ของ CPU จะต้องมีคำตัดสินสุดท้าย วิธีเดียวที่ทุกคนจะอยู่ในหน้าเดียวกันได้คือ เชื่อว่าเชนที่ยาวที่สุดเป็นเชนที่ถูกต้องเสมอ ไม่ว่าอะไรก็ตาม

คำถามที่สี่เกี่ยวข้องกับการตรวจสอบยืนยันธุรกรรมการโอนเงินของผู้รับ

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

สุดท้าย ซาโตชิรายงานว่าเขาเขียนโค้ดก่อนที่จะเขียนเอกสารไวท์เปเปอร์ประกาศเปิดตัว Bitcoin เพื่อพิสูจน์ต่อตัวเองว่าได้แก้ปัญหาทุกอย่างแล้ว

Re: บทความเกี่ยวกับ Bitcoin P2P e-cash

ซาโตชิ นาคาโมโต อา., 09 พ.ย. 2008 11:13:340800

Hal Finney เขียนว่า:

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

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

หรือยกตัวอย่างเช่น จะเป็นอย่างไร ถ้าโหนดเก็บเชนสองเชนหรือมากกว่าไว้ ขณะที่รอดูว่าเชนไหนยาวที่สุด แล้วบล็อกในเชน A ก็มีการใช้เหรียญซ้ำ (double spend) ที่อยู่ในเชน B จะมีการตรวจสอบกรณีนี้ด้วยไหม? (อาจเกิดขึ้นได้ถ้ามีคนใช้เหรียญซ้ำ และมีโหนดคนละกลุ่มได้ยินเกี่ยวกับสองธุรกรรมที่ใช้เหรียญเดียวกัน)

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

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

พวกเขายังสามารถใช้เหรียญใหม่ได้ทันที แต่ควรรอก่อนที่จะดำเนินการ เช่น การจัดส่งสินค้า

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

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

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

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

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

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

โหนดบันทึกเวลา (timestamp nodes) ตรวจสอบธุรกรรมหรือไม่ เพื่อให้แน่ใจว่าธุรกรรมก่อนหน้านี้ของเหรียญอยู่ในห่วงโซ่ ซึ่งบังคับใช้กฎที่ว่าธุรกรรมทั้งหมดในห่วงโซ่นั้นแสดงถึงเหรียญที่ถูกต้อง

ใช่ครับ นั่นแหละ เมื่อโหนดได้รับบล็อก มันจะตรวจสอบลายเซ็นของทุกธุรกรรมในนั้นกับธุรกรรมก่อนหน้าในบล็อก บล็อกสามารถมีเฉพาะธุรกรรมที่ขึ้นอยู่กับธุรกรรมที่ถูกต้องในบล็อกก่อนหน้าหรือบล็อกเดียวกัน ธุรกรรม C สามารถขึ้นอยู่กับธุรกรรม B ในบล็อกเดียวกัน และ B ขึ้นอยู่กับธุรกรรม A ในบล็อกก่อนหน้า

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

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

ซาโตชิ นากาโมโต

The Cryptography Mailing List

Previous7 ซาโตชิพูดถึงอัตราเงินเฟ้อเริ่มต้นที่ 35%Next9 เรื่องบล็อกกำพร้า (Orphan Blocks)

Last updated 11 months ago