BREAKING NEWS
latest

728x90


468x60

วันเสาร์ที่ 25 สิงหาคม พ.ศ. 2561

กำเนิด Blockchain ...ธุรกรรมทุกธุรกรรมในระบบที่เกิดจะไม่สามารถถูกซ่อนได้อีกต่อไป



กำเนิด Blockchain

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

บอกล่วงหน้าไว้ก่อนว่าบทความในตอนที่ 1 ยังค่อนข้างอ่านง่ายนะครับ แต่พอเรามาเริ่มพูดถึงที่มาที่ไปของสถาปัตยกรรม Blockchain มันจะเริ่มซับซ้อนขึ้นละ แต่ยังไงผมก็พยายามอธิบายในเรียบง่ายที่สุด แต่จะต้องใช้สมองประมวลผลมากขึ้นในบทความหลังจากนี้ อย่าเพิ่งมึนกันไปซะก่อนล่ะ

ระบบทดลองแบบที่ 1: ระบบบัญชีสามฉบับ (Triple-entry bookkeeping)

ในยุคที่เราไม่มีการซื้อขาย มีแต่การแลกเปลี่ยนสินค้า (Barter System) หมวดยูซีจินเป็นคนเลี้ยงวัว ส่วนหมวดซอแดยองเป็นชาวนาปลูกข้าว

เมื่อไหร่ก็ตามที่หมวดยูต้องการกินข้าว หมวดยูจึงไปหาหมวดซอเพื่อขอแลกข้าวกับวัวที่เขาเลี้ยงไว้ตามปกติ แต่ถ้าช่วงนั้นวัวของหมวดยูยังไม่โตพอที่จะแลกได้ การแลกเปลี่ยนก็ไม่เกิดขึ้น

หมวดยูจำเป็นต้องกินข้าวไม่งั้นก็อดตาย จึงทำสัญญากับหมวดซอ เพื่อขอข้าวหมวดซอมาก่อน เมื่อไหร่ที่วัวของหมวดยูโตพอ จะเอามาให้หมวดซอในภายหลัง

นั้นหมวดซอและหมวดยูเป็นเพื่อนกันมานานอยู่แล้ว จึงไม่มีปัญหาที่หมวดซอจะให้ข้าวที่ตัวเองปลูกไปล่วงหน้า แต่เพื่อความมั่นใจว่าหมวดยูจะรักษาคำพูด เขาทั้งคู่จึงร่างตั๋วสัญญาหนึ่งฉบับขึ้นมาเป็นหลักฐาน และขอให้คุณหมอคังเพื่อนอีกคนมาเป็นพยานในการเซ็นสัญญาครั้งนี้


หลังจากนั้นพวกเขาสำเนาตั๋วสัญญาไว้ 3 ฉบับ ทั้งคู่ต่างเก็บสำเนาตั๋วเอาไว้คนละฉบับเพื่อลงบัญชี ในตั๋วระบุว่า “หมวดยูติดหนี้หมวดซอเป็นวัว 1 ตัว” ส่วนหมอคังก็เก็บสำเนาตั๋วลงบัญชีไว้ในฐานะพยาน
ระบบสำเนาตั๋ว 3 ใบ นี้เรียบง่ายและมีคุณสมบัติด้านความปลอดภัยที่รับประกันว่าจะไม่มีใครโกงกันได้

หมอคังเป็นพยานของธุรกรรมนี้ พอมีเธอเข้ามาเป็นตัวกลาง เราจึงมั่นใจได้ว่าทั้งหมวดซอและหมวดยูจะโกงไม่ได้

สมุดบัญชีของหมอคังเป็นตัวยืนยันว่าการแลกเปลี่ยนเกิดขึ้นจริง ถ้าหมวดยูจะโกงด้วยการฉีกตั๋วทิ้งแล้วโกหกว่าไม่เคยติดหนี้หมวดซอมาก่อน หมวดซอสามารถเดินไปหาหมอคังเพื่อขอดูหลักฐานได้
สมุดบัญชีของหมอคังป้องกันการปลอมแปลงตั๋วได้ ถ้าหมวดซอจะโกงด้วยการแก้ตั๋วจากวัว 1 ตัวไปเป็นวัว 10 ตัว หมวดยูสามารถเดินไปหาหมอคังเพื่อขอให้ช่วยยืนยันความจริงได้เช่นกัน
ระบบการลงบัญชีแบบนี้เรียกกันว่า triple-entry bookkeeping ครับ ซึ่งเป็นระบบที่เรียบง่ายแต่มีจุดอ่อนยิ่งใหญ่อยู่ คุณผู้อ่านพอจะมองออกไหมครับ..?

ปัญหาหลักของระบบนี้มีสองข้อ คือ

