Skip to main content

Command Palette

Search for a command to run...

Sui Stack Messaging SDK : Introduction

Understanding Encrypted Messaging Infrastructure on Sui

Published
3 min read
Sui Stack Messaging SDK : Introduction

ตามที่สัญญาเอาไว้หลังจากหายไปนาน ติดภารกิจต่อเนื่องเลย วันนี้เราจะมากับหัวข้อ SUI Stack Messaging ซึ่งเป็น SDK ตัวใหม่ที่ Mysten Labs ปล่อยออกมาตั้งแต่เดือน กันยายน 2025 (ตอนนี้เวอร์ชันล่าสุดคือ v0.3.0) โดย SDK ตัวนี้ไม่ใช่แค่ messaging library ทั่วไปนะ แต่เป็นการทำให้ messaging กลายเป็นส่วนหนึ่งของ Sui Stack เลย ทำงานร่วมกับ Sui, Walrus, Seal แบบ native เลยเเหละ

ตอนนี้ SDK ยังอยู่ในสถานะ Alpha และรองรับเฉพาะ Testnet เท่านั้นนะ ยังไม่พร้อมใช้ production นะ

Sui Stack Messaging SDK คืออะไร?

พูดง่ายๆ มันคือชุดเครื่องมือที่ให้ developer สามารถฝัง encrypted messaging เข้าไปใน Web 3.0 application ได้เลย โดยไม่ต้องสร้าง backend เอง ข้อความทุกอย่างจะถูกเข้ารหัสแบบ end-to-end ผูกกับ wallet address และ recoverable ข้ามอุปกรณ์ได้

. .

ที่น่าสนใจคือ SDK ถูกออกแบบให้ทำงานร่วมกับ 3 layers ของ Sui Stack ดังนี้

1) Sui Blockchain — Identity & State

ทุกช่องทาง, ข้อความ, และการเป็นสมาชิกถูกจัดเก็บเป็นวัตถุบน Sui blockchain โดยใช้สัญญาอัจฉริยะ Move ในการจัดการ สิ่งที่น่าสนใจคือ SDK ใช้การควบคุมการเข้าถึงแบบอิงตามความสามารถ

  • CreatorCap — ผู้สร้างช่องทางจะได้รับวัตถุนี้ ใช้สำหรับเพิ่ม/ลบสมาชิก มีเพียงหนึ่งคนต่อช่องทาง

  • MemberCap — สมาชิกทุกคนจะได้รับวัตถุนี้ ใช้เป็นหลักฐานการเป็นสมาชิกสำหรับการส่งข้อความ

ถ้าใครเขียน Move มาบ้างจะคุ้นเคยกับ pattern นี้ดี เพราะมัน object-centric เหมือนทุกอย่างบน Sui เลย

2) Walrus — Decentralized Attachment Storage

ไฟล์แนบทั้งหมด (รูป, เอกสาร ฯลฯ) จะถูก encrypt ด้วย Seal ก่อน แล้ว upload ไปเก็บบน Walrus ครับ ส่วน metadata กับ reference จะถูกบันทึกบน Sui เพื่อให้ verifiable ได้ การเข้าถึงไฟล์ใช้ผ่าน aggregator/publisher endpoints ของ Walrus

3) Seal — Encryption & Access Control

Seal ทำหน้าที่เป็น key management layer เลย เมื่อสร้าง channel จะมีการ generate symmetric key ขึ้นมา แล้ว encrypt ด้วย Seal ก่อนผูกกับ channel object บน Sui

ที่ทำให้มันต่างจาก encryption ทั่วไปคือ programmable access policies สามารถกำหนดเงื่อนไขการเข้าถึงผ่าน smart contract ได้เลย เช่น ต้องถือ token จำนวนหนึ่ง หรือเป็นสมาชิก DAO ถึงจะอ่านข้อความได้ ตามที่เราเคยเขียนไปเเล้วนั้นเองในบทความก่อนหน้านี้

การทำงานของ Encryption

มาดูทบทวนกันว่า Seal ทำงานยังไงกับ SDK ตัวนี้ ขั้นตอนคร่าวๆ คือ

  1. สร้าง Channel → SDK สร้าง channel object บน Sui พร้อม MemberCaps ให้สมาชิก

  2. Generate Encryption Key → Seal generate symmetric key แล้ว encrypt ไว้

  3. Attach Key กับ Channel → key ถูกผูกกับ channel object บน chain

  4. ส่งข้อความ → ข้อความถูก encrypt ด้วย key แล้ว store เป็น object บน Sui

  5. อ่านข้อความ → SDK fetch message objects แล้ว decrypt ด้วย Session Key

Session Key คืออะไร? ก็คือ key ที่มีอายุจำกัด (TTL) เพื่อไม่ต้อง sign transaction ทุกครั้งที่ decrypt ข้อความ sign ครั้งเดียวสร้าง session แล้วใช้ต่อเนื่องได้เลย เมื่อหมดอายุ SDK จะ refresh ให้อัตโนมัติ

เปรียบเทียบกับ XMTP และ Push Protocol (คู่แข่ง)

จุดแข็งที่สุดของ Sui Messaging SDK คือ on-chain composability นะ messages เป็น Sui objects ที่ smart contracts สามารถ interact ได้โดยตรง ซึ่ง XMTP หรือ Push ทำไม่ได้ในระดับเดียวกัน แต่ข้อแลกเปลี่ยนคือต้องผูกกับ Sui ecosystem

สรุปข้อจำกัดที่ควรรู้

  • ไม่มี Anonymous Messaging — ทุกข้อความต้องมา verified Sui identity ไม่สามารถส่งแบบ anonymous ได้

  • ไม่มี Forward Secrecy — ถ้า key ถูก compromise ข้อความในอดีตก็อาจถูก decrypt ได้

  • Polling-based — ยังไม่มี WebSocket ต้องใช้ getLatestMessages() แบบ polling

  • Testnet Only — ยังไม่พร้อม Mainnet อาจมี breaking changes ไว้ว่ากันทีเมื่อถึงตอนนั้น


เป็นไงบ้างเห็นภาพรวมกันแล้วใช่ไหม สรุปง่ายๆ Sui Stack Messaging SDK มันทำให้ messaging กลายเป็น programmable primitive ของ Web 3.0 application บน Sui ได้ ไม่ใช่แค่ chat library ธรรมดา แต่เป็น infrastructure ที่ smart contracts สามารถ trigger ได้เลย

เดียว EP หน้าจะมาลงมือเขียนโค้ดกันจริงๆ ตั้งแต่ setup project, สร้าง channel, ส่งข้อความ, อ่านข้อความ แบบ step-by-step เลยนะ รอบนี้ไม่ให้รอนานละ ดองไว้นานเกินต้องขอโทษด้วยนะครับ