# EP 2: Walrus กับพลังแห่ง Programmable Storage!

เอาล่ะ! เมื่อกี้เราได้ลองอัปโหลดไฟล์ไป Walrus กันแล้วใช่มั้ย? แต่สิ่งที่ทำให้ Walrus ล้ำกว่า Decentralized Storage ทั่วไปคืออะไร? นั่นคือคุณสมบัติที่จะเปลี่ยน ทุกสิ่ง กับ **Programmable Storage** ครับ!

ส่วนใครยังไม่ได้ตามบทความที่แล้ว เปิดวาปให้ครับ

* [https://onthemove.contributiondao.com/ep-1-walrus-and-seal](https://onthemove.contributiondao.com/ep-1-walrus-and-seal)
    

**ปัญหาเดิมๆ ของบล็อกเชนทั่วไป**:  
บนแพลตฟอร์ม Blockchain อย่าง Ethereum ที่ใช้ `account-based model` เวลาเราเก็บข้อมูล (แม้จะใช้ IPFS หรือ Arweave) Smart Contract ของเราจะได้แค่ ตัวชี้ ง่ายๆ (เช่น `IPFS CID`) ซึ่งก็คือ String ธรรมดาๆ เท่านั้นเอง ตัวบล็อกเชนเองไม่รู้หรอกว่า `String` นั้นหมายถึงอะไร หรือสถานะของข้อมูลที่เก็บอยู่เป็นยังไง มันจึง ไร้ความสามารถ

**Walrus เลยพลิกเกมด้วย Object-Centric Model ของ Sui**

Walrus สร้างความแตกต่างโดยการใช้ Structure **Object-Centric Model** ของ Sui โดยเมื่อเราจัดเก็บไฟล์บน Walrus เราจะไม่ได้แค่ได้ `off-chain data fragments` เท่านั้น แต่เรายังได้ **Sui Object** ที่มีสถานะอยู่บนเชนเลย โดย `Sui Object` นี้จะเก็บ `metadata` และ `proof of availability` ของ `blob` นั้นๆเอาไว้ด้วยนั้นเอง

ลองดูตัวอย่างโครงสร้างของ Walrus Object ในภาษา Move กัน

```rust
struct WalrusBlob has key, store {
    id: UID, // ID เฉพาะของ Object นี้บน Sui
    blob_id: String, // Unique Walrus ID สำหรับข้อมูล off-chain ของเรา
    owner: address,  // ใครเป็นเจ้าของ Object นี้
    storage_epochs: u64, // ระยะเวลาจัดเก็บที่เหลืออยู่ (เป็นจำนวน Epochs)
    // ... อาจมี metadata อื่นๆ เช่น ขนาดไฟล์, ประเภทไฟล์
}
```

เพราะว่า `storage receipt` ตัวนี้เป็น `Sui object` ดั้งเดิม มันจึงสามารถ **เป็นเจ้าของ, โอนย้าย, และจัดการได้โดย Move Smart Contracts** เหมือนกับสินทรัพย์ดิจิทัลอื่นๆ! สิ่งนี้เปลี่ยนวิธีการจัดเก็บข้อมูลอย่างสิ้นเชิง! เราเคยเกริ่นเเละยกตัวอย่างไปแล้วถึงคุณสมบัติของ Move Object ตามไปอ่านกันได้ที่นี้นะ

* [https://onthemove.contributiondao.com/ep-1-game-item-with-sui-object](https://onthemove.contributiondao.com/ep-1-game-item-with-sui-object)
    
* [https://onthemove.contributiondao.com/ep-2-game-item-with-sui-object](https://onthemove.contributiondao.com/ep-2-game-item-with-sui-object)
    

**ทำให้นักพัฒนาจะสามารถสร้างแอปพลิเคชันที่**

* **เป็นเจ้าของและโอนย้ายได้ (Own and Transfer it)**: สร้าง **Data Marketplaces** ที่สามารถซื้อขายสิทธิ์การเข้าถึงชุดข้อมูลขนาดใหญ่ได้ง่ายๆ แค่โอนย้าย `WalrusBlob object` ไปยังผู้ซื้อเมื่อชำระเงินสำเร็จ
    
* **ใช้ใน DeFi (Use it in DeFi)**: นำ `Sui object` ที่แสดงถึงชุดข้อมูลอันมีค่าไปใช้เป็นหลักประกัน (Collateral) ใน Decentralized Lending Protocol
    
* **ทำให้เป็นอัตโนมัติ (Automate it)**: เขียน `Smart Contract` เพื่อขยายระยะเวลาจัดเก็บ `blob` โดยอัตโนมัติ ด้วยการจ่าย WAL tokens เพิ่ม หรือแม้แต่สั่งลบเพื่อเรียกคืนค่าจัดเก็บได้ตามเงื่อนไขก็ได้
    

Walrus เลยไม่ได้ทำหน้าแค่จัดเก็บไฟล์ แต่กำลังสร้าง `on-chain, data-backed assets` รูปแบบใหม่! และนี่คือตัวอย่างของ Programmable Storage ที่จะเปลี่ยนการจัดเก็บข้อมูลจากแบบ Passive ไปสู่ สินทรัพย์ ที่สร้างรายได้แบบ Dynamic ได้เลยนะ!

ขอตัดจบกันแค่นี้ก่อน…​ (งานเยอะจัดช่วงนี้) เอาแค่หลักการไปก่อนนะ สำหรับใครอยากเห็นตัวอย่างติดตามกันต่อได้ใน EP.3 4 5 6 :)
