รีวิว LINE Blockchain Platform: น่าใช้ไหม สรุปให้ฟัง!

Mike Phulsuksombati
LINE Developers Thailand
7 min readSep 8, 2020

--

🔥 พึ่งเปิดตัวไปสดๆร้อนๆ กับ LINE Blockchain Developers ในญี่ปุ่น ที่ตอนนี้เปิดให้ developer เริ่มสร้าง service บน LINE Blockchain ได้แล้ว

Developer ท่านไหนที่สนใจ blockchain แต่ยังไม่เคยเริ่มบอกเลยว่าห้ามพลาดจริงๆครับ เพราะว่า LINE ทำ developer experience สำหรับ LINE Blockchain ออกมาได้ดีมากจริงๆ แม้ตอนนี้ถึงยังไม่ได้เปิดให้บริการในไทย แต่มันน่ามุด VPN เข้าไปเล่นที่ญี่ปุ่นซะทีเดียว 🇯🇵

ในบทความนี้เราจะมาทำความรู้จัก LINE Blockchain Platform เบื้องต้นกันครับ อาจจะมีศัพท์ด้าน Blockchain เยอะนิดนึง แต่สามารถดูได้ที่ Glossary ท้ายบทความครับ

LINE Blockchain Platform

ก่อนอื่นมารู้กันก่อนว่า LINE สร้าง LINE Blockchain Platform มาทำไม?

The LINE Blockchain project was launched to create a blockchain platform and token economy that regular people around the world would actually like and use in their daily lives. (LINE Blockchain Ecosystem Principle,)

จะเห็นว่าตอนนี้ blockchain และ cryptocurrency ต่างๆยังค่อนข้างเป็นเรื่องไกลตัวของคนทั่วไป LINE ต้องการสร้าง LINE Blockchain Platform เพื่อให้คนทั่วไปสามารถเข้าถึงได้ง่ายและใช้ได้ทุกวัน

LINE Blockchain Platform ประกอบด้วยองค์ประกอบ 3 ส่วนคือ

  • LINE Blockchain — เป็น blockchain network ที่ operate โดย LINE
  • LINE Blockchain Developers — เป็น development platform สำหรับการสร้าง service ต่างๆ บน LINE Blockchain ประกอบด้วย console และ API ต่างๆที่ใช้ในการ interact กับ LINE Blockchain เช่นการ mint, transfer, burn tokens
  • BITMAX Wallet —เป็น wallet ในการเก็บ tokens และ ใช้ service ต่างๆ บน LINE Blockchain โดย BITMAX Wallet จะเชื่อมต่อกับ LINE ID ของ user

LINE Blockchain

LINE Blockchain เป็น private blockchain ที่ develop และ operate โดย LINE โดย LINE Blockchain มีจุดเด่นคือ

  • High Performance — ด้วย block confirmation time < 2 seconds with 100% finality ทำให้ user ได้ experience ที่ดี และยังสามารถรองรับ transaction ได้เป็นจำนวนมาก
  • User and developer friendly — โดยสำหรับ developer จะมี LINE Blockchain Developers platform ให้ใช้สำหรับ service management, token management และสำหรับ user ก็ไม่ต้องเก็บ private key สำหรับ wallet เองใช้ LINE ID แทน

ถ้ามองตาม Blockchain Scalability Trilemma จะเห็นว่า LINE เลือกที่จะเดินสาย centralize เพื่อ trade-off กับ scalability และ security เช่นเดียวกับ Ripple และ Stellar ซึ่งสอดคล้องกับเป้าหมายของ LINE Blockchain ที่จะ platform เพื่อให้เกิด service ต่างๆขึ้นสำหรับ user บน LINE มากขึ้น จึงไม่มีความจำเป็นที่จะต้อง decentralize

Blockchain Scalability Trilemma

สำหรับ consensus algorithm นั้น LINE Blockchain เลือกใช้ Practical Byzantine Fault Tolerance (PBFT) consensus algorithm¹ ซึ่งเป็นท่ามาตรฐานของ private blockchain และเสริมด้วย Proof of Stake (PoS)² และ Verified Random function (VRF)³ สำหรับการเลือก validators โดย design นั้นจะคล้ายกับ Tendermint Core

