ลายมือของ Vitalik Buterin: ปรัชญาของการตรวจสอบ Blockchain
หมายเหตุบรรณาธิการ: บทความนี้มาจากการเงินทองพิมพ์ซ้ำโดย Odaily โดยได้รับอนุญาต
หมายเหตุบรรณาธิการ: บทความนี้มาจาก
การเงินทอง
Vitalik Buterin ผู้ร่วมก่อตั้ง Ethereum เผยแพร่เอกสาร "The Philosophy of Blockchain Verification" บนเว็บไซต์ส่วนตัวของเขาเมื่อวันที่ 17 สิงหาคม Jinse Finance ได้รวบรวมเอกสารดังต่อไปนี้:
เหตุใดจึงต้องตรวจสอบบล็อคเชน
หนึ่งในคุณสมบัติที่ทรงพลังที่สุดของบล็อกเชนคือความสามารถในการตรวจสอบการดำเนินการของบล็อกเชนแต่ละส่วนโดยอิสระ แม้ว่าผู้ขุดบล็อกเชนส่วนใหญ่ (หรือผู้ตรวจสอบความถูกต้องในบล็อกเชนที่พิสูจน์การถือหุ้น) จะถูกควบคุมโดยผู้โจมตี หากผู้โจมตีพยายามผลักบล็อกที่ไม่ถูกต้อง เครือข่ายก็จะปฏิเสธบล็อกเหล่านั้น แม้ว่าผู้ใช้จะไม่ได้ตรวจสอบความถูกต้องของบล็อกเหล่านั้นภายในระยะเวลาหนึ่ง พวกเขาอาจได้รับการเตือนโดยอัตโนมัติ และสามารถตรวจสอบได้ว่าบล็อกเชนของผู้โจมตีไม่ถูกต้องหรือไม่ และปฏิเสธบล็อกเหล่านั้นโดยอัตโนมัติก่อนที่จะยอมรับเชนตามกฎ
แต่เราต้องการการตรวจสอบความถูกต้องมากแค่ไหน? คุณต้องการผู้ตรวจสอบอิสระหนึ่งร้อยคน หรือผู้ตรวจสอบอิสระหนึ่งพันคนหรือไม่ เราต้องการวัฒนธรรมที่คนปกติทุกคนในโลกใช้ซอฟต์แวร์เพื่อตรวจสอบทุกธุรกรรมหรือไม่? การแก้ปัญหาข้างต้นจะเป็นความท้าทายที่สำคัญมาก หากเราต้องการสร้างบล็อกเชนที่มีกลไกฉันทามติที่ดีกว่าเชนพิสูจน์การทำงานแบบเดี่ยวที่สร้างโดย "Satoshi Nakamoto"
ชื่อเรื่องรอง
เหตุใดจึงต้องตรวจสอบบล็อคเชน
การตรวจสอบ blockchain มีประโยชน์อย่างมากต่อผู้ใช้ด้วยเหตุผลหลักสองประการ:
1. ก่อนอื่น การตรวจสอบ blockchain ช่วยเพิ่มโอกาสสูงสุดที่โหนดสามารถระบุได้อย่างถูกต้องว่าพูดบน canonical chain บล็อกเชนที่ถูกต้องกับนักขุด/ผู้ตรวจสอบส่วนใหญ่ที่สนับสนุนเชนนั้น" (เช่น "เชนที่ถูกต้องยาวที่สุด" ใน Bitcoin) เชนที่ไม่ถูกต้องจะถูกปฏิเสธตามคำจำกัดความ และหากมีการเลือกระหว่างเชนที่ถูกต้องหลายตัว เชนที่ได้รับการสนับสนุนจากนักขุด/ผู้ตรวจสอบความถูกต้องมากที่สุดจะเป็นผู้ชนะ ดังนั้น หากคุณมีโหนดที่สามารถตรวจสอบเงื่อนไขความถูกต้องทั้งหมดได้ ดังนั้นการตรวจสอบเชนใดที่ถูกต้องและไม่ถูกต้อง คุณจะเพิ่มโอกาสสูงสุดในการตรวจจับเชนบัญญัติอย่างถูกต้อง
2. ประการที่สอง มีเหตุผลลึกกว่านั้นในการตรวจสอบความถูกต้องของบล็อกเชน: สมมติว่าผู้มีอิทธิพลพยายามผลักดันการเปลี่ยนแปลงโปรโตคอล (เช่น การเปลี่ยนแปลงการออกโทเค็น) และได้รับการสนับสนุนจากนักขุดส่วนใหญ่ หากไม่มีใครอื่น ตรวจสอบความถูกต้องของ blockchain การโจมตีนี้ประสบความสำเร็จได้ง่ายเพราะลูกค้าของทุกคนยอมรับ chain ใหม่โดยค่าเริ่มต้น และเมื่อผู้คนเห็นว่าเกิดอะไรขึ้น ผู้คัดค้านจะพยายามประสานการปฏิเสธ chain นั้น อย่างไรก็ตาม หากผู้ใช้ทั่วไปกำลังตรวจสอบ ปัญหาการประสานงานก็จะตกอยู่ที่อีกด้านหนึ่ง ผู้ที่พยายามเปลี่ยนแปลงข้อตกลงจะต้องรับผิดชอบต่อการโน้มน้าวใจให้ผู้ใช้ดาวน์โหลดซอฟต์แวร์แพตช์เพื่อยอมรับข้อตกลง
หากมีผู้ใช้เพียงพอในการตรวจสอบ ความสับสนและข้อโต้แย้งที่ไม่จำเป็นเกี่ยวกับการบังคับเปลี่ยนแปลงโปรโตคอลจะถูกหลีกเลี่ยง ความโกลาหลสามารถสร้างความเสียหายได้มากและต้องอาศัยการประสานงานทางสังคมนอกวงเพื่อแก้ไข ไม่มีแรงจูงใจในการโจมตี หากผู้ใช้ส่วนใหญ่กำลังตรวจสอบความถูกต้อง (ทั้งทางตรงและทางอ้อม) และการโจมตีได้รับการสนับสนุนโดยนักขุดส่วนใหญ่เท่านั้น การโจมตีจะเป็นค่าเริ่มต้นโดยสมบูรณ์ที่ล้มเหลว ซึ่งเป็นผลลัพธ์ที่ดีที่สุด
ชื่อเรื่องรอง
การกำหนดมุมมองเทียบกับการประสานงานมุมมอง
ภาพด้านล่างเป็นตัวอย่างของมุมมอง "ตามคำจำกัดความ" ของ Gavin Andresen:บิตคอยน์อีกมุมมองหนึ่งจาก Wasabi Wallet นั้นตรงไปตรงมามากขึ้นจากมุมมองของการอธิบายว่าทำไมโหนดทั้งหมดจึงมีค่า:
โปรดทราบว่ามุมมองนี้มีสองส่วนหลัก:
1. ตามคำนิยาม เวอร์ชันของเชนที่ไม่ยอมรับสิ่งที่คุณพิจารณาว่าเป็นกฎพื้นฐานและไม่สามารถถ่ายโอนได้นั้นไม่ใช่
บิตคอยน์
(หรือ Ethereum หรือ blockchain อื่น ๆ ) ไม่ว่าจะมีกี่คนที่ยอมรับห่วงโซ่
2. สิ่งสำคัญคือคุณต้องรักษากฎของห่วงโซ่ที่คุณคิดว่ายอมรับได้
อย่างไรก็ตาม ฉันเชื่อว่ามุมมองแบบ "ปัจเจกนิยม" นี้ผิดอย่างมาก เพื่อดูว่าเหตุใด มาดูสถานการณ์ที่เรากลัว: ผู้เข้าร่วมส่วนใหญ่อาจยอมรับการเปลี่ยนแปลงกฎของโปรโตคอลที่คุณพิจารณาว่าไม่สามารถยอมรับได้ ตัวอย่างเช่น ลองนึกภาพว่าเรามีอนาคตที่ค่าธรรมเนียมการทำธุรกรรมต่ำ และเกือบทุกคนตกลงที่จะเปลี่ยนชุดกฎใหม่ที่เพิ่มการออกเพื่อให้บล็อกเชนปลอดภัย แต่คุณดื้อรั้นยังคงเรียกใช้โหนดที่ยังคงบังคับใช้ต่อไป กฎเก่าและแยกไปยังเชนที่แตกต่างจากโหนดส่วนใหญ่
จากมุมมองของคุณเอง คุณยังสามารถใส่โทเค็นในระบบที่ทำงานภายใต้กฎเดิมที่ยอมรับได้ แต่แล้วไงล่ะ? ผู้ใช้รายอื่นจะไม่ยอมรับโทเค็นของคุณเลย และการแลกเปลี่ยนก็จะไม่ยอมรับโทเค็นของคุณเช่นกัน เว็บไซต์ราคาจะแสดงรายการราคาของโทเค็น แต่แหล่งข้อมูลของพวกเขาจะชี้ไปที่โทเค็นในห่วงโซ่ส่วนใหญ่อย่างแน่นอน ดังนั้นโทเค็นของคุณจะไร้ค่า Cryptocurrencies และ blockchains เป็นโครงสร้างทางสังคมโดยพื้นฐาน และพวกมันไม่มีความหมายอะไรเลยถ้าไม่มีใครเชื่อในสิ่งเหล่านี้
แล้วมุมมองทางเลือกคืออะไร? แนวคิดหลักที่นำเสนอในที่นี้คือการมองว่าบล็อกเชนเป็นความปลอดภัยทางวิศวกรรมผ่านปัญหาการประสานงาน
โดยปกติแล้ว ปัญหาการประสานงานส่วนใหญ่ที่เรามีในโลกของเรานั้นเป็นเรื่องแย่ นี่คือตัวอย่างบางส่วน:
2. บางคนคิดว่าสหรัฐอเมริกาอาจจะดีกว่าหากเปลี่ยนมาใช้ระบบเมตริก
3. คนอื่นๆ รู้สึกว่าหากการลดราคาและค่าจ้างทั้งหมดลง 10% ทันทีในกรณีที่เกิดภาวะเศรษฐกิจถดถอยจะช่วยให้ประเทศผ่านพ้นไปได้ การทำเช่นนั้นจะต้องให้ทุกคนเห็นด้วยและมักจะยากที่จะบรรลุผลสำเร็จ
อย่างไรก็ตาม ในการใช้งานบล็อกเชน เราใช้ปัญหาการประสานงานเพื่อประโยชน์ของเรา และความไม่ลงรอยกันที่เกิดจากปัญหาการประสานงานเพื่อต่อต้านการกระทำที่ไม่เหมาะสมของผู้บังคับใช้ส่วนกลาง อีกตัวอย่างหนึ่ง เราสามารถสร้างระบบด้วยพร็อพเพอร์ตี้ X และรับประกันได้ว่าระบบจะรักษาพร็อพเพอร์ตี้ X ไว้เสมอ แต่การเปลี่ยนกฎจาก X เป็นไม่ X จำเป็นต้องมีคนจำนวนมากตกลงที่จะอัปเดตซอฟต์แวร์พร้อมกัน . แม้ว่าผู้บังคับใช้จะบังคับให้มีการเปลี่ยนแปลง แต่ก็คงเป็นเรื่องยากมาก ยากกว่าการที่ผู้ใช้ต้องรับผิดชอบในการประสานงานผู้คัดค้านเพื่อต่อต้านการเปลี่ยนแปลง
โปรดทราบว่ามุมมองนี้มีผลที่ตามมาเป็นพิเศษ: จุดประสงค์หลักของโหนดเต็มของคุณไม่ใช่เพียงเพื่อปกป้องคุณ และในกรณีของ hard fork ที่ถกเถียงกัน ผู้ที่มีโหนดเต็มจะปลอดภัยกว่าคนที่ไม่มีโหนดเต็ม . ตรงกันข้าม ทรรศนะในที่นี้เป็นทรรศนะของภูมิคุ้มกันกลุ่มมากกว่า กล่าวคือ ยิ่งตรวจมาก ความปลอดภัยทุกคนก็มีมาก ยิ่งตรวจแค่ บางคน ผลที่ได้จะทำให้ทุกคนเป็นรายบุคคล ได้รับความคุ้มครองในระดับที่สูงขึ้น
ชื่อเรื่องรอง
ตอนนี้ เราไปยังหัวข้อถัดไป ซึ่งเกี่ยวข้องกับหัวข้ออย่างไลท์ไคลเอ็นต์และชาร์ดดิ้ง: ด้วยการตรวจสอบความถูกต้อง เราจะทำอย่างไรให้สำเร็จ เพื่อทำความเข้าใจเรื่องนี้ ให้ย้อนกลับไปก่อนหน้านี้ หากเกิดการโจมตีบนบล็อกเชน วิธีที่การโจมตีเกิดขึ้นอาจมีลำดับความสำคัญดังต่อไปนี้:
ค่าเริ่มต้นคือความล้มเหลว > ค่าเริ่มต้นคือความโกลาหล > ค่าเริ่มต้นคือชัยชนะ
เครื่องหมาย ">" ในที่นี้หมายถึง "ดีกว่า" อย่างดีที่สุด การโจมตีล้มเหลวโดยสิ้นเชิง อย่างที่สอง การโจมตีทำให้เกิดความโกลาหล และทุกคนไม่เห็นด้วยกับห่วงโซ่ที่ถูกต้อง และอย่างแย่ที่สุด การโจมตีก็สำเร็จ คำถามคือ: ทำไมความโกลาหลจึงดีกว่าชัยชนะมาก อันที่จริง นี่เป็นเรื่องของแรงจูงใจ กล่าวคือ: ความสับสนจะเพิ่มค่าใช้จ่ายของผู้โจมตี ซึ่งหมายความว่าความน่าจะเป็นที่ผู้โจมตีจะชนะอย่างแน่นอนจะลดลงอย่างมาก ดังนั้นผู้โจมตีจึงไม่ได้รับการสนับสนุนให้โจมตีตั้งแต่แรก สภาพแวดล้อมที่วุ่นวายตามค่าเริ่มต้นหมายความว่าผู้โจมตีไม่เพียง แต่จำเป็นต้องชนะในสงครามบล็อกเชนถึง 51% ของการโจมตี แต่ยังโน้มน้าวใจชุมชนให้ทำตาม "สงครามโซเชียล" นี้ซึ่งยากกว่าการเปิดตัวการโจมตี 51% และชนะโดย การโจมตีที่บริสุทธิ์ น่าสนใจน้อยกว่ามาก
เป้าหมายของการตรวจสอบคือการเปลี่ยนจากสถานะเริ่มต้น จากชัยชนะไปสู่ความโกลาหล (ในทางอุดมคติ) และจากความโกลาหลไปสู่ความล้มเหลว (ในอุดมคติน้อยกว่า) หากคุณมีโหนดที่ตรวจสอบความถูกต้องครบถ้วน และผู้โจมตีพยายามพุชเชนที่มีกฎต่างกัน การโจมตีจะล้มเหลว หากบางคนมีโหนดที่ตรวจสอบได้อย่างสมบูรณ์และหลายคนไม่มี การโจมตีอาจนำไปสู่ความโกลาหลได้ อย่างไรก็ตาม ตอนนี้เราต้องคิดถึงคำถามอื่น กล่าวคือ มีวิธีอื่นที่จะทำให้ได้ผลเช่นเดียวกันหรือไม่?
ชื่อเรื่องรอง
Light Clients และ Fraud Proofs
การพัฒนาตามธรรมชาติในทิศทางนี้คือลูกค้ารายย่อยที่มีหลักฐานการฉ้อโกง ไคลเอนต์ blockchain light ส่วนใหญ่ในตลาดปัจจุบันทำงานโดยเพียงแค่ตรวจสอบว่านักขุดส่วนใหญ่สนับสนุนบล็อกเฉพาะ โดยไม่ต้องตรวจสอบว่ามีการบังคับใช้กฎโปรโตคอลอื่น ๆ นั่นคือ ลูกค้าดำเนินการบนสมมติฐานที่น่าเชื่อถือว่านักขุดส่วนใหญ่มีความซื่อสัตย์ ในกรณีที่มีการแยกที่ขัดแย้ง ลูกค้าจะทำตามเชนส่วนใหญ่โดยค่าเริ่มต้น ปล่อยให้เป็นหน้าที่ของผู้ใช้เองในการดำเนินการเชิงรุกหากพวกเขาต้องการปฏิบัติตามกฎเดิม ดังนั้น ลูกค้าระดับเบาที่ถูกโจมตีในวันนี้จึงชนะไปโดยปริยาย แต่ด้วยเทคโนโลยีการป้องกันการฉ้อโกง สิ่งต่างๆ เริ่มดูแตกต่างออกไปมาก
ดังที่แสดงในแผนภาพด้านบน บล็อกแต่ละบล็อกในบล็อกเชนหมายถึงบัญชีเพียงไม่กี่บัญชีเท่านั้น หลักฐานการฉ้อโกงจะมีข้อมูลในบัญชีเหล่านี้พร้อมกับหลักฐานของ Merkle ว่าข้อมูลนี้ถูกต้อง
การกระจายตัว
เทคนิคนี้บางครั้งเรียกว่าการยืนยันแบบไร้สถานะ: ลูกค้าสามารถเก็บเฉพาะส่วนหัวของบล็อกแทนที่จะเป็นฐานข้อมูลสถานะของบล็อกเชนแบบเต็ม และสามารถตรวจสอบบล็อกใดๆ ได้แบบเรียลไทม์โดยขอให้โหนดอื่นๆ พิสูจน์ Merkle ของสถานะที่ต้องการ นอกจากนี้ นอกจากนี้ยังสามารถเข้าถึงรายการการตรวจสอบการบล็อก
ประสิทธิภาพของเทคนิคนี้คือไคลเอ็นต์แบบไลท์จะตรวจสอบบล็อกแบบสแตนด์อโลนก็ต่อเมื่อพวกเขาได้ยินการแจ้งเตือนเท่านั้น (และการแจ้งเตือนสามารถตรวจสอบได้ ดังนั้นหากไคลเอ็นต์แบบเบาได้ยินการแจ้งเตือนที่ผิดพลาด พวกเขาก็สามารถหยุดฟังการแจ้งเตือนของโหนดนั้นได้) ดังนั้นภายใต้สถานการณ์ปกติไคลเอ็นต์แบบไลท์ยังคงเป็นไคลเอ็นต์แบบไลท์ พวกเขาเพียงแค่ตรวจสอบว่าบล็อกใดที่นักขุด/ผู้ตรวจสอบความถูกต้องส่วนใหญ่รองรับ อย่างไรก็ตาม ภายใต้สถานการณ์พิเศษ เช่น เมื่อเชนส่วนใหญ่มีไคลเอ็นต์แบบเบาที่จะไม่ยอมรับการบล็อก ตราบใดที่มีโหนดที่ซื่อสัตย์ในการตรวจสอบการบล็อกที่ฉ้อฉล โหนดจะพบว่าการบล็อกนั้นไม่ถูกต้อง ตราบใดที่ เนื่องจากโหนดนี้ออกอากาศหลักฐานการฉ้อโกง และโหนดอื่นๆ ในเครือข่ายปฏิเสธ
ชื่อเรื่องรอง
การกระจายตัว
Sharding สามารถมองได้ว่าเป็นส่วนขยายตามธรรมชาติของการตรวจสอบเครือข่าย: ในระบบที่แยกส่วน มีธุรกรรมจำนวนมากเกินไปในระบบสำหรับส่วนใหญ่ที่จะคงไว้ซึ่งการตรวจสอบโดยตรง แต่ถ้าระบบได้รับการออกแบบมาอย่างดี ธุรกรรมที่ไม่ถูกต้องใดๆ ก็ตามที่ไม่ถูกต้องสามารถตรวจพบได้ แต่ละบล็อก และ ความไม่ถูกต้องนี้มักจะมีหลักฐานบ่งชี้ถึงการฉ้อฉลที่สามารถแพร่กระจายไปทั่วเครือข่ายได้ เราสามารถนึกถึงเครือข่ายที่ใช้ร่วมกันได้ราวกับว่าทุกคนเป็นไคลเอนต์ขนาดเล็ก และตราบใดที่แต่ละชาร์ดมีจำนวนผู้เข้าร่วมขั้นต่ำที่กำหนด เครือข่ายก็จะมีภูมิต้านทานฝูง
นี่คือสิ่งที่ความสามารถในการตรวจสอบมักจะหมายถึงในโลกแห่งความเป็นจริง ไม่ใช่ทุกคนที่จะตรวจสอบทุกอย่างตลอดเวลา แต่:
(i) แต่ละส่วนมีตามากพอที่จะพบข้อผิดพลาด;
(ii) เมื่อตรวจพบข้อผิดพลาด จะต้องแน่ใจว่าทุกคนสามารถมองเห็นได้อย่างชัดเจน
ที่กล่าวว่าบล็อคเชนสามารถปรับปรุงสิ่งนี้ได้ในระยะยาว แหล่งที่มาของการปรับปรุงโดยเฉพาะอย่างหนึ่งคือ ZK-SNARK (หรือ "การพิสูจน์ความถูกต้อง"): การพิสูจน์การเข้ารหัสของการตรวจสอบที่ถูกต้องซึ่งอนุญาตให้ผู้ผลิตบล็อกพิสูจน์ให้ลูกค้าเห็นว่าบล็อกนั้นเป็นไปตามเงื่อนไขความถูกต้องที่ซับซ้อนตามอำเภอใจ การพิสูจน์ความถูกต้องนั้นแข็งแกร่งกว่าการพิสูจน์การฉ้อโกงเนื่องจากไม่ต้องอาศัยเกมแบบโต้ตอบเพื่อตรวจจับการฉ้อโกง เทคนิคที่สำคัญอีกประการหนึ่งคือการตรวจสอบความพร้อมใช้งานของข้อมูล ซึ่งจะป้องกันไม่ให้บล็อกดำเนินการกับข้อมูลที่ยังไม่ได้เผยแพร่อย่างสมบูรณ์ อย่างไรก็ตาม การตรวจสอบความพร้อมใช้งานของข้อมูลจะขึ้นอยู่กับสมมติฐานเชิงอนุรักษ์นิยมที่มีโหนดที่ซื่อสัตย์อย่างน้อยจำนวนหนึ่งในเครือข่าย และข่าวดีก็คือจะมีโหนดที่ซื่อสัตย์อยู่ในเครือข่ายเสมอ แม้ว่าจะมีโหนดที่ซื่อสัตย์อยู่ในเครือข่ายก็ตาม ผู้โจมตีจำนวนมาก
ชื่อเรื่องรอง


