Wednesday, March 25, 2026
HomeUncategorizedใต้ไบนารี ยืนยันความน่าเชื่อถือ

ใต้ไบนารี ยืนยันความน่าเชื่อถือ


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

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

ในช่วงเวลาที่การโจมตีห่วงโซ่อุปทานของซอฟต์แวร์กลายเป็นหัวข้อข่าวไปทั่วโลก ตั้งแต่แพ็คเกจ npm ที่ถูกบุกรุก ไลบรารีแบ็คดอร์ เซิร์ฟเวอร์ CI อันธพาล กระบวนการสร้างของ Bitcoin Core ถือเป็นโครงการเงียบที่มีระเบียบวินัย วิธีการของมันอาจดูช้าและซับซ้อนเมื่อเทียบกับความสะดวกสบายแบบ “พุชเพื่อปรับใช้” ที่ราบรื่น แต่นั่นคือประเด็น การรักษาความปลอดภัยไม่สะดวก

เพื่อทำความเข้าใจระบบการสร้าง Bitcoin Core เราควรเข้าใจ:

  • ปรัชญาระบบการสร้างของ Bitcoin Core
  • งานสร้างที่ทำซ้ำได้
  • ลดการพึ่งพาอาศัยกัน
  • ไม่มีการอัปเดตอัตโนมัติ
  • การบูรณาการอย่างต่อเนื่อง
  • การปรับตัวอย่างต่อเนื่อง

ปรัชญาระบบการสร้างของ Bitcoin Core

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

หลักการหนึ่งในระบบนิเวศของ Bitcoin คือ “อย่าเชื่อถือ ตรวจสอบ” การใช้งานโหนดของคุณเองเป็นการตรวจสอบ โดยตรวจสอบทุกบล็อกและธุรกรรมตามกฎที่เป็นเอกฉันท์ แต่ระบบบิลด์นั้นให้โอกาสคุณอีกครั้งในการตรวจสอบในระดับซอฟต์แวร์ Bitcoin คือเงินที่ไม่มีตัวกลางที่เชื่อถือได้ และ Bitcoin Core ทำงานเป็นซอฟต์แวร์โดยไม่มีผู้สร้างที่เชื่อถือได้ ระบบการสร้างใช้เวลานานมากเพื่อให้แน่ใจว่าทุกคน ทุกที่ สามารถสร้างไบนารีเดียวกันกับที่ปรากฏบน bitcoincore.org เว็บไซต์.

ปรัชญานี้มีต้นกำเนิดมาจากเรียงความของ Ken Thompson ในปี 1984 ภาพสะท้อนเกี่ยวกับความไว้วางใจไว้วางใจซึ่งเตือนว่าแม้แต่ซอร์สโค้ดที่ดูสะอาดตาก็ไม่สามารถเชื่อถือได้หากคอมไพเลอร์ที่สร้างซอฟต์แวร์นั้นถูกบุกรุก นักพัฒนาของ Bitcoin คำนึงถึงบทเรียนนั้น จากคำพูดของ Michael Ford ผู้ร่วมสนับสนุน Bitcoin Core (fanquake):

“การสร้างที่ทำซ้ำได้นั้นมีความสำคัญ เนื่องจากผู้ใช้ซอฟต์แวร์ของเราไม่ควรเชื่อใจว่าสิ่งที่มีอยู่ภายในคือสิ่งที่เราพูด สิ่งนี้จะต้องสามารถตรวจสอบได้โดยอิสระเสมอ”

ข้อความที่เป็นทั้งเป้าหมายทางเทคนิคและเป็นส่วนหนึ่งของหลักจริยธรรมของ Bitcoin

ในโลกแห่งความปลอดภัย ผู้คนพูดถึง “พื้นผิวการโจมตี” ระบบการสร้างของ Bitcoin Core ถือว่ากระบวนการสร้างนั้นเสมือนเป็นพื้นที่การโจมตีที่ต้องย่อเล็กสุดและป้องกัน

บิลด์ที่ทำซ้ำได้: การยืนยันตลอดจนสุด