LINE Blockchain ยังมีการทำ sharding เพื่อเพิ่ม scalability เรียกว่า LINEAR Network โดยจะมี Root Chain 1 ตัว ที่คอยเชื่อมต่อกับ Leaf Chain หลายๆตัวเข้าด้วยกัน ซึ่ง Leaf Chain แต่ละ chain จะทำงานแยกจากกันและใช้ Root Chain ในการทำ interchain transfer

LINEAR Network

ซึ่ง service ต่างๆจะเลือก deploy ที่ Leaf Chain ไหนก็ได้เพื่อลดความหนาแน่นของ network ทำให้ทำ transaction ได้ไวขึ้น

LINE Blockchain จะมี 2 networks คือ Cashew และ Daphne โดย

  • Daphne จะเป็น Mainnet ที่ใช้ run service จริงๆ
  • Cashew จะเป็น Testnet ที่มี environment เหมือนกับ Mainnet ใช้สำหรับ test service (เช่นเดียวกับ Ropsten หรือ Rinkeby ใน Ethereum)

จะเห็นว่า LINE Blockchain นั้นใส่มาเต็มมากที่จะแก้ไขปัญหาเรื่อง scalability ให้ถึงที่สุด เพียงพอสำหรับรองรับการใช้งานของ user บน LINE เพื่อทำให้ user มี experience ที่ดีกับ service ต่างๆ ที่จะเกิดขึ้นบน LINE Blockchain นั่นเอง

LINE Blockchain Developers

LINE Blockchain Developers จะเป็น console และ API สำหรับใช้ LINE Blockchain โดยบน LINE Blockchain Developers จะสามารถใช้งาน

  • Service Management — ใช้สำหรับสร้าง service ที่จะเชื่อมต่อกับ LINE Blockchain และแก้ไข metadata ต่างๆ
  • Service Wallet Management — ใช้สำหรับ manage wallet ของ service ที่เราสร้างขึ้น โดยตัว platform เป็นคนดูแล private key ของ service wallet ให้
  • User Wallet Management — ใช้สำหรับ integrate BITMAX wallet ของ user เข้ากับ service และ check transaction history ต่างๆ
  • Token Management — ใช้สำหรับการสร้าง token รูปแบบต่างๆ โดยจะมี service token และ item token และใช้จัดการ token เช่น mint, transfer, burn

เราจะมาพูดถึง token ต่างๆที่อยู่ใน ecosystem ของ LINE Blockchain กันครับ โดยจะใช้ตัวอย่าง LINK Cinema ซึ่งเป็น service จองตั๋วหนังที่อยู่บน LINE Blockchain กันครับ

โดย token ต่างๆ บน LINE Blockchain จะมีอยู่ 3 ประเภทคือ

  1. Base Coin
  2. Service Token
  3. Item Token

Base Coin

LINK (LN)

Base Coin บน LINE Blockchain จะเรียกว่า LINK (LN) โดยถ้าเปรียบเทียบกับ Ethereum ก็คือ ETH นั่นเอง

โดยเราจะสามารถได้ LINK มา 2 วิธี คือ

  1. Trade ที่ Bitfront (เป็น cryptocurrency exchange ของ LINE)โดยจะมีคู่ LINK/BTC และ LINK/USDT
  2. Contribute ให้กับ LINE Blockchain ecosystem โดยการสร้าง service ต่างๆ*

*วิธีที่ 2 นี่ผมยังไม่แน่ใจว่า reward model เป็นอย่างไร ถ้าทราบแล้วจะมาบอกเพื่อนๆกันนะครับ

LINK จะเป็น currency หลักที่ user นำมาใช้กับ service ที่เราสร้าง โดย function หลักของ Base Coin คือการ transfer เช่น user สามารถใช้ LINK ในการซื้อ MovieTicket ใน LINK Cinema ได้เป็นต้น

บน Cashew (Testnet) จะใช้เป็น Test Coin(TC) แทน LINK(LN) ซึ่งสามารถกด faucet ได้ที่ console

