โลกการเงินทุกวันนี้ถูกควบคุมด้วยธนาคารชาติต่างๆ และสถาบันการเงินระหว่างประเทศ ธนาคารชาติต่างๆ มีอำนาจในการกำหนดค่าเงินของตัวเองด้วยกระบวนการต่างๆ เช่น การกำหนดระดับดอกเบี้ย, เงินสำรองของธนาคาร, หรือการพิมพ์เงินออกมาสู่ตลาด นอกจากการกำหนดค่าเงินแล้ว หน่วยงานเหล่านี้ยังมีอำนาจในการตามรอยการเงินของผู้ใช้ผ่านทางการควบคุมธนาคาร รัฐบาลประเทศต่างๆ มีอำนาจในการหยุดธุรกรรมทางการเงินของบุคคลได้ หรือการกระทำอย่างสุดโต่งเช่นในปี 1987 ที่รัฐบาลพม่าประกาศยกเลิกธนบัตร 25, 35, และ 75 จ๊าด โดยไม่มีการเตือนล่วงหน้าทำให้เงินหายไปจากระบบถึง 75%
แนวคิดการสร้างระบบการเงินที่ควบคุมด้วยเทคโนโลยีแทนที่นโยบายการเงินจากธนาคารจึงมีขึ้นในหมู่แฮกเกอร์มานานแล้ว แต่สุดท้ายในวันนี้ระบบที่ได้รับการยอมรับสูงสุด คือ BitCoin คำถามของตัวผมเองกับระบบนี้คือ ทำไมระบบนี้จึงปลอดภัย หลังจากนั่งอ่านอยู่พักใหญ่ๆ วันนี้เราจะลองมาดูกันว่าระบบของ BitCoin คืออะไรและมันเข้ามาเป็นระบบการเงินใหม่ได้อย่างไร
BitCoin สร้างขึ้นโดย Satoshi Nakamoto บุคคลลึกลับที่อ้างว่าตัวเองมาจากประเทศญี่ปุ่น แต่ไม่มีข้อมูลอื่นใดเดี่ยวกับตัวเขา เขาใช้อีเมลจากบริการฟรีเพื่อพูดคุยในเมลลิ่งลิสด้านการเข้ารหัส เขาเริ่มพัฒนา BitCoin ในปี 2007 และเปิดเผยมันออกมาในปี 2009 (เอกสารการออกแบบ (PDF)) จากนั้นจึงค่อยๆ ลดบทบาทตัวเองลงไป จนกระทั่งหายตัวไปในที่สุด เชื่อกันว่าชื่อ Satoshi ถูกสร้างขึ้นโดยเฉพาะเพื่อโครงการนี้ เมื่อพิจารณาจากความเชี่ยวชาญด้านการเข้ารหัสที่สูงมาก แต่กลับไม่มีชื่อนี้ในวงการวิชาการการเข้ารหัส เช่น บทความในวารสารวิชาการหรืองานประชุมวิชาการใดๆ ที่เป็นที่รู้จัก โดเมนหลักของโครงการคือ BitCoin.org นั้นถูกจดทะเบียนกับบริษัทรับจดทะเบียนแบบปกปิดตัวตนก่อนจะโอนให้กับ Martti Malmi หนึ่งในนักพัฒนาหลักของโครงการชาวฟินแลนด์ สิ่งที่ระบุตัวตนของ Satoshi เข้าได้จริงๆ มีเพียงกุญแจ PGP ที่ใช้ติดต่ออีเมลกับเขาเท่านั้น
BitCoin เป็นหน่วยเงินใช้ชื่อย่อสกุลเงินว่า BTC ใช้สัญลักษณ์ B⃦ แทนหน่วยเงินแต่เนื่องจากเป็นอักขระที่ไม่ได้รับความนิยม หลายครั้งเราจึงเห็นเว็บที่รับเงิน BitCoin ใช้สัญลักษณ์เงินบาท (฿) แทน โดยตัวเงินจะสามารถแบ่งย่อยไปได้ถึงทศนิยมแปดหลัก เรียกหน่วยย่อยที่สุดว่า satoshi ตามชื่อผู้ให้กำเนิดมัน
การออกแบบของ BitCoin อาศัยการเชื่อมต่อ P2P ของโลกอินเทอร์เน็ตเป็นหลัก โดยหลักการแล้ว การโอนเงินทุกครั้งจะต้องประกาศออกไปยังคอมพิวเตอร์ทุกเครื่องในโลกที่รันโปรแกรม BitCoin อยู่ ทำให้ทุกคนรับรู้ว่ามีการโอนเงินก้อนใดไปยังใครบ้าง เงินแต่ละก้อนสามารถแตกออกเป็นเงินย่อยๆ ได้ ทุกครั้งที่คนๆ หนึ่งจะโอนเงินไปให้กับคนอื่นจะเป็นการแตกเงินออกเป็นสองก้อน นั่นคือการโอนให้ยังปลายทาง และที่เหลือโอนกลับเข้าตัวเอง
เว็บ Mt.Gox ผู้ให้บริการแลกเงินรายใหญ่ของ BitCoin ที่ดำเนินธุรกรรมถึง 80% ในการนำเงินเข้าและออกจาก BitCoin ตัวเว็บเคยถูกแฮกทำให้เงินหลุดออกสู่ตลาดจำนวนมาก ส่งผลต่ออัตราแลกเปลี่ยนที่ยุ่งเหยิงไปช่วงหนึ่ง
การถือเงินใน BitCoin จะอาศัยการสร้างกระเป๋าเงินดิจิตอลที่มีสิ่งอ้างอิงคือ BitCoin address ที่เป็นตัวเลขผสมตัวอักษรยาว 34 ตัวอักษร เช่น 19kgqNAaq983PXpaxeZSvLTcuieiVojmrN
โดยกระเป๋าเงินดิจิตอลแต่ละใบจะมีกุญแจลับเป็นของตัวเอง หากกุญแจนี้หายไป เงินทั้งหมดในกระเป๋านั้นจะหายไปตลอดกาล และเนื่องจากระบบของ BitCoin เป็น P2P ทำให้เราสามารถเข้าไปดูกระเป๋าเงินของใครก็ได้ เช่นกระเป๋าเงิน 19kgqNA... ตัวอย่างข้างต้น สามารถดูได้ที่ Block Explorer ว่ามีการโอนจากกระเป๋าเงินใบอื่นเมื่อไรเป็นจำนวนเงินเท่าใด เมื่อสองเดือนก่อน นิตยสาร Forbes สามารถจัดอันดับเศรษฐี BitCoin ได้ว่าบัญชีใดมีเงินเท่าใด และใช้จ่ายไปกี่ครั้ง เช่น บัญชีอันดับหนึ่ง 1DkyBEKt5S2GDtv7aQw6rQepAvnsRyHoYM มีเงินกว่า 500,000 BTC คิดเป็นมูลค่ากว่าหกล้านดอลลาร์ หรือประมาณสองร้อยล้านบาท แม้จะตรวจสอบการโอนทั้งหมดได้ ใครๆ ก็สามารถสร้างกระเป๋าเงิน BitCoin ขึ้นใช้งานเองได้ และมีคนจำนวนมากที่ถือหลายกระเป๋าเพื่อปกปิดตัวตน หรืออาจจะมีคนกระจายเงินไปยังกระเป๋าเงินหลายใบเพื่อไม่ให้ตัวเองตกเป็นเป้าการตรวจสอบ
กระบวนการที่สำคัญของ BitCoin คือการยืนยันว่ามีการโอนเงินแล้วจริง โดยปกติแล้วในระบบเงินทั่วไป เราเชื่อใจระบบธนาคารว่าจะดูแลให้การโอนเงินของเราเป็นไปอย่างถูกต้อง แต่ BitCoin ถูกออกแบบให้ทุกคนช่วยการยืนยันการโอนเงินซึ่งกันและกัน เมื่อผู้ใช้ในเครือข่ายประกาศการโอนเงินจะ ข้อความประกาศเหล่านั้นจะถูกรวบเข้าด้วยกันเป็นชุด แล้วคำนวณหาค่าแฮช (hash) แบบ SHA256 เรียกว่า บล็อค (Block) ตัวอย่าง เช่น บล็อคหมายเลข 194462 มีการโอนที่ถูกรวบรวมเข้ามา 209 รายการ รวมเป็นมูลค่า 8979.63213863 BTC
การยืนยันการโอนแต่ละบล็อคเป็นงานที่ออกแบบให้ยากในระดับที่สร้างบล็อคใหม่ได้ในเวลาประมาณสิบนาที หลักการคือผู้ที่จะคำนวณค่ายืนยันบล็อคแต่ละอัน จะต้องปรับค่า nonce ที่ใช้เติมในแต่ละบล็อคเพื่อให้แฮชค่าของทั้งบล็อคแล้วได้คุณสมบัติตามที่กำหนด ค่าความยาก (difficulty) นี่คือการกำหนด "ค่าเป้าหมาย" (target) ที่ยอมรับได้ของแฮชของบล็อคนั้นๆ แต่ใน SHA256 กำหนดค่า nonce เพื่อให้ได้ค่าแฮชที่น้อยตามที่ต้องการเป็นงานที่ยังไม่มีทางทำได้ตามทฤษฎี ทางที่เป็นไปได้คือการไล่ค่า nonce ไปเรื่อยๆ ทีละค่าแล้วคำนวณแฮชใหม่จนกว่าจะได้ค่าตามคุณสมบัติที่กำหนด โดยโพรโทคอลของ BitCoin จะกำหนดให้ค่าความยากนี้ใหม่ทุกๆ 2016 บล็อค โดยคำนวณจากความยากปัจจุบันและระยะเวลาเฉลี่ยที่คำนวณแต่ละบล็อคในช่วงเวลาสองสัปดาห์ที่ผ่านมา แต่ไม่สามารถปรับค่าความยากให้ยากขึ้นเกินกว่า 4 เท่าตัวได้ในการปรับแต่ละครั้ง ทุกวันนี้ค่าแฮชที่ยอมรับได้จะมีเลขศูนย์นำหน้าถึง 13 ตัว เช่น 00000000000006b6470a28d420c957609e22f56c5f3a58dfe9ad4d498f63e3fa
การหาค่า nonce ที่ทำให้ค่าแฮชเป็นไปตามเงื่อนไขนี้จะต้องอาศัยการลองผิดลองถูกนับล้านล้านครั้ง หลังจากนั้นเมื่อเครื่องใดเครื่องหนึ่งในเครือข่ายสามารถคำนวณค่า nonce และแฮชที่ถูกต้องของบล็อคปัจจุบันได้ ก็จะประกาศไปทั่วเครือข่าย การตรวจสอบความถูกต้องนั้นทำได้ง่ายเพราะเป็นเพียงการดูไฟล์บล็อคที่มักมีขนาด 50-200KiB แล้วคำนวณแฮช SHA256 ว่าตรงกับที่ประกาศออกมาหรือไม่ และซอฟต์แวร์จะถูกกำหนดให้รับฟังการประกาศบล็อคล่าสุดเสมอ
การปรับค่าความยากให้ระยะเวลาสร้างบล็ิอคใหม่ได้ในสิบนาที เป็นความพยายามที่จะสมดุลกันระหว่างความปลอดภัย โดยคนโจมตีจะสร้างห่วงโซ่บล็อคปลอมๆ ได้ยากมาก ขณะที่การใช้จ่ายเงินจะได้รับการยืนยันว่าอยู่ในห่วงโซ่สายหลักแน่นอน (มีบล็อคต่อท้ายไปอีก 6 บล็อค) ภายในเวลาประมาณหนึ่งชั่วโมง ซึ่งไม่นานเกินไปสำหรับการใช้งานซื้อขายที่ไม่ต้องการความเร็วสูงๆ เช่น การซื้อหุ้น
แต่ละบล็อคของ BitCoin จะอ้างถึงบล็อคก่อนหน้าหนึ่งบล็อคเสมอ ทำให้แต่ละบล็อคอ้างถึงกันเป็นลูกโซ่ไปข้างหน้าทางเดียว การคำนวณค่าบล็อคปัจจุบันจึงเป็นการยืนยันความถูกต้องของบล็อคก่อนหน้า โดยปกติแล้วซอฟต์แวร์กระเป๋าเงิน BitCoin จะแจ้งผู้ใช้ว่าการโอนเงินได้รับการยืนยันต่อเมื่อบล็อคที่บันทึกการโอนเงินถูกอ้างถึงไปอีก 6 บล็อคข้างหน้า
การคำนวณค่า nonce และแฮชของแต่ละบล็อคนั้นเป็นงานที่มีต้นทุนสูงเพราะต้องใช้ไฟฟ้าและเครื่องที่แรงจึงคำนวณได้รวดเร็ว หลายค่ายสร้างชิปเฉพาะสำหรับการคำนวณค่าบล็อค กระบวนการนี้มีแรงจูงใจระบุให้ผู้ที่สามารถคำนวณ ค่า nonce และแฮชได้สำเร็จ สามารถประกาศนำเงินเข้ากระเป๋าตัวเองได้ 50 BTC (มูลค่าปัจจุบ้นคือ 600 ดอลลาร์หรือเกือบสองหมื่นบาท) เงินจำนวนนี้จะลดลงเหลือครึ่งหนึ่ง ทุกๆ 210,000 บล็อคที่คำนวณได้ กระบวนการนี้เป็นแนวคิดที่จะจำกัดจำนวน BitCoin ไม่ให้เกิน 21,000,000 BTC
ระบบโซ่ของบล็อคที่สร้างฐานข้อมูลของ BitCoin แต่ละบล็อคจะบันทึกการโอนเงินไว้นับร้อยรายการ โดยเครื่องทั่วโลกจะเชื่อถือเพียงสายที่ยาวที่สุด (สีดำ) แม้บางครั้งจะมีการคำนวณบล็อคได้พร้อมกันทำให้เกิดการแตกสาย แต่เมื่อสายใดแข่งขันแล้วแพ้ สายนั้นก็จะถูกทิ้ง (สีเทา) ทุกสายจะชี้กลับไปยังบล็อคเริ่มต้นที่เรียกว่า Genesis Block ให้เงิน 50BTC แก่ Satoshi ผู้สร้าง BitCoin แม้เขาจะหยุดการพัฒนาซอฟต์แวร์และไม่ได้พูดคุยในเว็บบอร์ดแล้ว แต่บัญชีของเขาก็ยังมีรายการอยู่เรื่อยๆ
เนื่องจากไม่มีศูนย์กลางควบคุม จึงเป็นไปได้ที่จะมีเครื่องคอมพิวเตอร์หลายเครื่องในโลก คำนวณบล็อคใหม่ออกมาได้พร้อมกัน โดยมีจำนวนข้อมูลการโอนไม่เท่ากันและค่า nonce และแฮชที่แตกต่างกัน ทำให้เกิดการ "แตกสาย" ของฐานข้อมูล BitCoin อาศัยแนวคิดว่าเครื่องส่วนใหญ่ในโลกนั้นเป็นเครื่องที่ดีและคำนวณอย่างซื่อสัตย์ เมื่อเกิดการแตกสายของฐานข้อมูลเครื่องทุกเครื่องจะเลือกสายที่ยาวที่สุด นั่นคือ เมื่อมีการคำนวณบล็อคลำดับเดียวกันได้พร้อมๆ กัน ทั้งสองสายจะต้องแข่งกันคำนวณบล็อคต่อไปให้เร็วที่สุด หากบล็อคใดแพ้ สายนั้นจะถือเป็นสายกำพร้า (Orphaned Block) และคอมพิวเตอร์ทุกเครื่องในเครือข่ายจะไม่สนใจต่อสายนั้นอีกต่อไป ทำให้ผู้ที่คำนวณบล็อคได้สำเร็จและได้รับเงิน 50BTC ถูกยกเลิกเงินของตัวเอง เพราะเงินที่ได้รับจะถูกบันทึกในสายหลักเท่านั้น การคำนวณโซ่ของบล็อค (Block Chain) ใหม่จะใช้ทรัพยากรมหาศาล เช่นทุกวันนี้ที่มีจำนวนบล็อคในโลกเกือบสองแสนบล็อค ในภาพรวมแล้วทั้งโลกจึงมีฐานข้อมูลการโอนเงินเพียงฐานข้อมูลเดียวที่มองเห็นเหมือนกันทั่วโลก
ทุกวันนี้การคำนวณบล็อคใหม่จะใช้เวลา 5-10 นาที ในช่วงแรกโปรแกรมกระเป๋าเงิน BitCoin จะเปิดให้ทุกเครื่องช่วยกันคำนวณบล็อคนี้ไปพร้อมๆ กัน แต่เนื่องจากการคำนวณยากขึ้นเรื่อยๆ จนคอมพิวเตอร์ธรรมดาไม่สามารถคำนวณได้ทันและจะมีคอมพิวเตอร์เพียงเครื่องเดียวในระบบที่ได้รับเงิน 50BTC ไปในแต่ละบล็อค ช่วงหลังจึงมีการรวมกลุ่มแบบต่างๆ เพื่อเร่งคำนวณค่า nonce และแฮชให้เร็วขึ้นเรื่อยๆ กลายเป็นการแข่งขันคำนวณค่า SHA256 ขนานใหญ่ทั่วโลก หลายกลุ่มอาศัยชิปกราฟิกเพื่อจะคำนวณค่าให้เร็วขึ้น บางกลุ่มใช้ชิป FPGA ที่ออกแบบมาเป็นพิเศษเพื่อช่วยเร่งการคำนวณ บางกลุ่มเปิดรับสมาชิกจากภายนอกโดยมีสัญญากันว่าจะแบ่งเงินให้ตามสัดส่วนที่คำนวณได้ ไม่ว่าจะเป็นผู้คำนวณบล็อคได้สำเร็จหรือไม่ เรียกว่า mining pool
ระบบของ BitCoin ยังเปิดให้ผู้โอนเงินสามารถโอนค่าธรรมเนียมเข้าไปยังผู้ที่คำนวณบล็อคได้สำเร็จ แนวทางนี้ทำให้การโอนเงินแต่ละครั้งถูกบันทึกไม่พร้อมกัน เพราะผู้ที่คำนวณบล็อคจะพยายามดึงรายการโอนเงินที่มีค่าธรรมเนียมเข้าสู่บล็อคที่ตัวเองกำลังคำนวณก่อนเสมอ ระบบสุดท้ายแล้วเมื่อเงินฟรีที่ได้รับจากคำนวณบล็อคหมดไป ทุกคนจะต้องจ่ายค่าธรรมเนียมเพื่อให้การโอนเงินของตัวเองได้รับการบันทึก ระบบการโอนเงินและค่าธรรมเนียมจะเป็นระบบเสรี คือ ถ้าเราประกาศค่าธรรมเนียมการโอนน้อยเกินไป ผู้คำนวณบล็อคจะไม่สนใจรวมรายการโอนเงินของเราเข้าสู่บล็อคของตัวเองที่กำลังคำนวณ ในอนาคตเราจะรู้ได้ว่าเราต้องประกาศค่าธรรมเนียม "ประมาณเท่าใด" จึงได้รับการบันทึกลงในฐานข้อมูล นั่นคือคนที่คำนวณบล็อคที่คำนวณได้เร็วที่สุด ยอมรับรายการโอนของเราเข้าไปคำนวณในบล็อคให้
ทั้งหมดคือมุมมองในเชิงเทคโนโลยีของ BitCoin ความน่าทึ่งของมันไม่ได้หยุดอยู่ที่การเป็นระบบการเงินที่เปิดเผยทุกอย่าง มันยังสร้างมุมมองใหม่ๆ ในเชิงเศรษฐกิจที่น่าสนใจ เพราะระบบการเงินทั่วไปในโลกนั้นเงินในระบบมีจำนวนมากขึ้นเรื่อยๆ ผ่านการพิมพ์เงินของธนาคารกลาง แต่ในระบบ BitCoin ไม่สามารถเพิ่มเงินในระบบได้ เราจะกลับมามาสำรวจมุมมองทางการเงินต่อ BitCoin อีกครั้งในบทความตอนต่อไป