ขั้นตอนการผลิต Bitcoin Core เริ่มต้นด้วยโค้ดเบสโอเพ่นซอร์สบน GitHub การเปลี่ยนแปลงทุกอย่างเป็นแบบสาธารณะ ทุกคำขอดึงจะได้รับการตรวจสอบ แต่การเดินทางจากมนุษย์สามารถอ่านได้ รหัส สู่ไบนารี่ที่รันได้ ซอฟต์แวร์ เกี่ยวข้องกับคอมไพเลอร์ ไลบรารีบุคคลที่สาม และระบบปฏิบัติการซึ่งเป็นพาหะที่เป็นไปได้สำหรับการงัดแงะ แบ็คดอร์ หรือข้อผิดพลาด

บุคคลที่สามที่เชื่อถือได้ถือเป็นช่องโหว่ด้านความปลอดภัย– นิค ซาโบ (2001)

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

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

จากนั้นผู้มีส่วนร่วมจะลงนามในไบนารี่ผลลัพธ์แบบเข้ารหัสและเผยแพร่ลายเซ็นเหล่านั้นบนพื้นที่เก็บข้อมูล GitHub แยกต่างหาก ‘guix.sigs’ ซึ่งแสดงรายการการรับรองเหล่านี้สำหรับ Bitcoin Core แต่ละรุ่น ผู้สร้างบางรายเป็นนักพัฒนา Bitcoin Core แต่ก็ไม่จำเป็น เนื่องจากกระบวนการรับรองเปิดให้บุคคลทั่วไปเข้าชมได้ ที่จริงแล้ว ผู้ที่ไม่ร่วมเขียนโค้ดจำนวนมากมักร่วมสนับสนุนลายเซ็น

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

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

ไบนารีอย่างเป็นทางการบน bitcoincore.org ไม่ใช่แค่ “ผลิตโดยผู้ดูแล Bitcoin Core” เท่านั้น เป็นจุดตัดของผลงานของผู้สร้างอิสระหลายสิบราย สิ่งที่คุณดาวน์โหลดในที่สุดคือสิ่งที่คนอื่นสร้างและยืนยันว่าเป็นของแท้

เป็นการยืนยันตลอดทาง

ลดการพึ่งพา: ไว้วางใจน้อยลง

ความสามารถในการทำซ้ำเป็นด้านหนึ่งของสมการ อีกประการหนึ่งคือการลดสิ่งที่จำเป็นต้องทำซ้ำให้เหลือน้อยที่สุด รหัสของ Bitcoin Core ไม่ใช่รหัสเดียวที่ดำเนินการเมื่อใช้ Bitcoin Core Bitcoin Core ยังอาศัยโค้ดและไลบรารีภายนอกเพื่อเร่งการพัฒนาและประสิทธิภาพการทำงาน

ในช่วงทศวรรษที่ผ่านมา นักพัฒนา Bitcoin Core ได้กำจัดการพึ่งพาบุคคลที่สามที่ไม่จำเป็นและบางครั้งก็เป็นปัญหาอย่างต่อเนื่อง เช่น OpenSSL และ MiniUPnP ไม่ว่าจะเป็นไลบรารีภายนอกหรือชุดเครื่องมือ การขึ้นต่อกันเหล่านี้เพิ่มความซับซ้อนหรือนำเข้าสมมติฐานที่ซ่อนอยู่ โปรเจ็กต์อย่าง Enhance และ Libevent ซึ่งครั้งหนึ่งเคยเป็นแก่นของโค้ดเบสของ Core จะค่อยๆ หมดลงหรือแทนที่ด้วยทางเลือกอื่นที่ง่ายกว่าและมีอยู่ในตัวเอง

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

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

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

ในโลกที่ซอฟต์แวร์ส่วนใหญ่มีน้ำหนักมากขึ้นและขึ้นอยู่กับระบบนิเวศแพ็คเกจแบบรวมศูนย์มากขึ้น Bitcoin Core กำลังเคลื่อนไปในทิศทางตรงกันข้าม: ไปสู่ความเรียบง่ายและความเป็นอิสระ

ไม่มีการอัปเดตอัตโนมัติ

ในซอฟต์แวร์สมัยใหม่ส่วนใหญ่ ผู้ใช้จะได้รับการปกป้องจากการตัดสินใจว่าจะอัปเดตซอฟต์แวร์เวอร์ชันใด หรือตัดสินใจอัปเดตซอฟต์แวร์เลย คุณติดตั้งแอป และแอปจะอัปเดตตัวเองเป็นเวอร์ชันล่าสุดในเบื้องหลังโดยอัตโนมัติและเงียบๆ แม้ว่าวิธีนี้จะสะดวก แต่ก็ขัดแย้งกับปรัชญาของ Bitcoin Core

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

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

