Distributing Trust

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

Distributing Trust

It had only been in the process of making the case that the problem was unsolvable that Stornetta realized that they were, in fact, wrong—at least technically.

Stornetta and Haber had concluded that adding more entities to perform checks on the time-stamping service doesn’t solve the problem of trust—it just changes how big the collusion would have to be. Indeed, this seems logically true, and in most cases is indeed true.

But Stornetta now realized there is an exception to this rule: if everyone checks the time-stamping service, no one can collude: there would not be anyone left to collude against. As long as everybody watches everybody else, there is no trusted party at all!

Or as Stornetta put it:

“If we can essentially create a conspiracy so large that it included the entire world, then we would have in fact inverted the problem and created a trust-free system.”

Now of course, making the group that checks for forgeries so big that it literally includes everyone on earth is rather implausible. Nevertheless, the fresh insight did represent a real breakthrough in Stornetta and Haber’s thinking.

It eventually led to the publication of their 1990 paper “How to Time-Stamp a Digital Document.” Breaking new grounds in the field of digital time-stamping, the paper outlined two slightly different proposals.

The first proposal closely resembled their hash chain backbone record idea, where the time-stamping service would cryptographically sign and chronologically link each update to the record to prove that it was really the time-stamping service that added the new document, and in what order. But importantly, instead of trusting only the time-stamping service with the backbone record, this backbone record would now be shared with every participant.

The brilliance of this solution was that if the time-stamping service were ever to try to backdate, delete, or otherwise change a previously time-stamped document, any user that kept a copy of the backbone record would notice the change. If the content or the timecodes of a document was altered even slightly, this would completely change the corresponding hash, which would in turn also change every hash that came after it, making it entirely incompatible with the widely distributed record: the time-stamping service would never get away with its attempted forgery.

The second solution described by Stornetta and Haber even eliminated the time-stamping service altogether. In this variant, a group of participating users would take turns to add a new document to the hash chain. Whenever someone would want to time-stamp a document, the randomness of the hash of that document itself would be used to determine which participant should sign it, as if it were some type of hash lottery.

Featuring not one, but two ingenious proposals—one even more trust-minimized than the other—Stornetta and Haber’s paper represented a big leap forward for digital time-stamping. That said, hash chains did present a new problem: they didn’t scale particularly well, especially when considering the modest computational resources available to an average computer user in the early 1990s. With one new hash for each document added to the backbone record, the participating users would over time need to store quite a lot of data if these systems were to catch on in a big way.

And as these users would need to store increasingly more data in order to participate, more of them would likely opt out and instead just trust the record held by the time-stamping service and other users, which would in turn reintroduce trust into these systems: to really be secure, the time-stamping scheme explicitly depended on broad participation.

It was mathematician Dave Bayer who helped resolve this conundrum, with Merkle Trees.

การกระจายความไว้วางใจ

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

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

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

หรือดังที่สตอร์เนตตากล่าวไว้:

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

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

ในที่สุดมันนำไปสู่การตีพิมพ์บทความ "วิธีการประทับเวลาเอกสารดิจิทัล" (How to Time-Stamp a Digital Document) ในปี 1990 โดยบทความนี้ได้วางรากฐานใหม่ในสาขาการประทับเวลาดิจิทัล และได้เสนอแนวคิดที่แตกต่างกันเล็กน้อยสองข้อ

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

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

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

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

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

เดฟ เบเยอร์ นักคณิตศาสตร์เป็นผู้ช่วยแก้ปัญหานี้ ด้วยต้นไม้แบบเมอร์เคิล (Merkle Trees)

Last updated