The Double-Spend Problem

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

The Double-Spend Problem

As Chaum started considering designs for an electronic cash system, he quickly encountered the first challenge for anyone that wants to create a digital form of money: the double-spend problem.

Simply, if currency consists purely of digital information—ones and zeroesit is trivial to copy. A single “digital dollar” can be replicated and sent to two different recipients . . . or even to a million different recipients, to the point where the money suffers from hyperinflation. Needless to say, this type of counterfeiting would fundamentally harm the integrity of the currency and render it worthless.

Conventional digital money systems solve this double-spending problem through a trusted party, like a bank or payment processor.

The most straightforward solution, then, is to use an account system. In such a system, all of a bank’s customers have an electronic account at the bank. When one of them wants to pay another, they simply send a message to the bank with the payment details. Assuming the payer has enough funds, the bank subtracts the amount from his or her account and adds it to that of the payee.

If the payer does not have enough funds to complete the payment, the transaction is rejected. So in the event that someone tries to double-spend their balance by sending two conflicting payment requests to the bank (while not having enough funds to make both payments), the bank will simply choose which transaction goes through (presumably the first request it received).

This solves the double-spend problem… but it also exemplifies the privacy issue that Chaum was concerned about: the bank would know exactly who’s paying whom, how much, and when. On top of that, the bank would have total control over everyone’s balances, and could potentially block or revert payments, and even confiscate or delete funds.

Chaum therefore set out to find a way for such a third party—the bank—to detect double-spending, without the ability to trace how each “digital dollar” moves through the economy.

ปัญหาการใช้เงินซ้ำ

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

อย่างง่ายๆ ก็คือ หากสกุลเงินประกอบด้วยข้อมูลดิจิทัลล้วนๆ เลข 1 และ 0 จะทำสำเนาได้ง่าย "ดอลลาร์ดิจิทัล" หนึ่งหน่วยสามารถทำซ้ำและส่งไปยังผู้รับสองคนที่แตกต่างกัน... หรือแม้แต่ผู้รับนับล้านคน จนถึงจุดที่เงินประสบปัญหาเงินเฟ้อสูง ไม่ต้องพูดถึงว่าการปลอมแปลงประเภทนี้จะส่งผลเสียต่อความสมบูรณ์ของสกุลเงินอย่างรุนแรงและทำให้มันไร้ค่า

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

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

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

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

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

Last updated