สรุปจากงาน Web 3.0, The Future of Decentralization

Blockchain & Cryptocurrency Jun 23, 2023

Web3 คืออะไร? เกี่ยวข้องอะไรกับ Blockchain? มาร่วมไขข้อสงสัยกัน กับ session ของพี่ปันเจ จากทางชมรม Thinc. จ้า

กิจกรรมจัดขั้นในวันอังคารที่ 12 เมษายน 2565 เวลา 19.00 - 20.00 น. ผ่านช่องทาง Zoom จ้า

เนื่องจากตัวเนื้อหาในสไลด์จะเหมือนกับงาน Bkk.js #14 Back in business ก็เลยดองไว้ก่อน และทำรูปเพิ่ม คนอ่านจะได้จำไม่ได้ 555555 แต่รายละเอียดใน session นี้จะมี detail ที่ลงลึกมากกว่านะ

ทำความรู้จัก Web 3.0 และ WASM เพิ่มเติมจากงาน “Bkk.js #14 Back in business”
ปกติไม่ค่อยเข้างานฝั่ง web developer เท่าไหร่ เพราะเป็น “Android Developer” แต่พอเห็นหัวข้อเกี่ยวกับ Web3 และ WASM ก็มาเป็นทีมหน้าจอเลยค้าบบบบ~~~

Web3.0 : The Future of Decentralization

Web 1.0 : เว็บอ่าน content เช่น sanook kapook เจ้าของเว็บหยิบมาแสดงผลให้เราดู

Web 2.0 : user สามารถเขียน content เองได้ เช่น medium, social network ต่างๆ

Web 1.0 กับ Web 2.0 มี web server เหมือนกัน เก็บหรือครอบครองโดยบริษัทใด บริษัทหนึ่ง

Web 3.0 : ไม่ได้คุยกับ server แต่คุยกับ blockchain หรือ smart contract ต่างๆ

นิยามของ Web3 มีอะไรบ้างนะ

  • Decentralized : กระจายศูนย์ ไม่มีใครเป็นเจ้าของอย่างแท้จริง เจ้าของจะกระจายกันใน network และถ้ารัฐบาลห้ามเผยแพร่ content นี้ บริษัทจะ react ยังไง ในโลก web 3 ทุกคนมี copy information เหมือนกัน ทำให้ ban และ censor ได้ยากขึ้น และไม่สามารถปรับแก้ได้ง่าย เพราะมี log บอกว่าแก้อะไรไปบ้าง
  • Premissionless : ทุกคนบน network มีสิทธิ์เท่าเทียมกันในการเข้าถึง service เช่น การบริการจำกัดประเทศจะไม่มี ทุกคนสามารถเข้าถึงบริการนี้ได้ทั้งหมด แต่ก็ไม่ได้เข้าถึงได้ทุกอย่างนะ
  • Trustless : การที่เราไม่เชื่อใคร เรา treat ทุกคนใน network ว่าทุกคนมีสิทธิ์เป็นผู้ร้ายเสมอ แล้วเราจะต้องมีกลไกว่าคนนี้เป็นคนร้ายจริงๆนะ ไม่เชื่อใจใครสักคนในระบบ ให้ assume ไว้เสมอว่า “ทุกคนมีสิทธิ์เป็นผู้ร้าย”

Web 3 กับ Blockchain ใกล้เคียงกันเสมอ แล้วมันต่างกันยังไงหล่ะ?

Web 3 เป็นมุมมองการนำไปใช้งาน เช่น เอา service บางอย่างไปไว้ในนั้น เพื่อคุณสมบัติบางอย่าง เพื่อเอามา applied กับ app ของเราได้

ส่วน blockchain เป็นเทคโนโลยี เช่น Bitcoin เป็น Financial Service ที่มาพร้อม blockchain สามารถ run ได้ด้วย node (เครื่องหรือคนที่จะทำการยืนยันธุรกรรมใน blockchain) คุยกับ node อื่นๆใน network เดียวกัน มีหน้าที่ช่วยยืนยันธุรกรรมที่เกิดขึ้นในระบบว่า block ถัดไป จะเป็นแบบนี้นะ

User ใน web 3 มีการ interact กับ node โดยการส่งข้อมูลใน blockchain เช่น เรียกดู transaction ต่าง ๆ ที่เกิดขึ้น

Blockchain Node Anatomy