Service Token

Service token จะเป็น fungible token⁴ ของ service ที่เราสร้างขึ้น โดยสามารถใช้แลกเปลี่ยนกับ token ของ service อื่นๆบน LINE Blockchain ได้ โดยถ้าเปรียบเทียบกับ Ethereum ก็คือ ERC-20 นั่นเอง

Service token จะใช้ Contract ID (เช่น 84ae…d14) เป็น identifier

สำหรับใน LINK Cinema จะเป็น MovieToken ที่เป็น reward point ที่ใช้เป็นส่วนลด 10% สำหรับการซื้อ MovieTicket เป็นต้น

Item Token

Item token จะเป็น token ที่ใช้แทน item ต่างๆใน service เรา โดยสามารถสร้างได้ 3 ประเภท คือ Fungible token⁴, Non-fungible token⁴ (NFT) และ Composable token

Item token จะใช้ Contract Id, Token Type และ Token Index เป็น identifier

สำหรับใน LINK Cinema จะมี item token ทั้ง 3 ชนิดคือ

Non-fungible item token เช่น MovieTicket ที่เป็น non-fungible เพราะตั๋วหนังแต่ละ token มีความแตกต่างกันทั้งหนังที่ไปดู, รอบที่ดู และที่นั่ง ถ้าเปรียบเทียบกับ Ethereum จะเป็น ERC-721 นั่นเอง

  • MovieTicket จะใช้ TokenType เป็น id ของหนังที่ไปดู (เช่น Tenet หรือ Mulan เป็นต้น) และ Token Index เป็น unique id ของรอบและที่นั่ง (เช่น 14:30, โรง 8 D13)

Fungible item token เช่น MovieDiscount ที่ลด 10 LINK บนสำหรับค่าตั๋ว หรือ SnackDiscount ที่ลด 20% ค่าขนม ที่เป็น fungible เพราะส่วนลดสำหรับ MovieDiscount หรือ SnackDiscount นั้นเหมือนกันหมด (เช่น MovieDiscount tokenใดๆ ก็ลด 10 LINK หมด)

  • MovieDiscount จะใช้ TokenType เป็น id ของ discount (เช่น ลดค่าตั๋ว 10 LINK) และ Token Index เป็น 000000 โดย default

Composable token เช่น โปรซื้อ 1 แถม 1 โดยเป็นการเอา Non-fungible token หลายๆ token มารวมกันเป็น token เดียว ถ้าเปรียบเทียบกับ Ethereum จะเป็น ERC-998 นั่นเอง

LINE Blockchain Developers ทำให้ developer สามารถสร้างและจัดการ token รูปแบบต่างๆที่จะใช้ใน service ผ่าน console ได้ง่ายมากๆ โดยแทบจะไม่ต้องเข้าใจ smart contract และ tool ที่เกี่ยวข้องในการ develop หลายตัวแบบใน Ethereum เลย (ไม่ต้องรู้ solidity, truffle, web3, etc.)

อีกทั้งการ manage token นั้นสามารถทำผ่าน console หรือ RESTful API ได้ง่ายๆ ทำให้ developer ที่ไม่เคยทำ blockchain มาก่อนสามารถ onboard ได้ไวมาก learning curve ค่อนข้างต่ำมาก

นอกจากนั้น token standard ก็ค่อนข้างครอบคลุมสำหรับการทำ service ต่างๆบน blockchain (ทั้ง ERC-20, ERC-721) และขอให้เพียงแค่ทำความเข้าใจ concept พื้นฐานของ token ก็สามารถสร้าง service ได้อย่างเร็วมาก

ถือว่าตรงนี้ LINE ทำ developer experience ออกมากได้ดีมาก 💚

BITMAX Wallet

BITMAX Wallet เป็น wallet สำหรับ user บน LINE Blockchain

