Nostr 101: คืออะไร? เล่นยังไง? แล้วเปลี่ยนโลกการใช้ social ของเรายังไง?
เปิดโลก social ยุคอนาคต ที่ creator ได้รับเงินจากคนอ่าน content เต็ม 100%!
ทำความรู้จัก Nostr ที่จะเปลี่ยนโลกการใช้ social ของคุณกัน!
content จากประสบการณ์จริง ที่ดองนานในระยะนึงล่ะ แต่บอกเลยว่ามันก็ solve pain point ของ user ที่ไม่อยากลับลู้ว่า AI ของ platform นั้น มาคอย suggest อะไรที่เราไม่ได้ตาม
ส่วน content creator เอง เราเป็นคนเขียน คนทำ content บน platform นั้น ๆ ทุกอย่างควบคุมโดย platform ซึ่ง platform อาจจะถูกปิดเมื่อไหร่ก็ได้ ส่วนใหญ่โดนลด reach บางคนโดน platform ลบโพส บางคนโดน platform แบน เราจึงต้องมี asset เป็นของตัวเองอย่าง website ไม่งั้น content ที่เราตั้งใจทำหายไปเสียดายแย่เลย
ซึ่ง concept และการใช้งาน Nostr นั้นลด pain point ของ creator ที่ต้องไปทุก platform เพื่อครอง keyword ซึ่งเหนื่อยมาก ๆ ถ้าเป็นสายแบบเราที่เน้นโค้ดหน่อย ๆ ต้องมาสร้างผู้ติดตามใหม่ แต่ละช่องทางได้กลุ่มผู้ติดตามต่างกันอีก
ร่ายมายาวขนาดนี้เข้าเรื่อง Nostr ได้แล้ว ว่าแต่มันคืออะไร ใช้งานยังไง ต้องทำอะไรบ้าง ไปดูกันนนน
ปล. บทความนี้เป็นแนวแนะนำว่ามันคืออะไร ใช้งานยังไง ยังไม่ลงลึกด้านเดฟนะ คืออยากให้ใช้ให้เป็นก่อนนนนนน
Nostr คืออะไร?
Nostr ย่อมาจาก Notes and Other Stuff Transmitted by Relays เป็น open protocol ที่ถูกพัฒนาโดย Giovanni Torres Parra มีจุดประสงค์คือ สร้างเครือข่ายสังคมออนไลน์ที่ไม่ถูกควบคุมหรือเซ็นเซอร์
ในที่นี้ Notes หมายถึง social media และ other stuff คือ data communication
แล้ว protocol คืออะไรล่ะ? ก็คือเราคุยกันผ่านช่องทางไหนยังไง เช่น sms, email อะไรงี้
ดังนั้นมันก็คือ note & other stuff ที่ถูก transmit โดย Relays นั่นเอง
Workflow
ปกติเราทำแอพขึ้นมาแอพนึงประกอบด้วยอะไรบ้าง?
เดิมทีทีมแอพก็มีทีมหน้าบ้าน อย่าง frontend developer หรือ mobile developer อย่าง iOS และ Android แล้วก็ทีมหลังบ้าน backend developer ที่เป็นคนทำระบบหลังบ้าน ไม่ว่าจะเป็นทำ API ให้หน้าบ้านคุยกับ server แล้วก็จัดเก็บข้อมูลลง database ด้วย
flow ก็คือ user download แอพมา หรือใช้ website ตัวแอพหน้าบ้านจะเรียก API เพื่อทำอะไรบางอย่าง เช่น เปิดแอพมาเรียก API เพื่อ check ว่าเรา login อยู่ไหม แล้วก็ดึงหน้า feed มาแสดง
สำหรับ Nostr จะมีแค่คนทำหน้าบ้านเท่านั้น โดยตัวแอพเชื่อมต่อกับ relay ผ่านมาตรฐานของ NIP
ดังนั้น developer อย่างเราจะทำ client หรือตัวแอพที่ใช้ Nostr ได้เลย โดยใช้ Relay เดียวกันได้เลย ภายใต้มาตรฐานของ NIP เวลา user เปลี่ยนแอพใหม่ ตัวข้อมูล ตัวโพสต่าง ๆ ยังคงอยู่เหมือนเดิมที่ delay ไม่ต้องไปสร้าง follower ใหม่บน platform ใหม่ ๆ ให้เสียเวลา
การทำงานของ Nostr
สามารถดูตามภาพนี้ได้เลย เป็นภาพพื้นฐานในการเล่าเลย การทำงานเขาจะแบ่งเป็น 2 ฝั่ง คือ
- Client: คือแอพพลิเคชั่นที่ใช้เล่น Nostr นั่นแหละ เป็นฝั่ง user จะมี key pair คือ private key ใช้ในการยืนยันตัวตนนั่นแหละ เช่น เราเป็นคนโพสอันนี้นะ (เก็บไว้ให้ดี ๆ) และ public key บอกว่าเราคือใคร การทำงาน ตัว client เชื่อมต่อกับตัว relay เช่น บอกว่าใครเป็นคนสร้าง content นี้ หรือเราจะสร้าง content ใน Nostr ก็จะส่งข้อมูลรายละเอียดโพสอย่าง kind, content, tags, pubkey, create_at ตามมาตรฐาน NIPs ส่งไปที่ relay
- Relay: คือ database ตัวนึง ที่เป็นรูปแบบแบบกระจายศูนย์ ได้รับ event อะไร และส่งอะไรกลับไปบ้าง
แล้ว Client และ Relay สื่อสารระหว่างกันยังไง คุยกันผ่าน WebSocket นะ แล้วแต่ละ event จะส่งมาใน JSON format น่ะ
คุณสมบัติของ Nostr
- decentralized: relay คือ database แบบกระจายศูนย์
- open protocol: Nostr เป็น open protocol สามารถใช้งานได้หลายอย่าง
- censorship-resistant: user มีสิทธิ์เลือก relay เองได้
- high security: encrypt ข้อมูลส่วนตัวก่อนส่งทุกครั้ง
มาตรฐาน NIP
NIP ย่อมาจาก Nostr Implementation Possibilities คือ มาตรฐาน protocol ที่ใช้กันสำหรับ Nostr
ใน content นี้เราไม่ลงลึกมาก เดี๋ยวจะงงกัน เอาให้เห็นภาพคร่าว ๆ เพราะมันมีเยอะมาก
หลัก ๆ ที่เราใช้งานกัน จะมี
- NIP-01: Basic protocol เป็นอันพื้นฐานที่ต้องรู้ บอกโครงสร้าง event การรับส่งข้อมูลต่าง ๆ ทำให้เรารู้โครงสร้างแล้วเอาไปสร้าง client ได้เลย ทำให้ developer focus ที่โครงสร้างนี้อันเดียวเท่านั้นในการพัฒนา เช่น post บน Nostr นั่นแหละ
- NIP-05: Nostr Address บอกว่าเราเป็นใครใน internet ฟีลเดียวกันกับ email address ทำให้เราตั้งชื่อบัญชีให้จดจำได้ง่าย ช่วยในการค้นหาและติดตามกันได้ง่ายยิ่งขึ้น เช่นจากที่เราต้องเพิ่มเพื่อนผ่าน Nostr public key ที่ยาวเหลือเกิน เป็นอะไรสั้น ๆ ฟีล email เช่น [email protected]
- NIP-23: Long-form article พวก blog ต่าง ๆ
- NIP-53: สำหรับ live stream
ส่วนแบบอื่น ๆ สามารถอ่านรายละเอียดได้ที่นี่เลย
เริ่มใช้งานบนมือถือ
จาก workflow เราจะเห็นว่าเราสามารถใช้ client ตัวไหนก็ได้ในการเล่น Nostr และโลกของ Nostr มีตัวเลือกให้เราเยอะมากก แล้วเราจะเริ่มยังไงดี?
- ติดตั้ง Wherostr เป็นแอพที่ทีมคนไทยทำ ใช้ง่ายมาก ๆ สามารถ download ได้ทั้ง App Store และ Play Store
- แน่นอนว่าเรายังไม่มี account ให้สร้าง account
- ปรับแต่ง profile ให้เรียบร้อย
- เก็บ private key ไว้ในที่ปลอดภัย เพราะเป็น key ยืนยันตัวตนว่าเป็นเราในการทำธุรกรรมต่าง ๆ ในที่นี้คือสร้างโพส, กด like, กด share, รวมถึง zap ด้วย ในแอพอาจจะยังไม่เห็น process นี้ ต้องบนคอม
Tips: ไปรับ NIP05 สวย ๆ ได้ที่ https://siamstr.com/
การที่เราสร้าง account ใหม่นั้น จะเป็นการสร้าง key pair อันประกอบด้วย
- public key: ขึ้นต้นด้วย
npub1...
โดยสามารถเพิ่มเพื่อนใน Nostr ผ่านอันนี้ได้ ซึ่งบอกว่าเราเป็นใคร - private key: ขึ้นต้นด้วย
nsec1...
เป็นส่วนที่เราต้องเก็บไว้ให้ดีเลย เพราะต้องเอามาใช้ sign กับการทำธุรกรรมของเรา เช่น การ login, สร้าง post, reaction post ใด ๆ
เชื่อมกับกระเป๋า Lightning
เชื่อมเพื่อรับ sat จากเพื่อน ๆ โดย sat เป็นหน่วยย่อยของ Bitcoin มาจาก Satoshi อันเป็นนามแฝงของผู้สร้าง Bitcoin โดย 1 Bitcoin = 100,000,000 Satoshi
- ติดตั้ง Wallet of Satoshi ตัวแอพนี้เป็น custodial wallet ที่เราไม่ต้อง set อะไรเอง แต่เราไม่ได้ถือ key ของกระเป๋านี้เองนะ สามารถ download ได้ทั้ง App Store และ Play Store
- เชื่อม email กับ Wallet of Satoshi เลข Lightning Wallet กดปุ่ม Receive แล้วก็ copy
- กลับมาที่ Wherostr ไปที่ Profile ของเรา กด Edit Profile
- วางเลขเป๋าตรง Bitcoin Lightning Address แล้วก็กด save
การใช้งานทั่วไป
ขอเปรียบเทียบกับ social network ที่เราใช้กันอยู่เนอะ สมัยก่อนโพสจะเรียงตามลำดับเวลา และเพิ่มเพื่อนหรือติดตามเพจก่อน เราถึงจะเห็น content เขาใน feed
แต่สมัยนี้ AI นำหมด ลองไถ feed ดูสิ เจอเพื่อนเราหรือเพจที่เราตามเท่าไหร่ใน 10 post ทำให้ตัว content creator ต้องเรียนรู้ algorithm ของ platform นั้น ๆ เพื่อให้ content ของเราผู้ติดตามเห็นมากขึ้น (งงม่ะ)
แล้ว Nostr ล่ะ? เหมือน social network สมัยก่อนที่เรียง feed ตามเวลาเลย เราสามารถกดติดตามเพื่อนได้ (และระบบนั้นให้เราได้ติดตามตัวเราเองได้ด้วยนะ5555) และอ่านโพสเพื่อน ๆ คนไทยใน Nostr ได้ผ่าน #siamstr
การสร้างโพส
การโพสก็แสนจะง่ายดาย กด + ตรงกลาง แล้วพิมพ์ เพิ่มรูปใด ๆ ได้ตามใจชอบเลย ฟีลประมาณ medium แหละเนอะ สำหรับ wherostr สามารถ tag สถานที่ได้ด้วย
จุดที่น่าสนใจ คือปุ่มเหมือน CPU กดไปดูจะพบว่าเราสามารถเลือก Proof of Work difficulty level ได้ ซึ่งถ้าเราตั้งไว้เพื่อกัน spam แหละ ถ้าตั้งสูงก็ใช้เวลาในการ solve นาน ซึ่ง default POW เป็น 8
เอ้ออย่าลืมติด #siamstr ด้วย
เมื่อเรียบร้อยแล้ว Post แล้วรอแปป โพสของเราเมื่อสร้างเสร็จแล้วจะอยู่บนสุดเหมือนแอพ social media ทั่วไปเลย
ข้อพึงระวัง
- ลงแล้ว edit post ไม่ได้
- และลบไม่ได้ด้วยนะจ๊ะ
แชร์ลิ้งได้ แต่ก็ไม่แน่ใจว่าเพื่อนเปิดยังไงได้บ้าง บาง client อย่าง Yakihonne สามารถ share url link Nostr post ของเราได้เลยนะ
เราสามารถกด report, comment และ like ตามปกติเลย แต่มีปุ่มนึงเพิ่มมาจาก social network อื่น ๆ คือ zap นั่นเอง
Zap คืออะไร?
แน่นอนไม่ใช่การแอบแซ่บ แต่เป็นการที่เราเอา Bitcoin บน lightning มาใช้จ่ายต่าง ๆ เช่น เอาไปซื้อชากาแฟ หมูปิ้ง เค้กท้อฟฟี่ชลบุรี ปลากรอบ Crispy Will รวมถึงการ donate ให้กับเจ้าของ content ที่คนนี้เขียนดีมาก เรากด zap ให้เขาดีกว่า หรือไป zap ที่ profile ก็ได้ซึ่งทุก sat (satoshi หน่วยย่อยของ Bitcoin) ที่เขาส่งมาให้ เราได้รับครบทุก sat แบบไม่หักจาก platform เลย
วิธีการ zap ผ่าน Wherostr มี 2 ทาง คือ
- zap ให้กับคนนั้น ๆ ที่ profile: ไปที่ profile ของเขา แล้วเราจะเห็นปุ่มสายฟ้า
- zap ที่ post นั้น ๆ: เลื่อนไปล่างสุด เราจะเห็นปุ่ม repost, like, comment และอีกอันที่เป็นสายฟ้าคือ Zap
เมื่อกดปุ่ม Zap แล้ว เข้าไปหน้า Zap เลือกจำนวน sat ที่เราต้องการ Zap อาจจะใส่ข้อความไปด้วยก็ได้ แล้วก็กดปุ่ม Zap ด้านล่าง
จากนั้นมันจะเด้งไป Wallet of Satashi ที่เรา connect ไว้ ตรวจสอบธุรกรรม เรียบร้อยแล้วกด Send เขียว ๆ รอสักแปป เมื่อสำเร็จแล้วเราจะเห็นหน้าเขียว ๆ แบบนี้เลย
ถึงเงินอาจจะไม่ได้มากมายอะไรมัก ก็เป็นสิ่งที่ platform web2 ให้ไม่ได้เลยนะ กับความรู้สึกดี ๆ แบบนี้ ที่ลง content แล้วมีคนมา Zap ให้ ในขนาดที่ platform web2 ไม่มีคนกด send gift ให้เลย ฮือออออออออออ
Client App อื่น ๆ ที่น่าสนใจ
จริง ๆ เราจะใช้แอพ Client อื่น ๆ เล่น Nostr ได้นะ เพราะว่า Relay สามารถใช้ร่วมกันได้ในหลาย ๆ แอพ
ก่อนที่จะมีแอพ Wherostr เขาจะแนะนำกันว่า
ถ้าใช้ iOS ใช้แอพ Damus ส่วนชาว Android ใช้ Amethyst
ตอนนั้นที่เราลองเล่นเอง เราสร้าง account ผ่าน Iris แหละ เพราะ ก่อนหน้าที่เรารู้จัก Wherostr และเข้าใจ Nostr เราได้ลองกับ Nostr browser นึงที่ชื่อว่า Spring ในนั้นมีหลาย ๆ client ให้เราจิ้มเล่น และแอพนี้มีเฉพาะ Android เท่าน้านนน
สายเขียนบล็อก: Habla, Yakihonne, Npub.pro
ส่วนสายสตรีม: Zap.Stream
ส่วน Client อื่น ๆ สามารถเข้าไปดูได้ที่นี่ ซึ่งในนี้เป็นแค่ส่วนหนึ่งเท่านั้นแหละ
เริ่มใช้งานบนคอม
หลาย ๆ client นอกจากจะมีเป็นแอพบนมือถือ ยังมีเป็นหน้าเว็บไซต์อีกด้วย
สิ่งที่ต้องมีเพิ่มเติม คือ extension ที่ชื่อว่า Nostr Connect เราใส่ private key เข้าไปในนั้น พอเวลา sign transection ตัว extension จะไม่เอา private key ของเราตรง ๆ
หลังจากติดตั้ง extension ตัวนี้แล้ว การใช้งาน สมมุติเข้าเว็บ Wherostr กดปุ่ม Login แล้วจะมีหน้า popup เด้งมา ให้กด Login with Nostr extension แล้วจะขึ้นหน้าต่างให้เรา sign สองอัน คือ อ่าน public key กับ Relay
เมื่อ login เรียบร้อยแล้ว สมมุติเราสร้างโพสบนเว็บ Wherostr จามปกติ เรียบร้อยแล้วกด Post เขาจะให้เรา sign event ว่าเราเป็นคนสร้าง post นี้นะ เราจะเห็น transaction ออกมาเป็น json เลย ตามมาตรฐาน NIP-01
ปล. จริง ๆ จะกดไม่ให้เปิด popup ก็ได้นะ แต่เราอยากเปิดไว้เอง เอาไว้ check
และ extension อีกตัวที่มีคนแนะนำก่อนหน้านี้คือ Alby ตอนนี้ไม่ต้องไปขอ access code ก่อนถึงจะใช้ได้ สามารถเข้าไปสมัครที่นี่ได้เลย
สุดท้าย ก็หวังว่าทุกคนรู้จัก Nostr กันไม่มากก็น้อยเนอะ
ถ้าใครอยากติดตามเราบน Nostr สามารถเปิดแอพ Wherostr หรืออื่น ๆ เพื่อ scan QR Code นี้ได้ หรือ copy public key หรือ Nostr user ไปหาได้น้า
npub1h9ls03lflhvgzzmkf6nsymspw3auh0f3d97c02e5l4edn2waefcszlq9qf
Reference
จริง ๆ ก็เอามาจากงาน Thailand Bitcoin Conference 2024 ที่เขียนไปด้วยแหละ แต่บวกกับการใช้งานจริงด้วย
ติดตามข่าวสารตามช่องทางต่าง ๆ และทุกช่องทางโดเนทกันไว้ที่นี่เลย แนะนำให้ใช้ tipme เน้อ ผ่าน promptpay ได้เต็มไม่หักจ้า
ติดตามข่าวสารแบบไว ๆ มาที่ Twitter เลย บางอย่างไม่มีในบล็อก และหน้าเพจนะ