ใน 1 node ประกอบด้วย

  • API Endpoint
  • Consensus Mechanism: บล็อกถัดไปหน้าตาเป็นยังไง
  • Mempool: เก็บ transaction ที่ต้องการ confirm แชร์กันในแต่ละ node ว่ามีอะไรบ้าง ทำให้เกิด consensus
  • Database : database แบบไม่ centralized ถูกควบคุมโดย consensus mechanics

ในโลก web3 จะเขียนอ่านข้อมูลยังไงนะ?

Reading data in Web

  • Frontend SPA : เป็น Single Page Application เป็นเว็บที่ build ออกมาเป็น set ของ file ได้เว็บ static ดึงข้อมูลผ่าน API
  • API Endpoint: จากเดิมที่ยิงไปหา server ให้ไปยิงที่ node แทน

Writing data in Web 3

  • การยืนยันสิทธิ์ของตัวเอง ว่าเราเป็นคนนั้นที่ทำธุรกรรมนั้นจริงๆ เราต้อง verify ว่าคนนั้นเป็นเจ้าของ private key ชุดนั้นจริงๆ อาจจะเป็น digital wallet เป็นไฟล์ที่ฝังไว้ในเครื่องเรา แล้วก็ pubilc key คือ address ของกระเป๋านั่นเอง ส่วน hardware wallet ฝั่งไว้ใน harddisk เอาออกมาข้างนอกไม่ได้ จะเป็น signature ออกมาให้เรา
  • Signature เป็นสิ่งที่ยืนยันว่าเราเป็นเจ้าของ transaction นั้นจริงๆ โดย API ตรวจสอบว่าใช้จริงๆไหม แล้ว node จะ verify ว่ามาจาก address หรือ public key นี้จริงๆ เมื่อเรียบร้อยแล้วเอาเข้า mempool และ sync กันระหว่าง node ในระบบ

Transactions in Blockchain

Transaction: เป็น state ใหม่ = state เดิม + transaction ที่เราส่งเข้าไป มี node คอยยืนยันว่า output ของ transaction เท่ากับ hash นี้หรือไม่

โดย f คือ smart contract ที่เป็น function ในการทำธุรกรรมต่าง ๆ, s คือ previous state, tx คือ transaction ในปัจจุบัน และ s' เป็น state ใหม่

ตัวอย่าง

  • ก่อนหน้านี้ Alice มีอยู่ 20 tokens และ Bob มีอยู่ 5 tokens
  • transaction ในตอนนี้ คือ Alice โอนให้ Bob 20 tokens มีการ signed transaction เพื่อยืนยันการทำธุรกรรม
  • เมื่อทำธุรกรรมเรียบร้อยแล้ว state ตอนนี้ คือ Alice เหลือ 10 tokens และ Bob มี 15 tokens

Web3 Use Cases

แล้วเราใช้ Web3 ทำอะไรได้บ้าง

Decentralized Exchange using Automated Market Maker (AMM)

ตัว Automated Market Maker ใช้กับ Decentralized Exchange

แต่ถ้าอย่าง Binance, Bitkub พวกนี้เป็น Centralized Exchange โอนเงินให้เขาเก็บไว้ แต่เราไม่ได้ถือกระเป๋านี้เอง ให้เขาเก็บให้

ข้อดีคือทำการเทรดได้รวดเร็ว ส่วนข้อเสีย การฝากเงินหรือ token ที่ exchange นั้นๆ เราต้อง trust ว่าเขาดูแลของเราได้อย่างปลอดภัย

Automated Market Maker จึงเป็นโค้ดโปรแกรมที่ user ใส่เหรียญนั้นเข้าไป แล้วได้อีกเหรียญนึงกลับมา ตามราคาตลาด มีกลไกการคำนวณราคา โดยมี smart contract ทำให้แลกเปลี่ยนสินทรัพย์ หรือ token โดยไม่ผ่านตัวกลาง

Decentralized Autonomous Organization (DAO)

บาง DAO มีการออก token ให้ทุกคนมีสิทธิ์มีเสียงในการโหวต เพื่อกำหนดทิศทางของโปรเจกต์ ถูกกำหนดการมีส่วนร่วมโดย community ที่มั่นใจในโปรเจกต์ของเรา ทำองค์กรให้อยู่บน blockchain ขับเคลื่อนโดยการกำหนดทิศทาง เช่น

  • การประชุมผู้ถือหุ้น
  • แจกเงินเดือนให้อยู่บน smart contract
  • voting โดยเอาผลโหวตมา appiled เช่น โหวตเรื่องลดค่า fee ในระบบ ถ้าผ่านให้ appiled ไปเลย
  • contentation ได้เงินเดือนเป็น block ต่อ block กดเอาไปใช้ได้เลย