ระบบบอกเพียงแต่ว่าหมวดยูติดหนี้หมวดซอเป็นวัว 1 ตัว แต่ถ้าหมวดซอไม่ได้อยากได้เนื้อวัวจากหมวดยู แต่อยากได้ไข่ไก่จากนายอากัสแทน จะเป็นไปไม่ได้

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

ระบบการแลกเปลี่ยนแบบนี้จึงใช้งานไม่ได้จริง เว้นเสียแต่บุคคลที่สามจะต้องเป็นองค์กรขนาดใหญ่ที่เครดิตดีมากๆ (เช่น ระบบธนาคารในปัจจุบัน)

ระบบทดลองแบบที่ 2: สร้างหน่วยแลกเปลี่ยน (generate unit of exchange)

หมวดยูขอข้าวหมวดซอ แต่ถ้าหมวดซอไม่อยากได้เนื้อวัว แต่อยากกินไขไก่จากอากัสจะทำยังไง ถ้าทุกคนสามารถสร้างหน่วยแลกเปลี่ยนที่เป็นมาตรฐาน แล้วเอามาใช้ระบุในตั๋ว จะดีกว่าการระบุเป็นสินค้า
สมมติว่าเราระบุเป็นหน่วยที่เรียกว่า “เหนื่อย”

เช่น เลี้ยงวัว 1 ตัวจนพร้อมขายมีมูลค่า 100 เหนื่อย, ปลูกข้าว 1 กระสอบจนพร้อมขายมีมูลค่า 20 เหนื่อย ดังนั้น ข้าว 5 กระสอบ จึงสามารถแลกวัว 1 ตัวได้

และเราก็ทำการระบุหน่วยแลกเปลี่ยนลงไปในตั๋วแทนที่จะระบุเป็นสินค้า

ข้อดีคือ เมื่อหมวดยูติดหนี้หมวดซอ 100 เหนื่อย หมวดซอสามารถส่งต่อตั๋วนี้ให้กับบุคคลอื่นเพื่อใช้จ่ายแทนหนี้มูลค่า 100 เหนื่อยได้เลยเป็นทอดๆ ต่อไป


แต่ปัญหาอีกข้อยังคงอยู่ คือเรื่องการไว้เนื้อเชื่อใจกับบุคคลที่สามมากจนเกินไป ขั้นต่อไปคือการแก้ไขปัญหา ทำยังไงถ้าหมอคังฮั้วกับหมวดยูหรือหมวดซอ..?!?

วิธีดีที่สุดคือ ต้องไม่มีหมอคัง..!!

ระบบทดลองแบบที่ 3: public key infrastructure (PKI)

ลองมาพิจารณาระบบที่ 1 กันใหม่ ลองมาตั้งคำถามว่าทำไมเราถึงต้องมีตั๋วสัญญาและหมอคัง..? หน้าที่หลักๆ ของระบบนี้มี 3 ข้อ

ยืนยันว่าเกิดธุรกรรมจริงๆ (ไม่มีใครอ้างว่าไม่มีการแลกเปลี่ยนเกิดขึ้นได้)

ยืนยันตัวตนผู้ทำธุรกรรม (ลายเซ็นของหมวดยูลูกหนี้และหมวดซอเจ้าหนี้)

ป้องกันการปลอมแปลง (ไม่มีใครสร้างหลักฐานเท็จได้ ถ้าไม่ฮั้วกับหมอคัง)

มีอะไรที่จะมาทำหน้าที่หลัก 3 อย่างนี้ได้หรือไม่..? หมวดซอคิดอย่างหนัก สุดท้ายได้คำตอบที่ยอดเยี่ยมมาก คือถ้าเขาเข้ารหัสตั๋วสัญญาด้วย public-key cryptography จะทำให้เขาสามารถตัดพยานคนกลางทิ้งไปได้ทันที

หลายคนไม่เข้าใจ public-key cryptography จริงๆ แล้วมันง่ายมากครับ


แต่เทคนิคที่หมวดซอเอามาใช้กับระบบนี้เป็นการสลับหน้าที่กันครับ ด้วยการเปลี่ยน encrypt key เป็น private key และ decrypt key เป็น public key แทน หลักการเป็นแบบนี้ ลองค่อยๆ คิดตามนะครับ

1. หมวดซอและหมวดยูสร้าง encrypt/decrypt keypair ขึ้นมา

2. หมวดยูลูกหนี้เปิดเผย decrypt key ให้คนทั้งโลกรับรู้ (เป็น public ผ่านเว็บไซต์ หรือผ่านช่องทางใดช่องทางหนึ่ง เช่นปิดประกาศ decrypt key ไว้ที่ป้ายประกาศของหมู่บ้าน)

