สรุปหัวข้อ Plasma Scaling Solution ในงาน Unblock Bangkok
Plasma: A second layer scaling solution for Ethereum.
งาน Unblock Bangkok ครั้งนี้จัดขึ้นโดยความร่วมมือระหว่าง Asia Blockchain Review และ Bitcoin Addict Thailand ธีมงานว่า “Blockchain Scalability — Challenges and Future” ในวันที่ 26 มีนาคม 2019
ในงานมี Speaker ทั้งหมด 3 ท่าน ซึ่งเป็นคนที่เรารู้จักกันดีในวงการ Blockchain Developer โดยทั้ง 3 ท่านนี้คือ
- คุณ George Sedky จาก Liquidity Network พูดถึง NOCUST เป็น Layer 2 แบบ Commit-Chain (คือ side-chain แบบ non-custodial) ใครสนใจดูรายละเอียดได้ที่ Whitepaper ครับ
- คุณโต๊ด Nattapon Nimakul จาก KULAP พูดถึง Plasma เป็น Layer 2 บน Ethereum ที่เรารู้จักกันดี และในบล็อกจะสรุปหัวข้อนี้
- คุณบอส Adirut Nithilerdviwat จาก Lightnet พูดถึง Velocity ซึ่งเป็น Payment channels บน Stellar เป็น Layer 2 เช่นกัน แต่เป็นแบบ Off-Chain ตอนนี้กำลังอยู่ในระหว่างพัฒนา
ก่อนที่เราจะเข้าสู่การสรุปหัวข้อ Plasma ฝากคนที่สนใจเรื่องนี้ติดตามได้ที่กลุ่ม Plasma Developer Thailand เผื่อวันหน้ามีโอกาสจัด Event เกี่ยวกับ Plasma กันครับ
โต๊ดเปิดด้วยการอธิบายว่า Plasma คือ โซลูชั่นในการ scaling ของ Ethereum network แบบ On-Chain โดยมี 3 คุณลักษณะเด่นคือ Speed, Non-custodial และ Security
Plasma เป็นแนวคิดของ Joseph Poon กับ Vitalik Buterin โดยทั้งสองได้เขียน Whitepaper ขึ้นวันที่ 11 สิงหาคม 2017
ในตอนนี้ได้มีคนเอาแนวคิดนี้ไป Implement จริง อย่างเช่น
- Plasma MVP (หรือ Minimum Viable Plasma) สร้างขึ้นโดย Vitalik และได้รับความร่วมมือกับ Joseph Poon และ David Knott ในช่วงเดือนมกราคม 2018 ซึ่งเป็นโปรเจคเริ่มต้นของ Plasma ตัวแรกเลย ทาง Vitalik ได้เขียนรายละเอียดไว้ที่ ethresear.ch ใครสนใจก็เข้าไปอ่านรายละเอียดกันได้ครับ
- Plasma Cash เวอร์ชั่นแรกก็ยังถูกสร้างโดย Vitalik และได้รับความร่วมมือกับ Karl Floersch และ Dan Robinson ในช่วงเดือนมีนาคม 2018 (รายละเอียด ethresear.ch) จริง ๆ แล้ว Plasma Cash ก็คือ Plasma นี่ละ แต่ที่ใช้ชื่อ Plasma Cash เนื่องจากว่าในการส่งเหรียญเข้า Plasma chain ในแต่ละครั้งเหรียญจะเหมือนกันคือมี Unique coin ID เดียวกัน ยกตัวเช่น ครั้งแรกที่ส่งไป 5 ETH ในครั้งนี้จะมี ID คือ 1 ต่อมาในครั้งที่สองส่ง 10 ETH จะมี ID คือ 2 ซึ่งเหรียญเหล่านี้ไม่สามารถแบ่งแยก หรือรวมกันได้ จุดนี้คนตั้งชื่อมองว่ามันเหมือนกับ Cash ต่อมาไม่นานทาง Loom Network ก็นำเอา Plasma Cash มาพัฒนาต่อเป็นชื่อโครงการว่า Plasma Cash for ERC721 Tokens ซึ่ง ERC721 นั้นเป็นเหรียญที่มีเอกลักษณ์ (unique) ที่แตกต่างกันในแต่ละเหรียญจึงสามารถนำไปทำโปรเจคของ Loom Network ที่เป็นการ์ดเกมส์ Zombie Battleground ได้
Note: Plasma Cash เวอร์ชั้นของ Vitalik ยังมีจุดเด่นอีกอย่างคือ เรื่องการเช็คประวัติการเปลี่ยนมือของเหรียญทำได้เร็วขึ้น ด้วยคุณสมบัติของ Sparse Merkle tree
- ยังมีอีกหลายตัวเช่น Tesuji Plasma, Plasma XT, Plasma Debit และอื่น ๆ ใครสนใจอ่านเพิ่มเติมได้ที่ Consensys ครับ
ตัวสุดท้ายที่โต๊ดพูดถึงคือ Plasma Group นำทีมโดย Kelvin Fichter และ Karl Floersch ซึ่งเป็นตัวใหม่พึ่งเปิดตัวกุมภาพันธ์ 2019 นี้เอง (Github เริ่มตั้งแต่ ธันวาคม 2018) โดย Karl มองว่าโปรเจค Plasma ชักจะเริ่มเยอะ และกระจายกัน จึงเกิดไอเดียให้มาร่วมกันพัฒนาดีกว่าจึงเป็นที่มาของชื่อว่า “Plasma Group”
ทำความรู้จักกับ Plasma Group
- ปัจจุบันเป็นเวอร์ชั้น v0.0.1-alpha
- Consensus ใช ้POA (Proof of Authority) สามารถปรับไปใช้ POS ได้ (ในส่วน POS ยังไม่ได้พัฒนา)
- เขียน Predicate Contract ได้ (เหมือนกับ Smart Contract บน Ethereum นั้นละ แต่เป็นบน Plasma Chain)
- มีระบบ Plasma Network Registry กลาง ที่อนุญาตให้ใครก็ได้มาสร้าง Plasma Chain ของตัวเอง (ไม่ต้องเขียนโค้ด เพราะใช้ระบบ Smart Contract Factory)
- ใช้เทคโนโลยี Atomic Swap ส่งเหรียญได้ระหว่าง Plasma Chain แต่ปัจจุบันยังไม่มีส่วนนี้ อาจมีการเปลี่ยนแปลงในอนาคต
- สนใจลองเล่น Plasma Group ได้ที่ http://krplasma.kulap.io (อัพเดต: ปัจจุบันไม่ได้รัน node แล้วนะครับ)
ทำความรู้จักกับ Predicate Contract
Predicate Contract เป็นวิธีการเขียน Smart contract เพื่อใช้บน Plasma Chain โดยเราจะเรียกว่าเป็นการสร้าง “Plapp” (หรือ Plasma app) โดยระบบ Plasma จะทำการตรวจสอบการเปลี่ยนสถานะ (State) ของสิ่งที่เราสนใจ เช่น อายุ รถยนต์ที่ขับ ความเป็นเจ้าของบ้าน ฯลฯ โดยธุรกรรมเหล่านี้สามารถทำได้อย่างรวดเร็วบน Plasma Chain และมีความปลอดภัย เนื่องจากมีการเขียน Smart Contract รองรับการจัดการ สถานะ (State) เหล่านั้น
ที่น่าสนใจในมุมมองนักพัฒนาคือ Plapp เราสามารถใช้ภาษาที่เราคุ้นเคยกันบน Ethereum นั้นก็คือ Solidity ในการพัฒนาได้เลย หรือหากใครจะใช้ภาษา Vyper ก็สามารถใช้ได้
ปล. สไลด์ Plasma Scaling Solution
ปล2. Github โครงการ Plasma group: https://github.com/plasma-group/
ปล.3 กลุ่ม Plasma Developer Thailand
ฝากติดตามเราได้ที่ Facebook Page ผ่านทาง https://www.facebook.com/KULAP.io/ ได้เลยครับ 🙂