Designing Web3 Application

เราจะเริ่ม design web3 ยังไงดี และควรทำดีไหม มาดู checklist นี้กัน

  • เราจะต้องใช้ web3 ในแอพของเราจริง ๆ หรือเปล่า?
    • user จะได้ benefit อะไรจาก web3 บ้าง
  • เราจะเอาข้อมูลอะไรมาเก็บบน blockchain (on-chain) และอะไรเก็บบน off-chain
  • เลือก network ที่เราต้องการ
    • EVM-based network เช่น Ethereum, BSC, Polygon → ใช้ Solidity ในการเขียน
    • Terra: ตระกูล WASM เขียนด้วยภาษา Rust
    • Private Network: ใช้เชนของตัวเอง ตั้ง node เอง
  • ออกแบบ interface ของ smart contract และ API ต่าง ๆ (เว็บยิงอะไรเข้าไป และได้อะไรกลับมา)

ปล. ของ on-chain อยู่บน smart contract และ off-chain มีการคำนวณบางอย่างก่อน ไม่สามารถคำนวณได้บน smart contract จึงอยู่ฝั่ง web2

Career

ถ้าสนใจ web3 แล้วมีงานประเภทไหนให้เราทำบ้าง

หลาย ๆ อย่าง base จาก web2 ด้วย เพิ่มเติม web3 skill ไปด้วย เช่น

  • Frontend Developer ที่ base-on skill เดิมอย่าง HTML, CSS, javascript, web framework library ต่าง ๆ ที่ยอดนิยมกันคือ React
  • Backend Developer ยังมีเหมือนเดิม เพราะทุกอย่างไม่ได้เก็บบน smart contract ทั้งหมด มีบางส่วนที่เก็บเป็น off-chain

งานฝั่ง web3

  • Smart Contract Developer ตรงตัวเลย คือ developer ที่เขียน smart contract ไม่ว่าจะเป็นภาษา Solidity, Rust มีความคุ้นเคยกับการจัดการ transaction ต่าง ๆ และมี practice ในการเขียนต่าง ๆ ไม่ให้มีช่องโหว่
  • Smart Contract Security Auditor เป็นงานที่ได้รับความนิยม เนื้องานคือตรวจสอบว่า smart contract อันนี้ มีช่องโหว่อะไรหรือเปล่า และในการ hack เขาใช้ช่องโหว่อะไรการในดึงเงิน ดึงข้อมูลออกมา และดึงออกไปจากระบบได้

ตำแหน่ง non-dev จะค่อนข้างทั่วไป แต่ต้องมี background เรื่อง web3 และมี landscape กับเรื่องนี้ยังไง

  • Product Owner กำหนดทิศทาง หรือ vision ของ produce ว่ามีหน้าตายังไง และมี roadmap อย่างไร
  • Business Development explore partnership ต่าง ๆ

Q & A

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

  • มัน early และ hype เพราะมันใหม่มาก แล้วมีการเก็งกำไรมาก ยังต้องหาจุดลงตัวของมัน อย่าง VR กว่าจะมีจุดลงตัวก็อาจจะหลายปี
  • ETHDenver dao มัน work แค่ไหน เพราะคนนึงทำหลายโปรเจกต์ได้ ไม่มีเงินเดือน เพราะ แชร์ vision ของโปรเจก drive ให้มันเกิดได้
  • ข้อสังเกต DAO ถ้าอยากให้ผู้ใช้ apple device มาโหวตเรื่องการกำหนดทิศทาง อาจจะไม่เป็นในทุกวันนี้ก็ได้

ปัจจัยอะไรที่จะทำให้ Web3 สามารถ mass ได้ และมีโอกาสแทนที่ Web2 ไหม

  • barrier to entry มันสูงเกิดไป ต้องรู้จัก sign transaction, เก็บ key ให้ปลอดภัย และ UX ยังไม่ดีมาก ถ้าให้มันแมสเราต้องขยับบาร์นี้ขึ้นไป จริงๆบาร์ขยับขึ้นเรื่อยๆ แต่บาร์มันไม่ถึง ในที่ทุกส่วนใหญ่ดูแล private key ของตัวเองได้ ถึงจะแมสได้ เป็น challenge ของคนออกแบบและพัฒนาระบบ
  • ไม่เชื่อว่าเป็นการแทนที่ เป็นการ co-exit ให้อยู่ร่วมกันได้ ส่วนที่สำคัญบางอย่างอยู่ใน web 3 เช่น ความโปร่งใส่ ตรวจสอบได้ มีการ confirm ธุรกรรม มี web2 หรือ big brother มาคอย curate ข้อมูลและดูว่าอันนี้ควรเอาขึ้นเอาลงได้

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

