Hello Web3 World!
เมื่อช่วงเดือนกรกฎาคม 2023 ผมได้มีโอกาสไปงาน CityJs ที่ Singapore จะเป็นงาน conference เกี่ยวกับการพัฒนาแอพพลิเคชั่นด้วย JavaScript เป็นหลัก ซึ่งหนึ่งในนั้นมีหัวข้อหนึ่งเกี่ยวข้องกับพัฒนาการของ Web3 ในปัจจุบันที่ผมหยิบมาเล่าให้ฟังวันนี้
ในหัวข้อชื่อ “Why JavaScript will dominate Web3 development”
ซึ่งพูดหลักๆ เกี่ยวกับเรื่องพัฒนาการของ Web3 และสิ่งที่มันจะเกิดขึ้นในอนาคต
ก่อนอื่นอาจต้องเล่าที่มาที่ไปของ Technology ตัวนี้ก่อนเราจะได้เดินทางไปพร้อมกันว่าอุตสาหกรรมนี้กำลังแก้ปัญหาอะไรกันอยู่
โครงสร้างของแอพพลิเคชั่นที่เราทำงานกันจะถูกเรียกกันว่า Web2 โดยมีโครงสร้างคร่าวๆ หน้าตาประมาณนี้
หลักๆ แอพพลิเคชั่นที่เราใช้งานจะประกอบไปด้วย 3 ส่วนแบบคร่าวๆ คือ Front-end, Back-end และ Database
ซึ่งด้วยโครงสร้างลักษณะแบบนี้ส่งผลให้ข้อมูลหรือหน่วยประมวลผลทั้งหมดจำเป็นที่จะต้องรวมอยู่ซักที่หนึ่ง เช่น ผู้ให้บริการแอพพลิเคชั่นต่างๆ ก็จะต่างคนต่างเก็บข้อมูลเอาไว้กับตัวเอง และสิทธิ์ความเป็นเจ้าของข้อมูลจะอยู่ที่ผู้ให้บริการ
เรียกว่า “Centalize Service” จนภายหลังที่บล็อกเชนเทคโนโลยีได้รับความนิยมเพิ่มขึ้นเลยทำให้การพัฒนาการของ Web3 เติบโตไปด้วยเช่นกัน โดยพยายามเข้ามาแก้ความเป็น “Centalize Service”
โดยใช้ความสามารถในการกระจายศูนย์ของบล็อกเชนเพื่อทำให้แอพพลิเคชั่น กลายไปเป็น “Decentralized Service” ให้ได้
หลังจากปูพื้นฐานเสร็จหลังจากนี้เราจะมาเจาะลึกกันถึงเรื่องพัฒนาการขององค์ประกอบต่างๆ เพื่อให้ทำให้ web3 มีความเป็น Decentralized Service
เริ่มจากการอธิบายจากภาพนี้จะเข้าใจง่ายกว่า
จะเห็นได้ว่าภายใต้ Web3 ส่วนที่ต่างจาก Web2 เลยคือ เราแยก Layer ของ Backend และ Database ขึ้นมาอยู่บนบล็อกเชนโดยใช้เครือข่ายที่มีความกระจายศูนย์มากสุดและสามารถทำ Turing Complete คือ สามารถประมวลผลลอจิกหรืออัลกอริทึมได้เหมือนที่ computer ทำงานในแบบที่กระจายศูนย์
ซึ่งในตอนนี้เครือข่ายที่ได้รับความนิยมสูงสุดคือ Ethereum Network ที่มีความกระจายศูนย์มากพอและต้องสามารถเขียน logic และรันคำสั่งบนนั้นได้โดยเรารู้จักในชื่อ Smart Contract นั่งเอง
โดยตอนนี้ภาษาที่ใช้งานในปัจจุบันคือ Solidity ซึ่งเป็นภาษาโปรแกรมที่ออกแบบมาเฉพาะเพื่อสร้างและจัดการกับสัญญาอัจฉริยะบนแพลตฟอร์มนี้
บน Web3 การจัดการเรื่องการยืนยันตัวตนจะทำผ่านสิ่งที่เรียกว่า wallet เปรียบเสมือนตัวแทน identity ของเราในรูปแบบที่ไม่สามารถระบุตัวตนของเราได้ เช่นนั้นการยืนยันตัวตนของผู้ใช้จะเกิดขึ้นผ่านการยืนยันด้วย สิ่งที่เรียกว่า wallet แทนที่ centalize authentication เช่น Google หรือ Facebook etc.. เหมือนที่ผ่านมา
ในทุกธุรกรรมบนบล็อกเชนที่สร้างมาจากเราจะถูก sign ด้วย wallet ของเราเพื่อพิสูจน์ว่าเราเป็นทำธุรกรรมนั้นจริงๆ
ที่เก็บข้อมูลบน Blockchain
การเก็บข้อมูลโดยตรงบนบล็อกเชนอาจไม่ใช่ตัวเลือกที่ดีเท่าไหร่เพราะว่ามีราคาที่จ่ายแพงมากและบล็อกเชนไม่ได้ถูกออกแบบให้เก็บข้อมูลขนาดใหญ่ๆ อย่างที่ Application ของเราต้องการ
นั่นเป็นเหตุให้ Decentralized file service protocoll (IPFS) เป็นที่นิยมในการใช้งานเพื่อเก็บไฟล์หรือข้อมูล บางที่มีการใช้ Protocol นี้เพื่อเก็บข้อมูลสำหรับ Front-end แอพพลิเคชั่นเพื่อทำให้ทั้งบริการมีความกระจายศูนย์เต็มรูปแบบ
การใช้งานใน IPFS กับ Blockchain ทำให้เราสามารถเก็บไฟล์ขนาดใหญ่ได้และยังทำให้ทั้งระบบมีความกระจายศูนย์ของข้อมูลมากขึ้น
การค้นหาข้อมูลที่ถูกเก็บบน Blockchain
ปกติแล้วข้อมูลบนบล็อกเชนจะไม่เหมาะสมที่จะทำการค้นหาข้อมูลเพราะว่าถูกออกแบบมาให้มั่นคงและปลอดภัย ไม่ใช่เพื่อการเข้าถึงข้อมูลอย่างรวดเร็ว
แอพพลิเคชั่นมีความจำเป็นต้องเข้าถึงข้อมูลให้รวดเร็วเพื่อที่จะตอบรับความต้องการของผู้ใช้ในปัจจุบัน
The Graph เข้ามาช่วยให้เราสามารถทำการค้นหาข้อมูลบนบล็อกเชนได้โดยไม่ต้องทำการดาวน์โหลดข้อมูลทั้งบล็อกเชนหรือต้องประมวลผลหนักๆ
เพื่อหาข้อมูลที่ต้องการในบล็อกเชนเหมือนที่เคย ทำให้แอปพลิเคชันสามารถเข้าถึงข้อมูลได้อย่างรวดเร็วและมีประสิทธิภาพมากขึ้น
แก้ปัญหาการ Scaling decentralized application
ก่อนอื่นเราต้องรู้ศัพท์เฉพาะเพิ่มนิดหนึ่งก่อน
Layer 1 หรือเครือข่ายหลัก (Main Network) คือที่มีบล็อกต่างๆและ ข้อมูลการทำธุรกรรมต่างๆที่ เก็บไว้
Layer 2 Scaling Solutions (Side Network) คือเทคโนโลยีที่ตั้งอยู่ด้านบน Layer 1 เพื่อแก้ปัญหา Scaling ของระบบ Layer 1 ประมาณว่าทางด่วนที่วิ่งขนานไปกับถนนหลัก ที่ไม่ต้องเจอรถติด น้ำท่วม และถูกกว่า
การใช้งานในวงกว้างจะเป็นไปไม่ได้เลยถ้าเราเราติดคอขวดอยู่ที่ บล็อกเชน ที่ตอนนี้ยังจำกัดในเรื่องของจำนวนการทำธุรกรรมต่อวินาที (transactions per second, TPS) และมีค่าใช้จ่ายที่สูงมากสำหรับการทำธุรกรรม
Layer 2 Scaling เลยเข้ามาแก้ปัญหานี้โดยทำการจะรวมธุรกรรมหลายๆ อันเข้าด้วยกันแล้วเอาไปประมวลผลนอกเครือข่ายหลัก จากนั้นจึงนำผลลัพธ์ที่ได้กลับไปบันทึกใน Layer 1 เพื่อรักษาความมั่นคงและความปลอดภัยของเครือข่าย
ผลที่ได้คือ
- ปริมาณการทำธุรกรรมที่เพิ่มขึ้น
- ค่าธรรมเนียมการทำธุรกรรมถูกลงมหาศาล
- เวลายืนยันการทำธุรกรรมสั้นลง
- การใช้พลังงานลดลง
แต่แลกมาด้วยความกระจายศูนย์ที่อ่อนแอลงเพราะเรามี Third-party เข้ามีส่วนในการประมวลผลข้อมูลนอกเครือข่ายหลัก
ทั้งหมดทั้งมวลนี้ย้อนกลับไปที่ภาพแรกที่แสดงถึงแนวคิดของ Web3
ที่ว่าเราต้องการคือระบบที่ทำงานบนเครือข่ายแบบกระจายศูนย์ เพื่อที่จะไม่ต้องให้ข้อมูลหรือบริการรวมอยู่ที่เดียวเป็นและให้ผู้ใช้เป็นเจ้าของร่วมกันและ สามารถทำธุรกรรมได้โดยที่ไม่ต้องอาศัยความเชื่อใจจากตัวกลาง
จบแล้วครับ …