3. ทั้งคู่ทำตั๋วสัญญาแบบปกติขึ้นมา รอบนี้ทั้งคู่ไม่ต้องเซ็นชื่อแล้ว เพราะจะใช้ key ในการเซ็นชื่อแทน


4. หมวดยูลูกหนี้เซ็นชื่อแบบ digital signature ด้วยการเข้ารหัสตั๋วสัญญานั้นด้วย encrypt key เป็นการยืนยันภาระหนี้ (ส่วนหมวดซอเจ้าหนี้ไม่ต้องเซ็นชื่อก็ได้ เพราะเป็นผู้รับผลประโยชน์ คงไม่มีใครปฏิเสธผลประโยชน์ที่ตัวเองจะได้รับ)

5. หมวดยูเก็บรหัส encrypt key เอาไว้กับตัว (encrypt key หรือ digital signature นี้หมวดยูต้องเก็บไว้ให้ดีห้ามให้ใครรู้ เป็น private key เพื่อไม่ให้ใครแอบมาเซ็นชื่อแทนตัวเองได้)

6. ทั้งคู่เก็บตั๋วที่เข้ารหัสเอาไว้แล้วลงบัญชีทั้งสองฝ่าย

การเข้ารหัสนี้ตอบโจทย์ 3 ประการเบื้องต้นของระบบ triple-entry bookkeeping ได้

1. ยืนยันว่าเกิดธุรกรรมจริงๆ
decrypt key ถูกเปิดเผยให้คนทั้งโลกรู้ ใครก็ตามในโลกนี้สามารถดูตั๋ว ก็จะรู้ทันทีว่า หมวดยูติดหนี้หมวดซอ 100 เหนื่อยจริง

2. ยืนยันตัวตนผู้ทำธุรกรรมได้
หมวดยูลูกหนี้จะอ้างไม่ได้ว่ามีคนปลอมตั๋ว เพราะมีหมวดยูคนเดียวที่จะเซ็นชื่อด้วย encrypt key ได้ (ย้ำกันอีกทีว่ามันเป็นหน้าที่ที่ลูกหนี้จะต้องเก็บ encrypt key ที่เป็นเหมือน digital signature อันนี้ไว้ให้ดี เพราะถ้าใครขโมยไปได้ จะสามารถปลอมเป็นลูกหนี้และสร้างตั๋วปลอมขึ้นมาหาประโยชน์จากลูกหนี้ได้ทันที)

3. ป้องกันการปลอมแปลง

สำเนาตั๋วที่หมวดซอเจ้าหนี้เก็บไว้จะยังคงป้องกันไม่ให้หมวดยูลูกหนี้โกงตัวเลขด้วยการปลอมตั๋วว่าติดหนี้หมวดซอเพียงแค่ 10 เหนื่อยได้

แต่ตรงกันข้ามหมวดซอเจ้าหนี้ไม่มีสิทธิจะแก้หรือปลอมแปลงตั๋ว เพราะหมวดซอมีแต่ decrypt key จะทำได้แค่ดูตั๋ว แต่ตัว encrypt key ที่จะแก้ไขเปลี่ยนแปลงตั๋วอยู่กับหมวดยูคนเดียวเท่านั้น
สรุปคือ หลังออกตั๋วแล้ว ทั้งเจ้าหนี้และลูกหนี้ ต่างฝ่ายต่างไม่สามารถแก้ไขตั๋วนี้ได้เลย
ทีนี้ด้วยการใช้ระบบ public-key cryptography เราก็ตัดตัวกลางบุคคลที่สามอย่างหมอคังทิ้งไปได้..!!
ลาก่อนหมอคัง..

นี่เป็นที่มาของคุณสมบัติที่สำคัญที่สุดข้อหนึ่งของ cryptocurrency อย่าง Bitcoin นั่นก็คือเรื่องของความโปร่งใสครับ ธุรกรรมทุกธุรกรรมในระบบที่เกิดจะไม่สามารถถูกซ่อนได้อีกต่อไป
ระบบตั๋วแบบนี้ ตัดพยานคนกลางทิ้งไปได้จริง สามารถนำมาใช้เป็นสื่อกลางในการแลกเปลี่ยนได้หรือยัง..? คำตอบคือยังครับ มนุษย์เรามีกลไกการโกงที่ซับซ้อนซ่อนเงื่อนที่ยังสามารถหาทางโกงจากระบบนี้ได้อีก

การโกงแบบนี้เรียกว่า double spending ผมจะมาเล่าต่อตอนหน้าว่าระบบตั๋ว PKI จะเจอปัญหาการโกงยังไง


อ่านตอนที่ 1 https://goo.gl/nHWYD8
อ่านตอนที่ 3

ที่มา : https://goo.gl/oUSR3x

« PREV
NEXT »

ไม่มีความคิดเห็น