โดยมี feature คร่าวๆดังนี้

  • BITMAX Wallet นั้นเชื่อมต่อแบบ 1–1 กับ LINE ID ของ user
  • ใช้ในการจัดการ token ต่างๆ และส่ง token ให้กับ service หรือ user อื่นบน LINE Blockchain
  • ใช้ในการเข้าใช้ service ต่างๆ บน LINE Blockchain
  • เข้าถึง private key ของตัวเอง (LINE จะเป็น custodian ของ private key ให้)
  • ส่ง token ให้เพื่อนผ่าน messaging API ได้

สำหรับการใช้ BITMAX Wallet นั้น user แทบจะไม่ต้องเข้าใจ blockchain เลย ก็สามารถใช้งาน service ต่างๆ บน LINE Blockchain ได้ และที่สำคัญการที่ไม่ต้องเก็บ private key ของ wallet เองก็ทำให้ user experience ไม่ต่างอะไรกับการทำ LINE Login ธรรมดาในการ authorize ให้ service ต่างๆ

ถือว่า LINE ทำ user experience ออกมาได้ดีครับ 💚

Summary

LINE Blockchain Platform นั้นทำมาเพื่อเป็น blockchain platform และ token economy ที่คนทั่วไปสามารถเข้าถึงได้ง่ายและใช้ได้ทุกวัน โดยมีจุดเด่นที่แตกต่างจาก blockchain ตัวอื่นคือเน้น

  • High Performance
  • User and developer friendly

โดยมี 3 องค์ประกอบที่มาตอบจุดเด่นนี้

LINE Blockchain นั้นถูก design มาเพื่อ scalability และ security โดยแลกกับความ centralize ที่ operateโดย LINE

LINE Blockchain Developers ทำให้ developer สามารถสร้าง service และ token ต่างๆ บน LINE Blockchain ได้ง่ายมากๆ โดย learning curve ต่ำมาก

BITMAX Wallet ทำให้ user สามารถจัดการ token และใช้งาน service ต่างๆบน LINE Blockchain ได้ โดยไม่ต้องเก็บ private key เอง

ผมว่า LINE ทำออกมาได้ตอบ principles ที่ตั้งไว้จริงๆ และหวังว่า LINE Blockchain Platform ที่มี user experience ดีมากจะช่วยผลักดันให้เกิด crypto adoption มากขึ้นเรื่อยๆจนเป็น mainstream 🙏

#hodl #buidl

Glossary

[1] Practical Byzantine Fault Tolerance

  • เป็น consensus algorithm ที่ให้ทุกๆ node ช่วยกันยืนยัน transaction และจะ produce block เมื่อจำนวน node มากกว่า 2/3 ยืนยัน transaction

[2] Proof of Stake (PoS)

  • เป็น consensus algorithm ที่ให้คนที่ stake มากกว่ามีโอกาสมากกว่าในการเป็น block producer

[3] Verified Random Function (VRF)

  • เป็น hashing algorithm ที่ใช้เลือกสุ่มเลือก block producer จาก candidate ทั้งหมด โดยทุก block จะมี hash ที่สร้างจาก hash ของblock ที่ผ่านมา และ candidate สามารถ verify ว่าตัวเองถูกเลือกเป็น block producer หรือเปล่า โดยการ evaluate Verifiable Random Function ด้วย hash และ private key ของตัวเอง

[4] Fungible Token vs Non-Fungible Token (NFT)

  • Fungible Token — ทุก token เหมือนกันหมดไม่สามารถแยกความแตกต่างได้และสามารถแลกได้โดยไม่สูญเสีย value เช่น เงิน เราสามารถแลกเหรียญ 10 บาทกันได้โดยไม่มีความแตกต่างของมูลค่าของเหรียญ 10 บาทแต่อย่างใด บน Ethereum จะเป็น ERC-20
  • Non-Fungible Token (NFT) — ทุก token ต่างกัน และมีค่าต่างกัน ถ้าแลกกันจะมี value ไม่เหมือนกัน เช่น บัตรประชาชน บัตรประชาชน 2 ใบเป็นบัตรชนิดเดียวกันแต่ข้อมูลแต่ละบัตรต่างกันโดยสิ้นเชิงและ unique บน Ethereum จะเป็น ERC-721

Reference

--

--