7 ส.ค. 2022 เวลา 11:01 • วิทยาศาสตร์ & เทคโนโลยี
ทำความเข้าใจพื้นฐานBitcoin ด้วย White Paper Bitcoin
เอกสารสำคัญที่จุดประกายโลกคริปโต
White Paper Bitcoin เป็นเอกสารที่สำคัญเพื่อการทำความเข้าใจส่วนสำคัญระบบของ Bitcoin ว่าแท้จริงแล้วทำงานอย่างไร
ด้วยเหตุผลที่สำคัญ
บทความนี้จึงมาสรุปภาพรวมของแต่ละหัวข้อในเอกสารให้คนทั่วไปที่ไม่จำเป็นต้องมีความรู้ทางเทคนิคมากนัก ก็สามารถทำความเข้าใจได้
เราจะได้มองเห็นความจริงของเทคโนโลยีนี้มากขึ้น โดยที่ไม่ต้องถามคนอื่นว่าเหรียญนี้ดีไหม
(ไม่มีเนื้อหาเกี่ยวกับการลงทุน)
ส่วนใครอยากอ่านต้นฉบับ
อ่านได้ที่ลิงก์นี้เลย
รู้ขอบเขตของเอกสารก่อนเริ่มต้นอ่าน
Abstract
ระบบการเงินแบบบุคคลต่อบุคคลผ่านระบบออนไลน์ที่แท้จริง (peer-to-peer) ที่ไม่มีการทำงานโดยตัวกลางของสถาบันทางการเงินใดๆมาเกี่ยวข้อง
Digital Signature คือ กระบวนการยืนยันตัวตนที่ทำให้ระบบนี้เกิดขึ้นมาได้ แต่ปัญหาที่ใหญ่จริงๆคือการทำให้ระบบไม่มีตัวกลาง โดยทั่วไปตัวกลางจะมาทำหน้าที่ป้องกันการเกิด Double Spending หรือปัญหาการส่งเงินที่ส่งไปแล้วแต่เงินในกระเป๋าก็ยังมีอยู่
ในเอกสารนี้จะนำเสนอวิธีการแก้ปัญหาการใช้เงินซ้ำโดยที่ไม่ต้องพึ่งตัวกลาง ด้วยการใช้เครือข่าย peer-to-peer
ทุกๆธุรกรรมที่เกิดขึ้นนั้น จะมีการบันทึกเวลาเอาไว้และการเข้ารหัสบันทึกข้อมูลที่บันทึกไว้ แล้วนำข้อมูลที่เข้ารหัสไว้ไปบันทึกเป็นชุดที่เรียกว่า บล็อก มาต่อกันเรื่อย ๆ
ข้อมูลใหม่จะถูกนำมาต่อกับข้อมูลที่บันทึกกับบล็อกก่อนหน้านี้ เราจึงเรียกการบันทึกข้อมูลแบบนี้ว่า บล็อกเชน
เพื่อเป็นการพิสูจน์ว่าข้อมูลนี้เกิดจากการทำงานของระบบจริง และ ป้องกันการเปลี่ยนแปลงหรือปลอมแปลงข้อมูลของผู้ที่ไม่พึงประสงค์ผู้ที่คิดโจมตีจะต้องมีกำลังประมวลผลคอมพิวเตอร์ในการทำ proof-of-work ที่มากกว่าระบบทั้งหมด ซึ่งมันแทบจะเป็นไปไม่ได้เลย
โหนด (Node) คือคอมพิวเตอร์ของผู้ที่เข้ามาร่วมการใช้งานของระบบและบันทึกธุรกรรมที่เกิดขึ้น โดยข้อมูลทั้งหมดจะถูกแชร์ร่วมกันทุกโหนด ซึ่งสามารถเข้าร่วมและออกตอนไหนก็ได้
1. Introduction
1. Introduction
ปกติแล้วการใช้เงินออนไลน์เราจำเป็นต้องมีบุคคลที่สาม ในการควบคุมดูแลระบบ เพื่อแก้ไขปัญหาที่อาจจะเกิดขึ้น และรักษาความเสถียรภาพเอาไว้ บุคคลที่สามซึ่งโดยทั่วไป คือองค์กร บริษัท หรือ สถาบันทางการเงินต่างๆ เช่นธนาคาร
ระบบนี้ทำงานของตัวกลางได้ดีและสะดวกของผู้ใช้งาน แต่มันก็ยังคงมีจุดอ่อนของระบบ นั่นคือการที่เราต้องเชื่อใจ บุคคลที่สามหรือตัวกลางที่เข้ามาเกี่ยวข้องอยู่เสมอ โดยการใช้จ่ายมันมีโอกาสที่ธุรกรรมจะเกิดความผิดพลาดที่ไม่ใช่จากตัวเราหรือผู้ที่เราทำธุรกรรมด้วย แต่มันเกิดจากความผิดพลาดของตัวกลางเนื่องจากสาเหตุบางสิ่งบางอย่าง
การมีตัวกลางทำให้ค่าใช้จ่ายและต้นทุนในการทำธุรกรรมซื้อขายที่เพิ่มมากขึ้นจากค่าธรรมเนียม
รวมถึงการทำให้เกิดปัญหาขั้นต่ำในการทำธุรกรรมที่มีเงื่อนไขต่างๆอย่างหลีกเลี่ยงไม่ได้
ในอีกมุมมองของผู้ขายเมื่อลูกค้าต้องการสอบถามข้อมูลข้อมูลต่างๆของผู้ขายที่เกินความจำเป็นจากตัวกลางเองเพื่อป้องกันการโดนโกงหรือความน่าเชื่อถือซึ่งมันจะเป็นช่องโหว่ในการนำข้อมูลนี้ไปใช้ในการที่ไม่พึงประสงค์เกิดความเสียหายต่อผู้ขายได้เช่นกัน
ยังมีวิธีแก้ในการเข้าไปป้องกันการเกิดข้อผิดพลาดต่างๆเหล่านี้ได้ด้วยการใช้เงินสด แต่มันก็ยังแก้ไขปัญหาข้อผิดพลาดของตัวกลางไม่ได้เพราะว่าเงินสด ตัวกลางก็คือรัฐบาลที่คอยควบคุมนโยบายและระบบการเงินที่สามารถผิดพลาดได้
ที่ Bitcoin จะเสนอก็คือระบบการใช้จ่ายเงินแบบอิเล็กทรอนิกส์ ที่ทำด้วยพื้นฐานของการเข้ารหัสแบบ Cryptographic แทนที่การเชื่อถือตัวกลางหรือบุคคลที่สาม
(เหตุที่นำ Cryptographic มาใช้งานประกอบจะทำให้ไม่มีผู้คนควบคุมได้อีก เมื่อระบบถูกออกแบบให้ทำงานด้วยตัวมันเอง)
วิธีนี้ ธุรกรรมที่ได้ทำไปแล้วจะไม่สามารถยกเลิกหรือย้อนกลับไปแก้ไขใดๆได้ซึ่งมันจะช่วยปกป้องข้อผิดพลาดที่ตัวกลางนั้นมีได้
ในเอกสารนี้จะนำเสนอวิธีการแก้ไขปัญหา การใช้เงินซ้ำ (Double Spending) โดยระบบบุคคลต่อบุคคล (peer-to-peer)
มีการบันทึกเวลาที่ได้ทำธุรกรรมและนำไปสู่ขั้นตอนการบันทึกธุรกรรมด้วยการใช้กำลังประมวลผลที่เป็นต้นทุนในการทำ proof of work เป็นเครื่องพิสูจน์ยืนยันความถูกต้องและปกป้องการแก้ไขระบบตราบที่กำลังประมวลผลยังคงมีมากพอที่จะต่อต้านผู้ที่โจมตีระบบ
2. Transaction (ธุรกรรม)
2. Transaction
ในหัวข้อนี้เราจะพูดถึง การทำธุรกรรมของระบบ โดยในระบบนี้เราจะ ใช้ข้อมูลลายเซ็นดิจิตอลที่เชื่อมกับเป็นห่วงซ่อนห่วงโซ่เนี่ย ซึ่งเราจะเรียกมันว่าเหรียญ(coin) ซึ่งอย่างนี้มันก็คือโทเคนที่เอาไว้ใช้เป็นเงิน
ผู้ที่เป็นเจ้าของเหรียญสามารถโอนเหรียญไปยังอีกคนได้โดยการเซ็นลายเซ็นดิจิตอลในแฮธุรกรรมก่อนหน้าที่มีการเข้ารหัสและพับลิกคีย์ของผู้รับ จากนั้นก็จะนำข้อมูลเหล่านี้ไปเพิ่มลงในส่วนสุดท้ายของตัวเหรียญ
เลยเนี่ยโดยปกติแล้วการแก้ไขปัญหาการใช้เงินซ้ำ จะใช้ตัวกลางอย่างเช่นธนาคารมาคอยตรวจสอบควบคุมตัวเลขในบัญชี โดยการหักหลบการใช้จ่ายของทั้งสองฝั่งซึ่งมันต้องใช้ความเชื่อใจสูง
วิธีการที่เราจะแก้ไขปัญหาการใช้เงินซ้ำได้นั้นเพื่อให้ผู้รับเงินรู้ว่าเงินที่ผู้ส่งมานั้นมันยังไม่ได้ถูกใช้มาก่อนหน้านี้แล้วนั่นก็คือการนับว่าธุรกรรมที่เกิดขึ้นกับเงินจำนวนนี้เป็นครั้งแรกคือธุรกรรมที่ถูก ใช้เงินไปแล้ว และมันก็จะหายไปจากผู้ส่งไปอยู่ที่ตัวผู้รับ
วิธีตรวจสอบว่าธุรกรรมมันไม่ได้ขาดหายไปก็คือ เราจะมีตัวที่เปรียบเสมือนระบบมาคอยตรวจสอบธุรกรรมและดูว่าธุรกรรมอันไหนมาก่อนมาหลัง โดยผู้ตรวจสอบส่วนใหญ่ในระบบนั้นก็ต้องเห็นด้วยว่าธุรกรรมครั้งแรกคืออันนี้ แต่ตัวการจะไม่สามารถแก้ไขหรือยุ่งเกี่ยวกับธุรกรรมนั้นได้ เมื่อธุรกรรมสำเร็จก็จะถูกประกาศออกมาทั้งระบบให้ได้ทราบกัน
3. Timestamp Server (การบอกเวลา)
3. Timestamp Server
ในหัวข้อนี้จะสรุปง่ายๆเลยก็คือว่า มีการใช้Time Stamp ผ่านเลขของ Hash เพื่อมาเป็นตัวกำกับบอกเวลาว่า ธุรกรรมนี้เกิดขึ้น ณ เวลาไหน
4. Proof-of-work (ระบบการใช้แรง)
4. Proof-of-work
Proof-of-work คือหนึ่งในขั้นตอนสำคัญของระบบ ที่ต้องใช้กำลังประมวลผลคอมพิวเตอร์คำนวณฟังก์ชันทางคณิตศาสตร์ มีจุดประสงค์เพื่อเป็นการพิสูจน์ความจริงของข้อมูลในระบบก่อนจะบันทึก
ความยากในการแก้สมการคณิตศาสตร์นั้นจะแปรผันไปตามกำลังประมวลผลรวมของทั้งระบบ
โดย Proof-of-work จะถูกนำมาใช้ในกระบวนการหาค่าแฮช (Hash)
การ Hash เป็นวิธีการเข้าฟังก์ชันทางคณิตศาสตร์เพื่อปกป้องหรือป้องกันการแก้ไขข้อมูล
ตราบเท่าที่กำลังประมวลผลส่วนใหญ่ยังคงรักษาระบบ ก็ยากที่ผู้โจมตีจะสามารถรันคอมพิวเตอร์สร้างบล็อกได้ทัน
5. Network (กระบวนจัดเก็บข้อมูล)
5. Network
รูปแบบขั้นตอนของระบบเป็นดังนี้
1. ธุรกรรมที่เกิดขึ้นใหม่จะถูกประกาศไปยัง โหนดทุกอัน
2. จะนำธุรกรรมที่ถูกประกาศบันทึกลง Block
3. แต่ละโหลดจะนำ Block ใหม่ไปทำการ Proof of work
4. เมื่อมีโหนดที่ทำ Proof of work สำเร็จ Block ของโหนดนั้นจะเป็น Block ที่แท้จริงและกระจายข้อมู Block ที่แท้จริงนี้ไปทุกๆโหนด
5. Block ที่ถูก Proof of work ทุกๆโหนด จะตรวจสอบว่าไม่เกิด Double spending ก่อนที่จะยอมรับ
6. Block ที่ถูกยอมรับจะถูกบันทึกลง Blockchain โดย Hash ของบล็อกจะถูกนำไปใช้ประโยชน์ในการสร้างบล็อกใหม่ในอนาคต
อาจมีกรณีที่โหนด 2 แห่ง สามารถสร้างบล็อกได้พร้อมกัน ซึ่งจะทำให้โหนดอื่นๆมีความสับสน
แต่เมื่อเวลาผ่านไประยะนึง
สุดท้ายจะมีโหนดที่สร้างบล็อกได้เร็วกว่าหนึ่งโหนด และระบบก็จะเลือกโหนดที่สร้างเร็วกว่า
กิมมิคของระบบนี้คือ ตอนที่มี transaction เกิดใหม่ขึ้นมา Transaction ไม่จำเป็นที่จะต้องส่งไปให้ทุกโหนด ขอเพียงแค่โหนดส่วนใหญ่ได้รับแล้ว ก็จะสามารถเริ่มกระบวนการสร้างบล็อกถัดไปได้เลย
6. Incentive (ผลตอบแทนของผู้รักษาระบบ)
6. Incentive
โดยในปกติทุกๆ Transaction แรกแต่ละบล็อกคือ Transactionที่จะให้เหรียญใหม่กับผู้ที่สร้างบล้อก ด้วย Proof-of-work สำเร็จ ซึ่งเป็นการสร้างแรงจูงใจให้โหนดยังคงใช้งานระบบต่อไป
และยังเป็นการสร้างเหรียญใหม่ในระบบอีกด้วย (การสร้างเหรียญใหม่ของBitcion มีวิธีนี้วิธีเดียวเท่านั้น)
การสร้างเหรียญขึ้นมาใหม่ด้วยวิธีนี้จะคล้ายกับการอุตสาหกรรมขุดเหมืองแร่ที่ต้องใช้แรงและเวลาในการขุด
ส่วน Bitcoin ใช้ Proof of wook ที่เปรียบเสมือนเป็นแรงงานในการขุดเจาะหาเหรียญใหม่ในระบบ
(เป็นที่มาของคำว่าขุดเหรียญ)
นอกจากผู้ที่ขุดเหรียญจะได้เหรียญใหม่จากการสร้างบล็อกแล้ว ยังสามารถได้เหรียญจากค่าธรรมเนียมจากผู้ใช้งานอีกด้วย
หลักการได้รับเหรียญของผู้ที่ทำ Proof of work หรือขุดเหรียญ
จำนวนเงินที่เข้ามาในธุรกรรมทั้งหมด – จำนวนเงินที่ส่งออกทั้งหมด = จำนวนเหรียญที่ผู้ขุดได้รับ
ในอนาคต เมื่อเหรียญถูกขุดจนหมดแล้ว ส่วนของค่าธรรมเนียมธุรกรรมจะเป็นเงินมากพอที่จะสร้างแรงจูงใจให้ผู้ขุดอยู่ต่อ จากการเติบโตและฐานที่มั่นคงของระบบ
7. Reclaiming Disk Space (การบริหารหน่วยความจำคอมพิวเตอร์)
7. Reclaiming Disk Space
ธุรกรรมสุดท้ายที่มีการบันทึกลง Blockแล้วนั้น สามารถตัดธุรกรรมอื่นออกไปได้เพื่อนเป็นการประหยัดพื้นที่หน่วยความจำ ซึ่งการทำแบบนี้ต้องไม่กระทบให้เลข Hash ของ Block มีการเปลี่ยนแปลง
*ส่วนเนื้อหาเทคนิค*
ธุรกรรมจะถูก Hash อยู่ในรูปของ Merkle Tree ทำให้แต่ละบล็อกนั้นมีขนาดแค่ 80 bytes เท่านั้น ซึ่งการสร้าง Block ของ Bitcoin ใช้เวลาเฉลี่ยประมาณ 10 นาที
หมายความว่าการรันโหนดของ Bitcoin จะใช้พื้นที่ความจำคอมพิวเตอร์เพียง 4.2 MB ต่อปี
8. Simplified Payment Verification (วิธีการตรวจสอบธุรกรรมแบบเรียบง่าย)
8. Simplified Payment Verification
วิธีการตรวจสอบธุรกรรมเราไม่จำเป็นต้องรันระบบแบบเต็มฟังก์ชัน
สามารถเลือกแค่ฟังก์ชันบางส่วนก็ได้ ด้วยการดึงข้อมูลจากโหนดอื่นๆที่สามารถเชื่อธุรกรรมไป Block ที่เราต้องการดู
ตรงนี้มีข้อเสียตรงที่ว่าหากเราเผลอไปดึงข้อมูลจากโหนดที่พยามโจมตีระบบ อาจทำให้เราได้ข้อมูลธุรกรรมที่ไม่ถูกต้อง
ดังนั้นวิธีนี้อาจไม่เหมาะสำหรับผู้ที่ใช้งานจริงจัง การรันโหนดแบบเต็มฟังก์ชันดูเหมาะสมกว่า
9. Combining and Splitting Value (การคำนวณทางบัญชี)
9. Combining and Splitting Value
ขั้นตอนการคำนวณทางบัญชีของ Bitcoin เป็นดังนี้ครับ
1) เงินทั้งหมดใน wallet ถูกส่งไปในธุรกรรมที่เราทำ
2)ในธุรกรรมจะคำนวณเงินทั้งหมดที่ส่งมาจาก wallet - เงินที่ต้องการโอนและค่าธรรมเนียม = เงินทอน
3)จำนวนเงินที่ต้องโอนถูกส่งไป และจำนวนเงินทอนถูกส่งมาที่กระเป๋าเรา
10. Privacy (ความเป็นส่วนตัวโดยแท้จริง)
10. Privacy
ในระบบการเงินธนาคาร เมื่อเราจำเป็นที่จะต้องส่งธุรกรรมพร้อมกับการยืนยันตัวตนของเราไปให้กับผู้ที่ให้บริการกับธนาคาร จะเห็นได้ว่าความเป็นส่วนตัวของเราหายไปจากจากส่วนนี้ ต้องเชื่อใจว่าตัวกลางเหล่านี้จะไม่นำข้อมูลของเราไปใช้ประโยชน์หรือสามารถรักษาข้อมูลไม่ให้รั่วไหลได้ตลอดไป
ในระบบ Bitcoin จะไม่จำเป็นต้องใส่ข้อมูลส่วนตัวใดๆเลย ซึ่งจะใช้ Public Key ในการเป็นตัวแทนการทำธุรกรรม เมื่อธุรกรรมถูกประกาศให้ทั้งระบบรับรู้ จะทราบได้เพียงว่ามีธุรกรรมเกิดขึ้นแล้วแต่ไม่ทราบว่าธุรกรรมนี้ ผู้ใดเป็นคนทำ
การปกปิดข้อมูลนี้ยังไม่สมบูรณ์แบบ ยังพอมีวิธีที่จะทราบว่าใครเป็นผู้โอนผู้ส่งได้จากการสอดส่องเส้นทางการโอนและส่งเงินต่างๆใน Wallet ได้
11. Calculations (การคำนวณโอกาสที่ผู้โจมตีทำสำเร็จ)
11. Calculations
การสมมติว่ามีผู้โจมตีพยามโจมตีเพื่อสร้างบล็อกที่ยาวกว่าระบบได้สำเร็จ
แต่ถึงแม้จะทำสำเร็จ Node อื่นๆก็ไม่ยอมรับธุรกรรมของผู้โจมตีอยู่ดีจึงทำให้ไม่สามารถไปแก้ไขข้อมูลหรือโขมยเงินของคนอื่น สิ่งเดียวที่ผู้โจมตีจะทำได้คือ Double Spending เงินตัวเอง
การตั้งสูตรความน่าจะเป็นนี้ คือการคำนวณหาความน่าจะเป็นที่ผู้โจมตีจะทำสำเร็จ
ยิ่งบล็อกในระบบยาวมากขึ้นเท่าไหร่ จะให้โอกาสโจมตีสำเร็จน้อยลงเท่านั้นแบบExponential
ในช่วงสุดท้ายของการคำนวณจะพบว่าโอกาสที่จะทำสำเร็จน้อย น้อยจนเกือบจะเป็น 0 %
12. Conclusion
12. Conclusion
ระบบการชำระเงินที่ไร้ตัวกลางนี้ มีจุดเด่นในการเป็นเจ้าของเหรียญที่แข็งแกร่งด้วย Digital Signature แต่ปัญหา Double Spending ยังมีจุดอ่อนซึ่งแก้ไขด้วยระบบ Proof of work ที่มีจำนวนกำลังประมวลผลที่แข็งแกร่งในการรักษาระบบ เพื่อให้ผู้โจมตีมีโอกาสในการโจมตีที่น้อยมากๆ
แม้จะมีโครงสร้างที่ซับซ้อนแต่ก็มีความแข็งแกร่ง ทุกๆโหนดทำงานพร้อมกันด้วยการประสานงานกันที่ไม่มาก
ไม่มีมีการระบุตัวตนเพราะการส่งข้อมูลต่างๆจะถูกกระจายไปแต่ละโหนดให้มากที่สุดเท่าที่เป็นไปได้
โหนดสามารถเข้าหรือออกจากระบบเมื่อใดก็ได้ เพราะข้อมูลบล็อกเชนจะคอยบันทึกว่าเกิดอะไรขึ้นบ้างระหว่างที่โหนดไม่อยู่
กำลังประมวลผลจะทำหน้าที่เป็นเสียงโหวตเพื่อพิสูจน์ว่าบล็อกไหนเป็นบล็อกที่ถูกต้องก่อนจะบันทึกลงไป
ส่วนในกฎและสิ่งอื่นๆที่เหลือจะถูกกำหนดด้วยระบบฉันทมติทั้งระบบ
หากใครอ่านแล้วรู้สึกอยากศึกษาต่อด้วยตนเองสามารถเริ่มต้นได้จากเว็บไซต์ https://bitcoin.org/en
หรือเริ่มศึกษาผ่าน Youtube ของผมเอง (ขอโอกาสโปรโมทให้ตัวเอง🫶🏻)
โฆษณา