ปลั๊กอิน Obsidian Note Codes เผชิญปัญหา Birthday Paradox กับระบบแฮช 4 ตัวอักษร

ทีมชุมชน BigGo
ปลั๊กอิน Obsidian Note Codes เผชิญปัญหา Birthday Paradox กับระบบแฮช 4 ตัวอักษร

ปลั๊กอินใหม่ของ Obsidian ที่ชื่อ Note Codes ได้จุดประกายการถกเถียงอย่างเข้มข้นในชุมชนเกี่ยวกับแนวทางการสร้างตัวระบุสั้นๆ สำหรับโน้ต ปลั๊กอินนี้สร้างรหัส 4 ตัวอักษรเช่น AB-CD เพื่อช่วยให้ผู้ใช้สามารถอ้างอิงโน้ตดิจิทัลของตนในสมุดบันทึกที่เขียนด้วยลายมือและระบบภายนอกอื่นๆ ได้อย่างรวดเร็ว อย่างไรก็ตาม การอภิปรายทางเทคนิคได้เผยให้เห็นปัญหาทางคณิตศาสตร์พื้นฐานที่อาจจำกัดประโยชน์ใช้สอยของมัน

ข้อมูลจำเพาะทางเทคนิค:

  • รูปแบบโค้ด: อักขระตัวเลขและตัวอักษร 4 ตัว (XX-XX)
  • อัลกอริธึมแฮช: SHA-256 (ใช้ 20 บิตแรก)
  • การเข้ารหัส: Base32 ของ Douglas Crockford
  • อักขระที่ไม่รวม: 0, I, L, U (เพื่อความชัดเจน)
  • ตัวจัดการโปรโตคอล: obsidian://note-codes/open?code=XX-XX
ภาพหน้าจอของแอปพลิเคชัน Obsidian ที่แสดงบันทึก แสดงให้เห็นบริบทการจดบันทึกแบบดิจิทัลที่เกี่ยวข้องกับปลั๊กอิน Note Codes
ภาพหน้าจอของแอปพลิเคชัน Obsidian ที่แสดงบันทึก แสดงให้เห็นบริบทการจดบันทึกแบบดิจิทัลที่เกี่ยวข้องกับปลั๊กอิน Note Codes

Birthday Paradox โจมตีอีกครั้ง

ความท้าทายที่ใหญ่ที่สุดของปลั๊กอินนี้อยู่ที่คณิตศาสตร์ความน่าจะเป็นพื้นฐาน สมาชิกชุมชนได้ระบุอย่างรวดเร็วว่าระบบ 4 ตัวอักษรที่ใช้ข้อมูลแฮช 20 บิตสร้างการผสมผสานที่เป็นไปได้เพียงประมาณ 1 ล้านแบบเท่านั้น แม้ว่าจำนวนนี้จะฟังดูเยอะ แต่ birthday paradox ทำให้การชนกันเป็นไปได้มากกว่าที่คาดหวัง

ด้วยโน้ตเพียง 500 ชิ้นใน vault ผู้ใช้จะเผชิญกับโอกาสประมาณ 10% ที่โน้ตสองชิ้นจะใช้รหัสเดียวกัน ที่ 900 โน้ต สัดส่วนนี้เพิ่มขึ้นเป็น 33% และเมื่อถึง 1,200 โน้ต การชนกันจะมีแนวโน้มเกิดขึ้นมากกว่าไม่เกิดขึ้น ตัวเลขเหล่านี้แสดงถึงขนาด vault ที่สมจริงสำหรับผู้ใช้ Obsidian หลายคน ทำให้ปัญหาการชนกันเป็นข้อกังวลในทางปฏิบัติมากกว่าความกังวลเชิงทฤษฎี

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

ความน่าจะเป็นของการชนกันตามขนาดของ Vault:

  • 500 โน้ต: มีโอกาสชนกันประมาณ 10%
  • 900 โน้ต: มีโอกาสชนกันประมาณ 33%
  • 1,200 โน้ต: มีโอกาสชนกันมากกว่า 50%
  • รหัสที่เป็นไปได้ทั้งหมด: 1,048,576 (32^4)

ปรัชญาการออกแบบสร้างข้อกังวลเพิ่มเติม

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

ฉันเข้าใจแนวคิดของการกำหนดตัวระบุสั้นๆ ให้กับสิ่งต่างๆ แต่แล้วทำไมฉันถึงอยากให้ ID นั้นเปลี่ยนแปลงเมื่อฉันเปลี่ยนคุณสมบัติสุ่มๆ เกี่ยวกับโน้ต?!

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

แนวทางทางเลือกและกรณีการใช้งาน

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

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

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

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

อ้างอิง: Obsidian Note Codes