- โดยดั้งเดิมแล้วโอเพนซอร์สทำงานอยู่บนโมเดล trust and verify
- เมื่อเครื่องมือ AI แพร่หลาย กำแพงการเข้ามามีส่วนร่วมแทบหายไป, โมเดลความไว้วางใจโดยนัยแบบเดิมจึงใช้งานไม่ได้อีกต่อไป
- เป็นระบบจัดการความน่าเชื่อถือสำหรับโอเพนซอร์สที่ออกแบบให้ต้อง รับรองความน่าเชื่อถืออย่างชัดเจน (vouch) ก่อนจึงจะเข้าร่วมได้
- ผู้มีส่วนร่วมที่ได้รับความไว้วางใจสามารถ vouch ให้ผู้ใช้อื่นได้ และผู้ไม่หวังดีสามารถถูกบล็อกอย่างชัดเจนด้วย denounce (ประณาม/แจ้งกล่าวโทษ)
- denounce จะถูกเก็บเป็นบันทึกสาธารณะ ทำให้ โปรเจ็กต์อื่นสามารถใช้อ้างอิงได้
- ใครจะ vouch/denounce ให้ใคร และใช้เกณฑ์ใด เป็นสิ่งที่ แต่ละโปรเจ็กต์กำหนดได้เอง
- ระบบไม่ได้บังคับชุดคุณค่าใดเป็นพิเศษ และ การตัดสินใจเชิงนโยบายเป็นหน้าที่ของคอมมูนิตี้
- ข้อมูลความน่าเชื่อถือทั้งหมดถูกเก็บและ จัดการเวอร์ชัน ไปพร้อมกับโค้ดในรูปแบบ ไฟล์ข้อความธรรมดาไฟล์เดียว (VOUCHED) ภายในรีโพซิทอรี เพื่อรับประกันความโปร่งใสและการพกพา
- ในระยะยาวมีโครงสร้างเพื่อแบ่งปันข้อมูลความน่าเชื่อถือผ่านการสร้าง เครือข่ายความไว้วางใจ (Web of Trust) ระหว่างโปรเจ็กต์
- โปรเจ็กต์ปลายทางสามารถ เลือกได้เอง ว่าจะยอมรับการตัดสินของโปรเจ็กต์ต้นทางตามนั้นหรือไม่
- โปรเจ็กต์ที่ vouch/denounce อย่างไม่ไตร่ตรองสามารถ ถูกกันออกจากเครือข่ายความไว้วางใจโดยธรรมชาติได้
- เชื่อมต่อได้ง่าย ผ่าน GitHub Actions และสามารถจัดการจากคอมเมนต์ใน issue หรือ PR ด้วยคีย์เวิร์ดอย่าง
lgtm, denounce
- Ghostty ได้ เปลี่ยนโมเดลการมีส่วนร่วม มาเป็นระบบแบบ vouch
- พัฒนาโดยได้แรงบันดาลใจจากโปรเจ็กต์ Pi และขณะนี้ยังอยู่ใน ขั้นทดลอง
คำสั่งที่มีให้
- ไฟล์ในเครื่อง
vouch.nu check <user>: ตรวจสอบสถานะ vouch/denounce ของผู้ใช้
vouch.nu add <user>: vouch ให้ผู้ใช้
vouch.nu denounce <user>: denounce ผู้ใช้
- การเชื่อมต่อกับ GitHub
vouch.nu gh-check-pr <pr>: ตรวจสอบสถานะของผู้สร้าง PR และจัดการอัตโนมัติ
vouch.nu gh-manage-by-issue <issue> <comment>: vouch/denounce ตามคอมเมนต์ใน issue
3 ความคิดเห็น
ดูเหมือนว่าระบบนี้เองก็ต้องได้รับการยอมรับในฐานะผู้มีความน่าเชื่อถือก่อน จึงจะถูกยอมรับได้
ดูเหมือนว่าพอได้รับความสนใจก็มีความเข้าใจผิดอยู่บ้าง เลยแยก FAQ ไว้ต่างหาก
https://x.com/mitchellh/status/2020628046009831542
ความเห็นจาก Hacker News
ผมคิดว่าการสมมติว่า ผู้ใช้ที่เชื่อถือได้ ในโปรเจกต์หนึ่งจะถูกเชื่อถือโดยอัตโนมัติในอีกโปรเจกต์หนึ่งเป็นเรื่องอันตราย
โครงสร้างแบบนี้อาจถูกนำไปใช้โจมตีแบบ supply chain attack ได้ เพราะผู้โจมตีสามารถสั่งสมความน่าเชื่อถือในฐานะ ‘ผู้มีส่วนร่วมที่ดูดี’ ในหลายโปรเจกต์ แล้วค่อยเข้าถึงโปรเจกต์เป้าหมาย
ถ้าความเชื่อถือข้ามโปรเจกต์แบบนี้ถูกทำให้เป็นอัตโนมัติ บัญชีที่เคยได้รับความเชื่อถือเพียงครั้งเดียวก็อาจกลายเป็นเป้าหมายของการโจมตีได้ ผมว่าการเริ่มจาก ‘รายการไม่ไว้วางใจ’ น่าจะปลอดภัยกว่าการมี ‘รายการไว้วางใจ’
ผมคิดว่าถ้าเก็บ ค่าใช้จ่าย $1 สำหรับการส่ง PR ก็น่าจะดี
ถ้า PR ใช้ได้จริง ผู้ดูแลค่อยคืนเงินให้
ตอนนี้การสื่อสารมันง่ายเกินไปจนมี การสื่อสารคุณภาพต่ำ ล้นไปหมด ของพวกนี้ไม่ใช่แค่ไร้ค่า แต่เป็น โทษที่คอยกัดกินเวลา
ผมสงสัยว่าถ้าผู้มีส่วนร่วมหน้าใหม่ไม่มีเครือข่ายเลย จะ ฝ่ากำแพงการเข้าสู่ระบบนี้ได้อย่างไร
ถึงจะมีเสียงรบกวนจาก AI เยอะ แต่นี่ก็ไม่ใช่วิธีแก้
ผมไม่เห็นด้วยกับคำพูดที่ว่า “โอเพนซอร์สทำงานอยู่บน ระบบที่เชื่อใจและตรวจสอบ”
ตามอุดมคติแล้วควรประเมินจากโค้ดได้ด้วยตัวมันเอง
เวลาผมดู PR ผมใช้เวลาไม่กี่วินาทีก็ตัดสินได้ว่าจะ merge หรือไม่ เรื่องยากคือ การเขียนเหตุผลปฏิเสธอย่างสุภาพ
(อ้างอิง: ที่เก็บ openpilot)
ผมสงสัยว่าโปรเจกต์ Vouch จะป้องกันไม่ให้กลายเป็น ฟองสบู่ปิดแบบ Bluesky ได้อย่างไร
หลังการเลือกตั้ง Bluesky ก็ยิ่งหดตัวลงเรื่อย ๆ การทำ social filtering แบบนี้อาจขัดขวางผู้มีส่วนร่วมหน้าใหม่ได้
อีกอย่าง จุดประสงค์ของ Vouch ก็คือ การเพิ่มกำแพงการเข้าถึง ตั้งแต่แรก ดังนั้นคงไม่ได้กังวลเรื่องนี้มากนัก
มีคนประชดว่าระบบแบบนี้คงไม่มีทางถูกนำไปใช้ผิดใน ชุมชนโอเพนซอร์สที่ไร้ดราม่า อย่างแน่นอน
แอบสงสัยว่ามีการแชร์ รายชื่อนักพัฒนาที่ถูกแบล็กลิสต์ กันแล้วหรือยัง
ผมคิดว่าระบบแบบ อิงความเชื่อถือ จะทำงานได้ก็ต่อเมื่อมัน มีความเสี่ยงกำกับอยู่ด้วย
ถ้าผมรับรองใครสักคนแล้วเขาสร้างปัญหา ชื่อเสียงของผมก็ควรลดลงด้วย
ในทางกลับกัน ถ้าผมกล่าวหาใครโดยไม่มีเหตุผล แล้วคนนั้นจริง ๆ ไม่มีปัญหา คะแนนชื่อเสียงของผมก็ควรถูกหัก
ไม่อย่างนั้น การรับรองจะถูกใช้แบบไม่ต้องรับผิดชอบและเกินขอบเขต
โครงสร้างแบบนี้อาจทำได้ด้วย trust graph บนบล็อกเชน
ระบบนี้ให้ความรู้สึกคล้าย แอปหาคู่
มี คนไม่เหมาะสมที่กระตือรือร้นเกินไป จำนวนมากที่ต้องกรองออก และสุดท้ายก็น่าจะเกิดรูปแบบอย่าง การเข้าร่วมแบบเสียเงิน, อิงตำแหน่งที่ตั้ง, ยืนยันตัวตน, ให้คะแนนทางสังคม
ทุกวันนี้มีคนที่อยากสร้างชื่อใน GitHub จนส่ง คำขอมีส่วนร่วมที่ไร้ความหมาย มาถี่ยิบ ซึ่งชวนให้เหนื่อยมาก
ผมลองจินตนาการถึง forge แบบมินิมอลที่เหลือไว้เฉพาะสิ่งที่ Git ทำไม่ได้โดยพื้นฐาน
แกนสำคัญคือ Identity , Attestation ที่มีลายเซ็น และ Policy
Vouch จัดการกับลายเซ็นที่ผูกกับตัวบุคคล — ลายเซ็นว่า “คนนี้เชื่อถือได้” มีโครงสร้างแบบเดียวกับลายเซ็นว่า “คอมมิตนี้ผ่านการทดสอบแล้ว”
กล่าวคือมันคือ ชั้นนโยบายที่ควบคุมการมีส่วนร่วมตั้งแต่ต้นทาง
ฟังก์ชันแบบนี้ควรอยู่ในรูปของ metadata ภายใน repo ไม่ใช่ผูกอยู่กับแพลตฟอร์มปิดอย่าง GitHub
ผมสงสัยว่าอีก 5 ปีข้างหน้าแนวคิดนี้จะพัฒนาไปได้ไกลแค่ไหน
ในยุคที่โค้ดจาก LLM เพิ่มขึ้นเรื่อย ๆ โครงสร้างพื้นฐานด้าน ชื่อเสียง แบบนี้อาจกลายเป็นองค์ประกอบจำเป็นของอินเทอร์เน็ต
ตอนแรกมันดูโอเค แต่สุดท้ายก็ดูเหมือนจะลงเอยเป็นโครงสร้างแบบ “เฉพาะคนที่ได้รับความเชื่อถือแล้วเท่านั้นที่มีส่วนร่วมได้”
(killfile wiki, DNS blocklist)