การบูรณาการอย่างต่อเนื่อง: เคลื่อนไหวช้าๆ และแก้ไขสิ่งต่างๆ

ในซิลิคอนวัลเลย์ การบูรณาการอย่างต่อเนื่องและการปรับใช้อย่างต่อเนื่อง (CI/CD) ถือเป็นจุดเด่นของการพัฒนาซอฟต์แวร์แบบอไจล์ ส่งเร็ว. ทำซ้ำได้เร็วขึ้น ปล่อยให้ระบบอัตโนมัติจัดการที่เหลือ

Bitcoin Core ใช้แนวทางที่แตกต่างออกไป ระบบ CI ไม่ได้มีไว้เพื่อเร่งการปรับใช้ แต่เพื่อปกป้องความสมบูรณ์ สร้างความสอดคล้องในการทดสอบข้ามแพลตฟอร์มโดยอัตโนมัติ ระบบการสร้างของ Bitcoin Core ได้รับการออกแบบให้ไม่เชื่อเรื่องฮาร์ดแวร์และระบบปฏิบัติการให้มากที่สุด โปรเจ็กต์สามารถสร้างไบนารีสำหรับ Linux, macOS และ Home windows รวมถึงสถาปัตยกรรมหลายตัว รวมถึง x86_64, aarch64 (ARM) และแม้แต่ riscv64 ระบบบูรณาการอย่างต่อเนื่องช่วยให้มั่นใจถึงความเข้ากันได้และความสมบูรณ์ของซอฟต์แวร์โดยทำการทดสอบหลายร้อยครั้งสำหรับการเปลี่ยนแปลงที่เสนอแต่ละรายการ

ผลลัพธ์ที่ได้คือวัฒนธรรมที่ “การบูรณาการอย่างต่อเนื่อง” หมายถึงการทดสอบ การตรวจสอบ และการรักษาความปลอดภัยอย่างต่อเนื่อง ไม่ใช่การสร้างนวัตกรรมอย่างต่อเนื่อง

เคลื่อนไหวช้าๆและแก้ไขสิ่งต่างๆ

การปรับตัวอย่างต่อเนื่อง: เราเสร็จแล้วหรือยัง?

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

ในขณะที่ระบบการสร้างของ Bitcoin Core มุ่งมั่นเพื่อการกำหนดระดับ แต่ระบบการสร้างเองก็ไม่สามารถคงที่ได้ โลกที่ดำเนินการภายในมีการเปลี่ยนแปลงอยู่ตลอดเวลา ระบบปฏิบัติการ คอมไพเลอร์ ไลบรารี และสถาปัตยกรรมฮาร์ดแวร์ล้วนเปลี่ยนแปลงไป macOS หรือ glibc ใหม่แต่ละรุ่น ทุกการเลิกใช้งานแฟล็กคอมไพเลอร์ หรือสถาปัตยกรรม CPU ที่เกิดขึ้นใหม่ ทำให้เกิดความไม่เข้ากันเล็กน้อยซึ่งต้องได้รับการแก้ไข ระบบการสร้างที่หยุดนิ่งจะยุติการสร้างเลยเมื่อเวลาผ่านไป

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

รับสำเนา The Core Problem ของคุณวันนี้!

อย่าพลาดโอกาสในการเป็นเจ้าของ ประเด็นหลัก — นำเสนอบทความที่เขียนโดย Core Builders หลายคนที่อธิบายโครงการที่พวกเขาทำด้วยตัวเอง!

งานชิ้นนี้เป็นจดหมายจากบรรณาธิการที่นำเสนอล่าสุด พิมพ์ นิตยสาร Bitcoin ฉบับ The Core Problem เรากำลังแชร์แนวคิดนี้ที่นี่เพื่อเป็นการดูแนวคิดต่างๆ ที่ได้รับการสำรวจในฉบับเต็มตั้งแต่เนิ่นๆ

(1) https://brink.dev/weblog/2025/09/19/minimizing-dependencies/

RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

ความเห็นล่าสุด