ปรัชญาการออกแบบ Ethereum 2.0 ด้วยระบบ Validation

Nattapon Nimakul
KULAPofficial
Published in
3 min readAug 20, 2020

Vitalik Buterin หนึ่งในผู้สร้าง Ethereum ที่มีบทบาทสำคัญต่อการพัฒนา Ethereum เสมอมาจนถึงปัจจุบัน ด้วยแผนการพัฒนา Ethereum 2.0 ที่ได้วางไว้ตั้งแต่วันแรกที่ Ethereum เปิดตัว ว่าจะเปลี่ยน Consensus จาก Proof-of-Work (PoW) ไปเป็น Proof-of-Stake (PoS)* ในอนาคต

* เปลี่ยนกระบวนการสร้าง Block จากเดิมที่ใช้คอมพิวเตอร์สมรรถนะสูง ไปเป็นการวางหลักทรัพย์ และกำหนดบทลงโทษหากก่อกวนระบบ ด้วยการยึดทรัพย์ที่วางไว้

วันนี้ผมจะพาทุกท่านมาดูมุมมองของการพัฒนาครั้งนี้ไปด้วยกัน เนื่องจากหนทางยังอีกยาวไกล (ปัจจุบันยังอยู่ในเฟส 0 จาก 4 เฟส 😂) โดยนาย Vitalik ได้พูดถึงปรัชญา “หลักการยืนยันความถูกต้องของ Blockchain” ไว้อย่างน่าสนใจ

1) การโจมตี 51% ด้วยข้อมูลที่ไม่ถูกต้อง ภาพจาก https://vitalik.ca/general/2020/08/17/philosophy.html

ทำไมเราถึงต้องรัน Full Node?

การทำงานของ Blockchain สาธารณะ (Bitcoin, Ethereum) จะอาศัย Node (~คอมพิวเตอร์) ทำงานกันเป็นเครือข่าย พูดคุยกันแบบ Peer-to-peer ทำให้มีอิสระในการทำงาน และไม่มีคน กลุ่มคน หรือองค์กรใด ๆ สามารถควบคุมได้ แต่เพื่อให้ทุกคนมีข้อมูลตรงกัน จึงมีการกำหนดหลักการสร้างชุดข้อมูลใหม่ (Block) และให้ทุก Node ในเครือข่ายช่วยกันตรวจสอบความถูกต้อง

Node ที่ทำหน้าที่สร้าง Block เราจะเรียกว่า Miner / Validator ส่วน Node ที่ทำหน้าที่ตรวจสอบ เราจะเรียกว่า Full Node

จากภาพ 1) เราจะเห็นว่ามี Miner / Validator พยายามสร้าง Block ที่ไม่ถูกต้อง (เช่นแอบโอนเงินชาวบ้านให้ตัวเอง) พอ Block สีแดงนี้ถูกส่งมาให้ Full Node ที่กระจายอยู่ทั่วโลกทำการตรวจสอบ Full Node ก็จะทำการปฏิเสธ Block นี้ ทำให้ Blockchain จะวิ่งต่อในสายล่าง (สีเขียว) ที่เป็นสายที่มีแต่ข้อมูลที่ถูกต้องเท่านั้น

แต่กลับกัน หากทุกคนพร้อมใจกันไม่ตั้ง Full Node ของตัวเอง แต่เชื่อถือ Miner / Valiator เลย Blockchain จะวิ่งต่อในสายบน (สีแดง) ส่งผลให้ทุกคนใน Blockchain ตกอยู่ในความเสี่ยงทันที

สรุปได้ว่า หากไม่มี Full Node หรือมีไม่เพียงพอ การโจมตีระบบโดย Miner / Validator จะสำเร็จได้โดยง่าย แต่หากมี Full Node เพียงพอ ต่อให้มีการสร้าง Block สีแดงสำเร็จ เครือข่ายก็จะไม่นับรวมเข้ามาในสาย Blockchain อยู่ดี

2) PoW vs PoS ภาพจาก https://www.skalex.io/proof-of-work-vs-proof-of-stake/

ทำไมระบบ Proof-of-Stake ถึงน่าสนใจกว่า Proof-of-Work

ในระบบ PoW คนสร้าง Block จะเรียกว่า Miner ที่ต้องอาศัยเครื่องขุด และได้รับผลตอบแทนเป็นเหรียญดิจิทัล

ในระบบ PoS คนสร้าง Block จะเรียกว่า Validator ที่ต้องวางหลักทรัพย์เป็นเหรียญดิจิทัล และได้รับผลตอบแทนเป็นเหรียญดิจิทัล แต่หากกระทำผิดจะถูกยึดทรัพย์

เปรีบเทียบกระบวนการลงโทษ

ในการสร้าง Block ของระบบ PoW หาก Miner พยายามสร้าง Block ที่ผิด จะแค่ถูกปฏิเสธจากเครือข่าย* ส่วนระบบ PoS หาก Block ถูกระบุว่าผิด Validators ที่ลงความเห็นต่อ Block นั้น จะถูกยึดทรัพย์ (ทั้งหมดหรือบางส่วน)

Miner ในระบบ PoW ต้นทุนหลัก ๆ คือค่าไฟ และค่าเสื่อมของเครื่องขุด

