การกำเนิดของ bitcoin และ blockchain นั้นเกี่ยวข้องกับปัญหาสองประการที่มีมาอย่างยาวนานในสกุลเงินดิจิทัล: ปัญหาการใช้จ่ายซ้ำซ้อนและปัญหานายพลไบแซนไทน์
เมื่อเทียบกับสกุลเงินจริงในชีวิตประจำวัน ความยากที่สุดในการพัฒนาเงินสดอิเล็กทรอนิกส์คือวิธีเอาชนะ "ปัญหาความน่าเชื่อถือ" เหตุผลที่เปลือกหอยและโลหะมีค่าในยุคแรกสุดสามารถใช้เป็นสิ่งเทียบเท่าทั่วไปได้ก็เพราะพวกมันมีความขาดแคลนอยู่บ้าง และธนบัตรแบบจับต้องได้ในภายหลังก็อาศัยความน่าเชื่อถือของรัฐเพื่อแก้ปัญหาความน่าเชื่อถือ
สกุลเงินจริงเหล่านี้มีมูลค่าและสามารถโอนมูลค่าได้ทันที ในยุคดิจิทัล เนื้อหาใด ๆ ล้วนประกอบด้วยรหัส 0 และ 1 โดยพื้นฐานแล้ว เงินดิจิทัลสามารถคัดลอกเป็นสองชุดและเผยแพร่ไปยังผู้รับสองคนในเวลาเดียวกัน ซึ่งเรียกว่า "ปัญหาการใช้จ่ายซ้ำซ้อน" อินเทอร์เน็ตเองไม่มีความสามารถในการแสดงมูลค่า ดังนั้นก่อนหน้านี้ผู้คนจึงต้องใช้ระบบบัญชีแบบรวมศูนย์กับเซิร์ฟเวอร์ส่วนกลาง เช่น ธนาคาร เพื่อใช้บัตรเครดิตและเงินอิเล็กทรอนิกส์ประเภทอื่นๆ
แต่จะมีบุคคลที่สามที่เชื่อถือได้อย่างแท้จริงหรือไม่นั้นเป็นคำถาม มีความเสี่ยงที่จะเกิดความล้มเหลวเพียงจุดเดียว เช่น การโจมตีบนเซิร์ฟเวอร์ส่วนกลาง และแม้แต่รัฐบาลก็อาจเก็บ "Seigniorage" ด้วยการออกเงินมากเกินไป วิธีแก้ปัญหาที่ Bitcoin เสนอคือการละทิ้งตัวกลางของบุคคลที่สามและสร้างบัญชีแยกประเภทแบบกระจายที่ทุกคนเป็นศูนย์กลางของบัญชีแยกประเภท
พิจารณาหมู่บ้านที่มี "หัวหน้า" เพียงคนเดียวที่ดูแลบัญชีแยกประเภท และค่าใช้จ่ายทั้งหมดของสมาชิกหมู่บ้านจะลงทะเบียนกับหัวหน้าหมู่บ้านซึ่งเป็นศูนย์กลางของระบบบัญชีแยกประเภท ระบบจะทำงานได้ดีถ้าหัวหน้าหมู่บ้านไว้ใจได้ แต่ถ้าหัวหน้าซึ่งเป็นศูนย์กลางของระบบเป็นหัวขโมย คนอื่นอาจตรวจจับได้ยาก
พิจารณาหมู่บ้านที่ “กระจายอำนาจ” ซึ่งสมาชิกแต่ละคนมีบัญชีแยกประเภทเหมือนกัน เมื่อสมาชิกต้องการเปลี่ยนแปลงบัญชีแยกประเภท สมาชิกจะต้องแจ้งให้สมาชิกรายอื่นทราบผ่านทาง “การออกอากาศ” เพื่อที่พวกเขาจะได้ยืนยันรายการและคัดลอกไปยังบัญชีแยกประเภทของตนเอง ขั้นตอนการทำธุรกรรมจะไม่สมบูรณ์จนกว่าสมาชิกทุกคนจะยืนยันและอัปเดตบัญชีแยกประเภทของตน นี่คือหลักการทำงานของเครือข่าย Bitcoin
Bitcoin คิดค้นระบบดิจิทัลรูปแบบใหม่สำหรับการบันทึกธุรกรรมของสินทรัพย์ที่เรียกว่าบัญชีแยกประเภทแบบกระจาย ตรงกันข้ามกับการบันทึกแบบรวมศูนย์ ซึ่งข้อมูลจะถูกเก็บไว้บนเซิร์ฟเวอร์แบบรวมศูนย์ บล็อกเชนเป็นฐานข้อมูลแบบกระจายศูนย์ โดยแต่ละโหนดในเครือข่ายจะทำหน้าที่เป็นเจ้าของและผู้ดูแลฐานข้อมูล
Bitcoin เป็นแอปพลิเคชั่นขนาดใหญ่ตัวแรกของ blockchain และ blockchain เป็นรากฐานที่สำคัญของ Bitcoin
ระบบ Bitcoin สามารถแบ่งออกเป็นสามชั้น: ชั้นข้อมูล ชั้นโปรโตคอล และชั้นแอปพลิเคชัน เริ่มจาก “บัญชีแยกประเภท” (ชั้นข้อมูล) ที่สมาชิกระบบ Bitcoin แต่ละคนมีอยู่
โดยพื้นฐานแล้วบล็อกเชนคือบัญชีแยกประเภทแบบกระจายที่ดูแลโดยโหนดทั้งหมดในเครือข่าย โดยแต่ละโหนดจะจัดเก็บข้อมูลบล็อกเชนทั้งหมด บล็อก "เชน" ที่จัดเก็บโดยโหนดคือห่วงโซ่ลำดับของบล็อกที่เชื่อมต่อเข้าด้วยกัน และตัวบล็อกเองเป็นโครงสร้างข้อมูลที่เปลี่ยนแปลงไม่ได้ซึ่งดูแลโดยอัลกอริทึมแฮชการเข้ารหัส
ฟังก์ชันแฮช (SHA-256 และ RipeMD160) เป็นอัลกอริธึมการเข้ารหัสที่สำคัญใน Bitcoin ที่สามารถแปลงค่าอินพุตที่มีความยาวตามอำเภอใจให้เป็นเอาต์พุตค่าความยาวคงที่ด้วยการสุ่ม ฟีเจอร์ที่ไม่มีการชนกัน และเป็นการยากที่จะคาดเดาค่าอินพุตสำหรับ ฟังก์ชันแฮชจากเอาต์พุต การเปลี่ยนแปลงเล็กน้อยในอินพุตอาจส่งผลให้เอาต์พุตแตกต่างกันอย่างมาก เอาต์พุตของฟังก์ชันแฮชสามารถรับได้ง่ายจากอินพุต แต่การอนุมานอินพุตจากเอาต์พุตต้องใช้การแจงนับแบบ brute-force ซึ่งใช้เวลาและพลังในการคำนวณจำนวนมาก การใช้ฟังก์ชันแฮชซ้ำๆ ช่วยลดความยุ่งยากและกำหนดโครงสร้างข้อมูลของ Bitcoin
บล็อก Bitcoin ประกอบด้วยสองส่วน: ตัวบล็อกและส่วนหัวของบล็อก เนื้อหาของบล็อกประกอบด้วยข้อมูลการทำธุรกรรมทั้งหมดในบล็อกนั้น ซึ่งถูกแฮชหลายครั้งเพื่อสร้างโครงสร้างที่เรียกว่า Merkle tree ซึ่งประกอบขึ้นเป็นเนื้อหาของบล็อก ข้อความธุรกรรมแรกในแต่ละบล็อกเหล่านี้เรียกอีกอย่างว่าธุรกรรม coinbase และเป็นธุรกรรมที่สร้าง bitcoins ใหม่และให้รางวัลแก่นักขุด ในขณะที่ธุรกรรมอื่น ๆ ทั้งหมดจะถูกโอนระหว่างผู้ใช้ซึ่งกันและกัน
ธุรกรรมเหล่านี้ผ่านการดำเนินการแฮชหลายครั้งเพื่อให้ได้ค่าที่เรียกว่า Merkle Hash ซึ่งเป็นผลรวมของข้อมูลธุรกรรมทั้งหมด Merkle Hash ร่วมกับ Nunce, การประทับเวลา, แฮชของบล็อกพาเรนต์ และข้อมูลอื่นๆ ประกอบเป็นส่วนหัวของบล็อก และการคำนวณค่าแฮชของส่วนหัวของบล็อกจะได้ค่าแฮชของบล็อกของบล็อกนี้ เนื่องจากส่วนหัวบล็อกของแต่ละบล็อกมีค่าแฮชของบล็อกหลัก บล็อกทั้งหมดจึงเชื่อมต่อกันเป็นลูกโซ่ บล็อกเชื่อมต่อกัน และการเปลี่ยนแปลงใด ๆ ต่อข้อมูลบล็อกจะส่งผลให้แฮชของบล็อกเปลี่ยนไป ซึ่งจะทำให้ห่วงโซ่แตก
หลังจากแนะนำ “บัญชีแยกประเภท” (ชั้นข้อมูล) ที่เก็บโดยแต่ละโหนดแล้ว เรามาต่อที่ชั้นฉันทามติของ Bitcoin ซึ่งรับผิดชอบด้านความปลอดภัยของเครือข่าย
ก่อนที่จะเจาะลึกถึงฉันทามติแบบกระจาย สิ่งสำคัญคือต้องเข้าใจปัญหา "Byzantine Generals"
ปัญหาของนายพลไบแซนไทน์ย้อนกลับไปในยุคกลางเมื่อกองทัพไบแซนไทน์อาศัยผู้ส่งสารในการส่งข้อมูลเนื่องจากอาณาเขตอันกว้างใหญ่ของไบแซนไทน์ หากคนทรยศจงใจบิดเบือนข้อมูลการดำเนินงานของผู้มีอำนาจระดับสูง มันจะนำไปสู่แผนปฏิบัติการที่ไม่สอดคล้องกัน ส่งผลให้เกิด "ปัญหานายพลไบแซนไทน์"
เครือข่าย Bitcoin ประกอบด้วยโหนดแบบกระจายศูนย์จำนวนมาก ซึ่งแต่ละโหนดเป็น "กองพล" ที่เป็นอิสระ ปกครองตนเอง และเท่าเทียมกัน ทุกโหนดในเครือข่ายมีสำเนาเฉพาะของข้อมูล blockchain และพวกเขาทั้งหมดต้องการเป็นคนแรกที่ทำธุรกรรมแพ็คเกจและรับรางวัล bitcoin ดังนั้นโหนดใดที่จะประสบความสำเร็จในการได้รับสิทธิ์บัญชีแยกประเภทและโน้มน้าวให้ทั้งเครือข่ายบรรลุฉันทามติเพื่อแก้ไขข้อมูลบล็อกเชน
คำตอบของ Bitcoin คือกลไกฉันทามติ Proof-of-Work (PoW) หรือที่เรียกกันทั่วไปว่า “การขุด” ซึ่งเป็นกระบวนการคำนวณแบบดิจิทัลที่ดำเนินการโดยโหนด โดยที่โหนดแรกที่พบ “คำตอบ” จะได้รับสิทธิ์ในบัญชีแยกประเภท โดยเฉพาะอย่างยิ่ง โหนดจำเป็นต้องพยายามเปลี่ยน Nunce ของส่วนหัวของบล็อก คำนวณแฮชของบล็อก และสุดท้ายจะได้แฮชของบล็อกโดยที่บิตแรกเป็นศูนย์
ณ จุดนี้ ค่า Nunce คือคำตอบสำหรับคำถาม หลังจากค้นหาคำตอบแล้ว โหนดจะเผยแพร่ไปยังโหนดเครือข่ายอื่น และหลังจากตรวจสอบคำตอบแล้ว โหนดอื่นๆ จะนำบล็อกนั้นเป็นโหนดหลักใหม่อย่างรวดเร็วและดำเนินการขุดรอบถัดไปต่อไป
นั่นนำเสนอปัญหาในการที่ข้อมูลใช้เวลาในการถ่ายทอดระหว่างโหนด และเป็นไปได้โดยสิ้นเชิงที่โหนดสองโหนดขึ้นไปจะค้นพบคำตอบของปริศนาในเวลาเดียวกันก่อนที่ชุมชนโดยรวมจะตกลงกันได้ อย่างไรก็ตาม เนื่องจากโหนดสองโหนดบรรจุธุรกรรมฐานเหรียญที่แตกต่างกัน ส่งผลให้มีบล็อกที่ถูกต้องที่แตกต่างกันสองบล็อก เนื่องจากลำดับการส่งสัญญาณที่แตกต่างกัน โหนดขุดจะทำงานบนโซ่ส้อมทั้งสอง ณ จุดนี้ เครือข่าย Bitcoin จะปฏิบัติตาม “กฎลูกโซ่ที่ยาวที่สุด” โดยถือว่า Fork chain ที่มีบล็อกมากที่สุดเป็นบล็อกเชนเดียวที่รู้จัก โดยทั่วไปการแข่งขันทางแยกนี้จะเสร็จสิ้นภายในเวลาน้อยกว่า 6 ช่วงตึก และธุรกรรมทั้งหมดบนเชนที่ถูกละทิ้งอื่นจะถือเป็นโมฆะ
โหนด Bitcoin สามารถซิงโครไนซ์การอัปเดตไปยังบัญชีแยกประเภทโดยการขุดและกฎลูกโซ่ที่ยาวที่สุดเพื่อให้ได้ฉันทามติ บัญชีแยกประเภทแบบกระจายตามฉันทามตินี้ยังทำให้สกุลเงินดิจิทัลแบบ peer-to-peer เช่น Bitcoin เป็นไปได้
สกุลเงินอิเล็กทรอนิกส์แบบดั้งเดิมใช้ระบบบัญชีแบบรวมศูนย์ ซึ่งบัญชีจะถูกสร้างขึ้นสำหรับผู้ใช้แต่ละคนบนเซิร์ฟเวอร์ส่วนกลาง และข้อมูลยอดคงเหลือจะถูกเก็บไว้สำหรับทุกบัญชี หลังจากการทำธุรกรรมแต่ละครั้ง ยอดเงินในบัญชีจะเพิ่มขึ้นหรือลดลงตามลำดับเวลา ในทางกลับกัน Bitcoin ใช้โมเดล UXTO ซึ่งแสดงถึงผลลัพธ์ของธุรกรรมที่ไม่ได้ใช้
การเข้ารหัสแบบอสมมาตรใช้เพื่อรักษาความปลอดภัยการทำธุรกรรม bitcoin ผู้ใช้ Bitcoin แต่ละคนต้องมีคีย์สาธารณะและคีย์ส่วนตัว คล้ายกับบัญชีและรหัสผ่าน ผู้ใช้ต้องลงนามในข้อมูลธุรกรรมด้วยคีย์ส่วนตัว และเผยแพร่ข้อมูลธุรกรรม ลายเซ็น และคีย์สาธารณะร่วมกัน อย่างไรก็ตาม ในแต่ละธุรกรรม ผู้ใช้ไม่ได้โอนยอดคงเหลือในบัญชีโดยตรง แต่ใช้ “จำนวนเงินที่ไม่ได้ใช้” ของธุรกรรมหลายรายการก่อนหน้านี้ เช่น UTXO
ในระบบ Bitcoin ไม่มีแนวคิดของบัญชีหรือยอดคงเหลือในบัญชี มีเพียง UTXO ของธุรกรรมทั้งหมดในบันทึกประวัติศาสตร์ กระเป๋าเงิน Bitcoin สามารถสแกนข้อมูลการทำธุรกรรมก่อนหน้านี้ทั้งหมดและคำนวณ UTXO ทั้งหมดของที่อยู่เฉพาะ (เช่น รหัสสาธารณะ) เพื่อกำหนดยอดเงินในบัญชี นอกจากนี้ เมื่อการทำธุรกรรมเริ่มต้นขึ้น กระเป๋าเงินบิตคอยน์สามารถจับคู่ UTXO กับยอดคงเหลือที่ถูกต้องโดยอัตโนมัติเพื่อทำการโอนให้เสร็จสมบูรณ์
การกำเนิดของ bitcoin และ blockchain นั้นเกี่ยวข้องกับปัญหาสองประการที่มีมาอย่างยาวนานในสกุลเงินดิจิทัล: ปัญหาการใช้จ่ายซ้ำซ้อนและปัญหานายพลไบแซนไทน์
เมื่อเทียบกับสกุลเงินจริงในชีวิตประจำวัน ความยากที่สุดในการพัฒนาเงินสดอิเล็กทรอนิกส์คือวิธีเอาชนะ "ปัญหาความน่าเชื่อถือ" เหตุผลที่เปลือกหอยและโลหะมีค่าในยุคแรกสุดสามารถใช้เป็นสิ่งเทียบเท่าทั่วไปได้ก็เพราะพวกมันมีความขาดแคลนอยู่บ้าง และธนบัตรแบบจับต้องได้ในภายหลังก็อาศัยความน่าเชื่อถือของรัฐเพื่อแก้ปัญหาความน่าเชื่อถือ
สกุลเงินจริงเหล่านี้มีมูลค่าและสามารถโอนมูลค่าได้ทันที ในยุคดิจิทัล เนื้อหาใด ๆ ล้วนประกอบด้วยรหัส 0 และ 1 โดยพื้นฐานแล้ว เงินดิจิทัลสามารถคัดลอกเป็นสองชุดและเผยแพร่ไปยังผู้รับสองคนในเวลาเดียวกัน ซึ่งเรียกว่า "ปัญหาการใช้จ่ายซ้ำซ้อน" อินเทอร์เน็ตเองไม่มีความสามารถในการแสดงมูลค่า ดังนั้นก่อนหน้านี้ผู้คนจึงต้องใช้ระบบบัญชีแบบรวมศูนย์กับเซิร์ฟเวอร์ส่วนกลาง เช่น ธนาคาร เพื่อใช้บัตรเครดิตและเงินอิเล็กทรอนิกส์ประเภทอื่นๆ
แต่จะมีบุคคลที่สามที่เชื่อถือได้อย่างแท้จริงหรือไม่นั้นเป็นคำถาม มีความเสี่ยงที่จะเกิดความล้มเหลวเพียงจุดเดียว เช่น การโจมตีบนเซิร์ฟเวอร์ส่วนกลาง และแม้แต่รัฐบาลก็อาจเก็บ "Seigniorage" ด้วยการออกเงินมากเกินไป วิธีแก้ปัญหาที่ Bitcoin เสนอคือการละทิ้งตัวกลางของบุคคลที่สามและสร้างบัญชีแยกประเภทแบบกระจายที่ทุกคนเป็นศูนย์กลางของบัญชีแยกประเภท
พิจารณาหมู่บ้านที่มี "หัวหน้า" เพียงคนเดียวที่ดูแลบัญชีแยกประเภท และค่าใช้จ่ายทั้งหมดของสมาชิกหมู่บ้านจะลงทะเบียนกับหัวหน้าหมู่บ้านซึ่งเป็นศูนย์กลางของระบบบัญชีแยกประเภท ระบบจะทำงานได้ดีถ้าหัวหน้าหมู่บ้านไว้ใจได้ แต่ถ้าหัวหน้าซึ่งเป็นศูนย์กลางของระบบเป็นหัวขโมย คนอื่นอาจตรวจจับได้ยาก
พิจารณาหมู่บ้านที่ “กระจายอำนาจ” ซึ่งสมาชิกแต่ละคนมีบัญชีแยกประเภทเหมือนกัน เมื่อสมาชิกต้องการเปลี่ยนแปลงบัญชีแยกประเภท สมาชิกจะต้องแจ้งให้สมาชิกรายอื่นทราบผ่านทาง “การออกอากาศ” เพื่อที่พวกเขาจะได้ยืนยันรายการและคัดลอกไปยังบัญชีแยกประเภทของตนเอง ขั้นตอนการทำธุรกรรมจะไม่สมบูรณ์จนกว่าสมาชิกทุกคนจะยืนยันและอัปเดตบัญชีแยกประเภทของตน นี่คือหลักการทำงานของเครือข่าย Bitcoin
Bitcoin คิดค้นระบบดิจิทัลรูปแบบใหม่สำหรับการบันทึกธุรกรรมของสินทรัพย์ที่เรียกว่าบัญชีแยกประเภทแบบกระจาย ตรงกันข้ามกับการบันทึกแบบรวมศูนย์ ซึ่งข้อมูลจะถูกเก็บไว้บนเซิร์ฟเวอร์แบบรวมศูนย์ บล็อกเชนเป็นฐานข้อมูลแบบกระจายศูนย์ โดยแต่ละโหนดในเครือข่ายจะทำหน้าที่เป็นเจ้าของและผู้ดูแลฐานข้อมูล
Bitcoin เป็นแอปพลิเคชั่นขนาดใหญ่ตัวแรกของ blockchain และ blockchain เป็นรากฐานที่สำคัญของ Bitcoin
ระบบ Bitcoin สามารถแบ่งออกเป็นสามชั้น: ชั้นข้อมูล ชั้นโปรโตคอล และชั้นแอปพลิเคชัน เริ่มจาก “บัญชีแยกประเภท” (ชั้นข้อมูล) ที่สมาชิกระบบ Bitcoin แต่ละคนมีอยู่
โดยพื้นฐานแล้วบล็อกเชนคือบัญชีแยกประเภทแบบกระจายที่ดูแลโดยโหนดทั้งหมดในเครือข่าย โดยแต่ละโหนดจะจัดเก็บข้อมูลบล็อกเชนทั้งหมด บล็อก "เชน" ที่จัดเก็บโดยโหนดคือห่วงโซ่ลำดับของบล็อกที่เชื่อมต่อเข้าด้วยกัน และตัวบล็อกเองเป็นโครงสร้างข้อมูลที่เปลี่ยนแปลงไม่ได้ซึ่งดูแลโดยอัลกอริทึมแฮชการเข้ารหัส
ฟังก์ชันแฮช (SHA-256 และ RipeMD160) เป็นอัลกอริธึมการเข้ารหัสที่สำคัญใน Bitcoin ที่สามารถแปลงค่าอินพุตที่มีความยาวตามอำเภอใจให้เป็นเอาต์พุตค่าความยาวคงที่ด้วยการสุ่ม ฟีเจอร์ที่ไม่มีการชนกัน และเป็นการยากที่จะคาดเดาค่าอินพุตสำหรับ ฟังก์ชันแฮชจากเอาต์พุต การเปลี่ยนแปลงเล็กน้อยในอินพุตอาจส่งผลให้เอาต์พุตแตกต่างกันอย่างมาก เอาต์พุตของฟังก์ชันแฮชสามารถรับได้ง่ายจากอินพุต แต่การอนุมานอินพุตจากเอาต์พุตต้องใช้การแจงนับแบบ brute-force ซึ่งใช้เวลาและพลังในการคำนวณจำนวนมาก การใช้ฟังก์ชันแฮชซ้ำๆ ช่วยลดความยุ่งยากและกำหนดโครงสร้างข้อมูลของ Bitcoin
บล็อก Bitcoin ประกอบด้วยสองส่วน: ตัวบล็อกและส่วนหัวของบล็อก เนื้อหาของบล็อกประกอบด้วยข้อมูลการทำธุรกรรมทั้งหมดในบล็อกนั้น ซึ่งถูกแฮชหลายครั้งเพื่อสร้างโครงสร้างที่เรียกว่า Merkle tree ซึ่งประกอบขึ้นเป็นเนื้อหาของบล็อก ข้อความธุรกรรมแรกในแต่ละบล็อกเหล่านี้เรียกอีกอย่างว่าธุรกรรม coinbase และเป็นธุรกรรมที่สร้าง bitcoins ใหม่และให้รางวัลแก่นักขุด ในขณะที่ธุรกรรมอื่น ๆ ทั้งหมดจะถูกโอนระหว่างผู้ใช้ซึ่งกันและกัน
ธุรกรรมเหล่านี้ผ่านการดำเนินการแฮชหลายครั้งเพื่อให้ได้ค่าที่เรียกว่า Merkle Hash ซึ่งเป็นผลรวมของข้อมูลธุรกรรมทั้งหมด Merkle Hash ร่วมกับ Nunce, การประทับเวลา, แฮชของบล็อกพาเรนต์ และข้อมูลอื่นๆ ประกอบเป็นส่วนหัวของบล็อก และการคำนวณค่าแฮชของส่วนหัวของบล็อกจะได้ค่าแฮชของบล็อกของบล็อกนี้ เนื่องจากส่วนหัวบล็อกของแต่ละบล็อกมีค่าแฮชของบล็อกหลัก บล็อกทั้งหมดจึงเชื่อมต่อกันเป็นลูกโซ่ บล็อกเชื่อมต่อกัน และการเปลี่ยนแปลงใด ๆ ต่อข้อมูลบล็อกจะส่งผลให้แฮชของบล็อกเปลี่ยนไป ซึ่งจะทำให้ห่วงโซ่แตก
หลังจากแนะนำ “บัญชีแยกประเภท” (ชั้นข้อมูล) ที่เก็บโดยแต่ละโหนดแล้ว เรามาต่อที่ชั้นฉันทามติของ Bitcoin ซึ่งรับผิดชอบด้านความปลอดภัยของเครือข่าย
ก่อนที่จะเจาะลึกถึงฉันทามติแบบกระจาย สิ่งสำคัญคือต้องเข้าใจปัญหา "Byzantine Generals"
ปัญหาของนายพลไบแซนไทน์ย้อนกลับไปในยุคกลางเมื่อกองทัพไบแซนไทน์อาศัยผู้ส่งสารในการส่งข้อมูลเนื่องจากอาณาเขตอันกว้างใหญ่ของไบแซนไทน์ หากคนทรยศจงใจบิดเบือนข้อมูลการดำเนินงานของผู้มีอำนาจระดับสูง มันจะนำไปสู่แผนปฏิบัติการที่ไม่สอดคล้องกัน ส่งผลให้เกิด "ปัญหานายพลไบแซนไทน์"
เครือข่าย Bitcoin ประกอบด้วยโหนดแบบกระจายศูนย์จำนวนมาก ซึ่งแต่ละโหนดเป็น "กองพล" ที่เป็นอิสระ ปกครองตนเอง และเท่าเทียมกัน ทุกโหนดในเครือข่ายมีสำเนาเฉพาะของข้อมูล blockchain และพวกเขาทั้งหมดต้องการเป็นคนแรกที่ทำธุรกรรมแพ็คเกจและรับรางวัล bitcoin ดังนั้นโหนดใดที่จะประสบความสำเร็จในการได้รับสิทธิ์บัญชีแยกประเภทและโน้มน้าวให้ทั้งเครือข่ายบรรลุฉันทามติเพื่อแก้ไขข้อมูลบล็อกเชน
คำตอบของ Bitcoin คือกลไกฉันทามติ Proof-of-Work (PoW) หรือที่เรียกกันทั่วไปว่า “การขุด” ซึ่งเป็นกระบวนการคำนวณแบบดิจิทัลที่ดำเนินการโดยโหนด โดยที่โหนดแรกที่พบ “คำตอบ” จะได้รับสิทธิ์ในบัญชีแยกประเภท โดยเฉพาะอย่างยิ่ง โหนดจำเป็นต้องพยายามเปลี่ยน Nunce ของส่วนหัวของบล็อก คำนวณแฮชของบล็อก และสุดท้ายจะได้แฮชของบล็อกโดยที่บิตแรกเป็นศูนย์
ณ จุดนี้ ค่า Nunce คือคำตอบสำหรับคำถาม หลังจากค้นหาคำตอบแล้ว โหนดจะเผยแพร่ไปยังโหนดเครือข่ายอื่น และหลังจากตรวจสอบคำตอบแล้ว โหนดอื่นๆ จะนำบล็อกนั้นเป็นโหนดหลักใหม่อย่างรวดเร็วและดำเนินการขุดรอบถัดไปต่อไป
นั่นนำเสนอปัญหาในการที่ข้อมูลใช้เวลาในการถ่ายทอดระหว่างโหนด และเป็นไปได้โดยสิ้นเชิงที่โหนดสองโหนดขึ้นไปจะค้นพบคำตอบของปริศนาในเวลาเดียวกันก่อนที่ชุมชนโดยรวมจะตกลงกันได้ อย่างไรก็ตาม เนื่องจากโหนดสองโหนดบรรจุธุรกรรมฐานเหรียญที่แตกต่างกัน ส่งผลให้มีบล็อกที่ถูกต้องที่แตกต่างกันสองบล็อก เนื่องจากลำดับการส่งสัญญาณที่แตกต่างกัน โหนดขุดจะทำงานบนโซ่ส้อมทั้งสอง ณ จุดนี้ เครือข่าย Bitcoin จะปฏิบัติตาม “กฎลูกโซ่ที่ยาวที่สุด” โดยถือว่า Fork chain ที่มีบล็อกมากที่สุดเป็นบล็อกเชนเดียวที่รู้จัก โดยทั่วไปการแข่งขันทางแยกนี้จะเสร็จสิ้นภายในเวลาน้อยกว่า 6 ช่วงตึก และธุรกรรมทั้งหมดบนเชนที่ถูกละทิ้งอื่นจะถือเป็นโมฆะ
โหนด Bitcoin สามารถซิงโครไนซ์การอัปเดตไปยังบัญชีแยกประเภทโดยการขุดและกฎลูกโซ่ที่ยาวที่สุดเพื่อให้ได้ฉันทามติ บัญชีแยกประเภทแบบกระจายตามฉันทามตินี้ยังทำให้สกุลเงินดิจิทัลแบบ peer-to-peer เช่น Bitcoin เป็นไปได้
สกุลเงินอิเล็กทรอนิกส์แบบดั้งเดิมใช้ระบบบัญชีแบบรวมศูนย์ ซึ่งบัญชีจะถูกสร้างขึ้นสำหรับผู้ใช้แต่ละคนบนเซิร์ฟเวอร์ส่วนกลาง และข้อมูลยอดคงเหลือจะถูกเก็บไว้สำหรับทุกบัญชี หลังจากการทำธุรกรรมแต่ละครั้ง ยอดเงินในบัญชีจะเพิ่มขึ้นหรือลดลงตามลำดับเวลา ในทางกลับกัน Bitcoin ใช้โมเดล UXTO ซึ่งแสดงถึงผลลัพธ์ของธุรกรรมที่ไม่ได้ใช้
การเข้ารหัสแบบอสมมาตรใช้เพื่อรักษาความปลอดภัยการทำธุรกรรม bitcoin ผู้ใช้ Bitcoin แต่ละคนต้องมีคีย์สาธารณะและคีย์ส่วนตัว คล้ายกับบัญชีและรหัสผ่าน ผู้ใช้ต้องลงนามในข้อมูลธุรกรรมด้วยคีย์ส่วนตัว และเผยแพร่ข้อมูลธุรกรรม ลายเซ็น และคีย์สาธารณะร่วมกัน อย่างไรก็ตาม ในแต่ละธุรกรรม ผู้ใช้ไม่ได้โอนยอดคงเหลือในบัญชีโดยตรง แต่ใช้ “จำนวนเงินที่ไม่ได้ใช้” ของธุรกรรมหลายรายการก่อนหน้านี้ เช่น UTXO
ในระบบ Bitcoin ไม่มีแนวคิดของบัญชีหรือยอดคงเหลือในบัญชี มีเพียง UTXO ของธุรกรรมทั้งหมดในบันทึกประวัติศาสตร์ กระเป๋าเงิน Bitcoin สามารถสแกนข้อมูลการทำธุรกรรมก่อนหน้านี้ทั้งหมดและคำนวณ UTXO ทั้งหมดของที่อยู่เฉพาะ (เช่น รหัสสาธารณะ) เพื่อกำหนดยอดเงินในบัญชี นอกจากนี้ เมื่อการทำธุรกรรมเริ่มต้นขึ้น กระเป๋าเงินบิตคอยน์สามารถจับคู่ UTXO กับยอดคงเหลือที่ถูกต้องโดยอัตโนมัติเพื่อทำการโอนให้เสร็จสมบูรณ์