The Registry

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

The Registry

So who would maintain the registry?

Szabo understood that any single entity maintaining the registry would be a trusted third party. Although even this TTP would be unable to forge proof of work—anyone could instantly recognize the hashes as invalid—it could potentially still double-spend them, or censor transactions, or maybe even outright steal hashes from other users.

In Szabo’s proposal, the ownership registry would therefore be maintained by a Bit Gold “property club.” This property club consisted of “club members” (or internet servers), that would replicate the ownership registry between them, and collectively keep track of who owns what. If any of the club members would try to cheat or steal, the other club members would notice and reject this transfer, thus distributing trust between them.

Szabo proposed to implement this using the same types of distributed computing protocols he envisioned for smart contracts. Detailed in his paper “Secure Property Titles with Owner Authority,” these designs were best understood as advanced voting systems: as long as most servers remained honest, they would achieve consensus over the state of the registry. If only a minority of the servers would fail or fall out of line, the system as a whole should continue to operate fine.

This wasn’t perfect; the Byzantine Generals Problem had not been fully solved. Particularly nasty problems could occur if the registry were to be Sybil-attacked, a computer system attack where one malicious person would pretend to be many different participants and overwhelm the voting procedures. (The “sock puppet problem,” as Szabo would later describe it.)

Still, Szabo believed that this could work itself out. He suggested that even in the scenario where a majority of club members would attempt to cheat, the registry would be public, so cryptographic proofs like (the lack of) valid signatures could be used to inform Bit Gold users of this misconduct, and the honest minority of registry maintainers could branch off to create a competing ownership registry. Given the choice between a provably dishonest majority registry or an honest minority registry, Szabo figured users would probably prefer the latter.

“If the rules are violated by the winning voters, the correct losers can exit the group and reform a new group, inheriting the old titles,” he explained. “Users of the titles (relying parties) who wish to maintain correct titles can securely verify for themselves which splinter group has correctly followed the rules and switch to the correct group.”

Szabo knew that it wasn’t the most elegant solution, and some important questions remained unanswered: in the case of a double-spend attack, how would users that were offline when it happened know which transaction came first? And by extension, if this double-spend would result in the creation of a competing registry because different property club members saw different transactions first, how would these users know which one is “correct”?

Still, this was in Szabo’s mind a better solution than relying on a trusted third party.

ทะเบียน

แล้วใครจะเป็นผู้ดูแลทะเบียนล่ะ?

ซาโบเข้าใจว่าหน่วยงานเดี่ยวใดๆ ที่ดูแลทะเบียนจะเป็นบุคคลที่สามที่เชื่อถือได้ (trusted third party) แม้ว่าแม้แต่ TTP นี้จะไม่สามารถปลอมแปลง proof of work ได้ก็ตาม ใครก็ตามจะสามารถรู้ได้ทันทีว่า hash ไม่ถูกต้อง แต่มันก็ยังมีโอกาสที่จะใช้จ่ายซ้ำ (double-spend) หรือเซ็นเซอร์ธุรกรรม หรืออาจแม้กระทั่งขโมย hash จากผู้ใช้รายอื่นไปเลยก็ได้

ในข้อเสนอของซาโบ ทะเบียนกรรมสิทธิ์จะถูกดูแลโดย "ชมรมทรัพย์สิน" (property club) ของ Bit Gold ชมรมทรัพย์สินนี้ประกอบด้วย "สมาชิกชมรม" (หรือเซิร์ฟเวอร์อินเทอร์เน็ต) ที่จะทำสำเนาทะเบียนกรรมสิทธิ์ระหว่างกัน และร่วมกันติดตามว่าใครเป็นเจ้าของอะไร หากสมาชิกชมรมคนใดพยายามโกงหรือขโมย สมาชิกชมรมคนอื่นๆ จะสังเกตเห็นและปฏิเสธการโอนนี้ ทำให้ความไว้วางใจกระจายไประหว่างพวกเขา

ซาโบเสนอให้ใช้โปรโตคอลการประมวลผลแบบกระจายประเภทเดียวกับที่เขาวาดภาพไว้สำหรับสัญญาอัจฉริยะ (smart contracts) รายละเอียดในบทความของเขาเรื่อง "Secure Property Titles with Owner Authority" การออกแบบเหล่านี้เข้าใจได้ดีที่สุดในฐานะระบบการลงคะแนนขั้นสูง ตราบใดที่เซิร์ฟเวอร์ส่วนใหญ่ยังคงซื่อสัตย์ พวกมันจะบรรลุฉันทามติ (consensus) เกี่ยวกับสถานะของทะเบียน หากมีแค่เซิร์ฟเวอร์ส่วนน้อยที่ล้มเหลวหรือออกนอกลู่นอกทาง ระบบโดยรวมก็ควรทำงานต่อไปได้ดี

นี่ไม่ใช่วิธีที่สมบูรณ์แบบ ปัญหา Byzantine Generals ยังไม่ได้รับการแก้ไขอย่างสมบูรณ์ ปัญหาที่ร้ายแรงอาจเกิดขึ้นได้หากทะเบียนถูกโจมตีแบบ Sybil ซึ่งเป็นการโจมตีระบบคอมพิวเตอร์ที่คนไม่หวังดีคนหนึ่งจะแสร้งทำเป็นผู้เข้าร่วมหลายคนและกดดันกระบวนการลงคะแนน (ปัญหา "sock puppet" ตามที่ซาโบจะเรียกในภายหลัง)

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

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

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

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

Last updated