จากข้อมูลนี้ หากบทลงโทษของ PoS ถูกกำหนดเอาไว้อย่างเหมาะสม จะทำให้ต้นทุนในการโจมตีระบบ PoS สูงกว่า PoW เป็นอย่างมาก และถึงแม้สามารถสร้าง Block ที่ผิดได้สำเร็จแล้ว การที่ Full Node ทั่วโลกจะยอมรับ ก็จะยิ่งยากขึ้นไปอีก

Sharding และ Validation

Ethereum Sharding ภาพจาก https://medium.com/nearprotocol/detailed-overview-of-ethereum-2-0-shard-chains-committees-proposers-and-attesters-a9992d2fd103

Sharding คือหนึ่งในจุดขายของ Ethereum 2.0 ที่จะแตก Blockchain ออกเป็นหลายสาย (มองเป็นถนนที่มี 100 เส้นขนานกันไป) ทำงานไม่ขึ้นต่อกัน (แต่คุยไปมาหากันได้) ถ้าเรากำหนดให้ทุก Full Node ต้องตรวจสอบทุกธุรกรรมของทุกสาย (Validation) การทำงานคงไร้ประสิทธิภาพ และไม่ตอบโจทย์การแตกเป็นหลายสายตั้งแต่แรก ดังนั้นการออกแบบที่เหมาะสมควรจะเป็น “ตรวจสอบเท่าที่จำเป็น” แทน

ตรวจสอบเท่าที่จำเป็น ถือเป็นพัฒนาการที่สำคัญในระบบ Blockchain เพราะแต่เดิมการจะเป็น Full Node ได้ ต้องตรวจสอบทุกธุรกรรมเท่านั้น แต่ Ethereum 2.0 มองต่างออกไป ว่าเราสามารถทำระบบ False Alarm ที่มีแนวคิดว่า แต่ละ shard มี Full Node ที่ตรวจสอบทุกธุรกรรมของสายตัวเอง แล้วส่งสัญญาณ False Alarm ออกมาหากเจอธุรกรรมที่ไม่ถูกต้อง พอ Node ไหนที่ได้รับสัญญาณนี้ ก็จะทำการขอ Fraud Proof ไปที่เครือข่าย และทำการ re-validate (ตรวจสอบอีกครั้ง) ว่าผิดจริง แล้วจึงส่ง False Alarm ออกไปเป็นทอด ๆ จนทุก Node ในเครือข่ายได้รับสัญญาณนี้จนครบ

False Alarm นี้ทำให้ลดภาระการตรวจสอบทุกธุรกรรม (Computing power) ลงไปได้มาก จนสามารถรัน Full Node บนเครื่องโน๊ตบุ๊คก็ยังได้

Light clients

Light client คือโปรแกรม Blockchain ที่ขนาดเบา และสามารถรันอยู่บนอุปกรณ์ขนาดเล็กได้

สิ่งที่เป็นความฝันของผู้พัฒนา Blockchain สาธารณะเสมอมา แต่ยังไม่เกิดขึ้นจริงในปัจจุบันก็คือ การให้มือถือ / ตู้เย็น / แอร์ / และทุกอุปกรณ์ IoT (Internet of things) สามารถรัน Blockchain ได้โดยปลอดภัย จากแต่เดิม Light client ได้ข้อมูลจาก Full Nodes ที่ตัวเองเชื่อมต่ออยู่เท่านั้น* เป็น Light client จะ subscribe (รับข้อมูล) fraud proof package ด้วยอีกทางหนึ่ง (คล้าย ๆ ระบบ push notification เวลา facebook มีข้อความใหม่) ทำให้ระบบมีความแข็งแกร่ง และสามารถใช้งานได้จริง

* Light client สามารถโดนโจมตีได้โดยง่ายจาก Miner / Validator หากปราศจาก Fraud proofs

สรุป Ethereum 2.0

Ethereum 2.0 นอกจากเปลี่ยนระบบ Consensus จาก PoW ไปเป็น PoS แล้ว ยังมีการเร่งประสิทธิภาพด้วยระบบ Sharding ที่แตก Blockchain ออกเป็นหลายสาย และสร้างระบบ False Alarm / Fraud Proof ขึ้นมาเพื่อให้ Full Node สามารถรันบนคอมพิวเตอร์ส่วนบุคคลได้ เพิ่มความแข็งแกร่งของระบบไปอีกระดับ เพราะใคร ๆ ก็รัน Full Node ได้ ผสมกับ Light client ที่เอา Blockchain ไปรันบนอุปกรณ์ขนาดเล็กเช่นมือถือได้อย่างมั่นใจ ทำให้เราสามารถสรุปได้ว่า Ethereum 2.0 ถือเป็นเป้าหมายสำคัญของการยกระดับ Blockchain สาธารณะ ให้ดียิ่งขึ้น จนเข้าใกล้ Mass Adoption (การมี Blockchain อยู่ในชีวิตประจำวัน) ในเร็ววัน

Ref:
A Philosophy of Blockchain Validation (Vitalik Buterin) https://vitalik.ca/general/2020/08/17/philosophy.html

--

--