แนะนำสายของ developer ก่อน เพราะมีพื้นฐานหลายๆอย่างที่ใช้ร่วมกัน รู้สึกได้ตอนศึกษาตอนเป็น dev ว่าชอบหรือไม่ชอบอย่างไร (front-end หน้าบ้าน / back-end หลังบ้าน) สามารถเป็นอาชีพที่ทำเงินได้ดี software developer คนจ้างค่อนข้างแข่งขันกันพอสมควร ถ้าไม่ชอบก็ไหวตัวทัน

Web3 จะมี impact อย่างไรกับโลกธุรกิจ

นความ decenterial ทำให้ service ถูกหั่นออกไปเรื่อยๆ เช่น banking ธนาคารเดิมค่อนข้างใหญ่ ทำหลายอย่างได้ในที่เดียว ตอนนี้มีธนาคารที่มีแต่ API อย่างเดียว ไม่มีสาขาเลย web3 มาเร่งปฏิกิริยาในส่วนนี้ว่า เป็น micro ขึ้นไปเรื่อยๆ และ concentrate มากขึ้น และ web3 เข้ามาช่วยในสิ่งนี้ เช่น connect wallet ว่ากระเป๋าของเรามีเท่าไหร่ ไม่มีกำแพงในเรื่อง data มีการ share ทุกอย่างข้ามกัน

อธิบายการเกิด Flashloan ทางเทคนิคให้เข้าใจได้มั้ยครับว่ามันมีข้อผิดพลาดตรงไหนเหรอครับถึงทำให้เกิดการ Flashloan ทั้ง ๆ ที่สูตรทางคณิตศาสตร์ transaction มันชัดเจน

  • เกี่ยวกับวงการ DeFi คือ user ยืมเงินจำนวนนึง ต้องการให้ราคาใน Liquidity Pool (LP) เปลี่ยนแปลงแบบเยอะๆ
  • ยืมเงินจาก protocol→ เอาเงินมาใน Liquidity Pool เอาไปอ้างอิงใน pool เพื่อให้เงินที่ได้เยอะๆกลับมา → เอาเงินต้นไปคืน ได้กำไรกลับมา
  • oracle เช่น band protocol อ้างอิงราคาจากหลายๆที่มาผสมกัน ไม่อ้างอิงจาก Liquidity Pool อย่างเดียว

ในมุมมองของ Business ด้วยความที่มัน Ownershipless ในเรื่องของ Data บนเว็บ 3.0 มันอาจจะส่งผลเสียต่อตัว Businessเองหรือเปล่าครับ เพราะทุกคนสามารถเข้าถึง Data ได้

เราเอา web 3 มาใช้ในมุมไหน ไม่จำเป็นต้องเอา data ทุกอย่างเอาไปขึ้น on-chain ข้อมูลบางอย่างเอาไว้ที่ off-chain เพื่อบางอย่าง เช่น private, performance เราเลือกได้ว่าออกแบบ web 3 app ออกมายังไง

คนที่มีเงินมากจะสามารถควบคุม DAO ได้ง่ายขึ้นหรือไม่ การซื้อ token ต่างจากการซื้อหุ้นอย่างไรหากสิทธิ์ขึ้นอยู่กับ token ที่มี

เช่น curve คนแย่งซื้อ token มาโหวต แตกต่างจากการซื้อหุ้น คือ ความโปร่งใสว่าเกิดอะไรขึ้นบ้าง และการบังคับใช้ผูกกับโค้ดโปรแกรมได้เลย

ทั้งหมดของงานก็จะประมาณนี้ แล้วคนฟังเยอะมากๆ เนื่องจากเนื้อหาที่คล้ายกับอีกงานนึง ก็เลยปล่อยช้าหน่อยดีกว่ากลัวคนอ่านเบื่อ 555 สรุปได้อ่านปีถัดไปแทน 555555


ติดตามข่าวสารตามช่องทางต่าง ๆ และทุกช่องทางโดเนทกันไว้ที่นี่เลย

ติดตามข่าวสารแบบไว ๆ มาที่ Twitter เลย บางอย่างไม่มีในบล็อก และหน้าเพจนะ

Tags

Minseo Chayabanjonglerd

I am a full-time Android Developer and part-time contributor with developer community and web3 world, who believe people have hard skills and soft skills to up-skill to da moon.