มาเรียนเรื่องนี้กันเถอะเด็กๆ #Siamstr NIP-13: Proof of Work - ป้องกันสแปมบน Nostr ด้วยการพิสูจน์พลังงาน nostr:nevent1qqsqpzdr5390efejk7hc87g7m4rvpnfpdeuepdky7f4gclejkq53jsqzyzn7nvm07f9wwvrsvap92w62fgnn8vq32mnuncnpghumc6s57ps6jc4pmcw https://image.nostr.build/569686588ec50d4cb6b0e4c8c966c557888d2f85baac3e4715fd2acfd6b4af86.jpg NIP-13 เป็นข้อกำหนดที่ช่วยเพิ่มระบบ Proof of Work (PoW) เข้ามาใน Nostr เพื่อแก้ปัญหาเรื่องสแปม (โดยเฉพาะปัญหาบ็อท Reply Guy ที่กำลังระบาดอยู่ตอนนี้) จริงๆ มันมีมานานแล้วแต่ไม่ค่อยมีไคลเอนต์ไหนนำมาอิมพลีเม้นสักเท่าไหร่ จนกระทั่ง #Wherostr เอามาพัฒนาอย่างเป็นรูปธรรมนั่นแหละ.. https://image.nostr.build/72438059f68c317359a2cfb7b9ad4507f551f7248d8291ccf9877421c1668086.jpg # #PoW คืออะไร? ลองนึกภาพว่าเราต้องการส่งจดหมายไปรษณีย์ แต่ก่อนส่งเราต้องแก้โจทย์ปริศนาคณิตศาสตร์ซับซ้อนๆ สักข้อเสียก่อน ใครที่แก้ได้ก็แสดงว่ามีความตั้งใจและใช้พลังงานในการส่งจดหมายจริงๆ ไม่ใช่แค่ส่งจดหมายแบบสุ่มๆ ในโลกม่วงๆ นี้ PoW คือการพิสูจน์ว่าผู้ส่งข้อความได้ใช้พลังงานในการคำนวณ (หรือ "ขุด") ก่อนส่งข้อความนั้น ยิ่งข้อความนั้นยากที่จะคำนวณ ก็ยิ่งแสดงให้เห็นว่าผู้ส่งมีแรงจูงใจและความตั้งใจที่จะส่งข้อความนั้นจริงๆ ก่อนที่เราจะส่งโน้ต เราต้อง "ขุด" (Mine) โน้ตนั้นก่อน โดยการใช้พลังประมวลผลของอุปกรณ์ของเราคำนวณหาค่าพิเศษที่ตรงตามเงื่อนไขที่กำหนด ค่าพิเศษนี้ถูกฝังอยู่ใน ID ของโน้ต ยิ่งความยากของ PoW สูงขึ้น ก็ยิ่งใช้พลังงานในการคำนวณมากขึ้น และ ID ของโน้ตก็จะเริ่มต้นด้วยเลข 0 จำนวนมากขึ้นตามไปด้วย # ทำไมต้องใช้ PoW? เพราะมันช่วยลดปัญหาสแปมได้อย่างมีประสิทธิภาพน่ะสิ! - ลดบ็อท หรือโปรแกรมที่ส่งข้อความอัตโนมัติส่วนใหญ่จะไม่สามารถใช้พลังงานในการขุด PoW ได้มากเท่ากับมนุษย์ เนื่องจากบ็อทมักออกแบบมาเพื่อประหยัดทรัพยากร ดังนั้น.. เมื่อเราตั้งค่า PoW ไว้สูง บ็อทก็จะไม่สามารถสร้างโน้ตได้ง่ายๆ - ลดการส่งโน้ตแบบสุ่ม ผู้ส่งโน้ตต้องใช้พลังงานในการขุดก่อนส่ง ทำให้พวกที่ตั้งใจส่งสแปมแบบไม่คิดอะไรจะลดลง เพราะการขุด PoW ต้องใช้เวลาและพลังงาน - สร้างคุณค่าให้กับโน้ต โน้ตที่มี PoW แสดงว่าผู้ส่งใส่ใจและตั้งใจส่งจริง ไม่ใช่แค่ส่งแบบผ่านๆ ทำให้โน้ตมีความน่าเชื่อถือมากขึ้น - แก้ปัญหา Reply Guy บ็อท Reply Guy ที่ส่งข้อความตอบกลับอัตโนมัติจำนวนมาก สามารถถูกจำกัดได้ด้วยการใช้ PoW หากเราตั้งค่า PoW ไว้ใน Relay หรือในแอปพลิเคชัน Nostr ของเรา (ใน Wherostr ตังได้สบายๆ) บ็อทเหล่านี้ก็จะไม่สามารถส่งข้อความตอบกลับได้อย่างง่ายดายอีกต่อไป https://image.nostr.build/d21f0cc40ec636b100043f35e9233a60b8b156cfa5abfdd2d8fb4cb0ea259bf8.jpg # NIP-13 ทำงานยังไง? 1. ความยาก (Difficulty) เราสามารถกำหนดความยากของ PoW ได้ ยิ่งยากก็ยิ่งต้องใช้พลังงานในการขุดมากขึ้น ความยากถูกกำหนดโดยจำนวนเลข 0 ที่อยู่ข้างหน้าของ ID โน้ต (ตาม NIP-01) ยิ่งมีเลข 0 มาก ความยากก็ยิ่งสูงขึ้น 2. การขุด (Mining) เราต้องใช้แอปพลิเคชั่น Nostr ที่รองรับ PoW (Wherostr อีกแล้ว) แล้วปรับแต่งค่าในโน้ตของคุณเรื่อยๆ จนกว่าจะได้ค่าที่ตรงตามเงื่อนไขที่กำหนด โดยปกติแล้วจะปรับแต่งค่าในแท็ก "nonce" แล้วคำนวณ ID โน้ตใหม่ 3. การตรวจสอบ (Validation) รีเลย์และไคลเอนต์สามารถตรวจสอบได้ว่าโน้ตนั้นผ่านการขุด PoW แล้วหรือไม่ โดยการนับจำนวนเลข 0 ที่อยู่ข้างหน้าของ ID โน้ต https://image.nostr.build/63e2fd2799b3e758ccc397dc4b48aa83773daed370499ffb3b0f708e22adab9c.jpg # ตัวอย่างการใช้งาน (ที่อยากเห็นทุกคนช่วยๆ กันลอง) - ตั้งค่า PoW สำหรับการโน๊ตหรือตอบเม้น เราสามารถกำหนดค่า PoW ไว้ในโน้ตและเม้นของเราได้ เช่น โน๊ตหรือเม้นด้วยการตั้งค่า PoW ที่มีความยาก 8 ขึ้นไป - ใช้ฟิลเตอร์ PoW ใน nostr:nprofile1qqsdvl5ghyne55mzdj0hzmyhvuv26fzughl7y333r9py6xdnf0uyttq7e6759 แอป Wherostr มีฟีเจอร์ที่ช่วยให้เราสามารถกรองโน้ตและคอมเม้นท์ที่ผ่าน PoW มาแล้วเท่านั้นได้ เช่น เราสามารถตั้งค่าให้แสดงเฉพาะโน้ตหรือคอมเม้นท์ที่มี PoW อย่างน้อย 8 ขึ้นไป ซึ่งจะช่วยลดโน้ตสแปมจากบ็อทได้อย่างมีประสิทธิภาพ (โน๊ตและเม้นที่ไม่มี POW ของเราและของเพื่อนเราก็จะไม่ปรากฏด้วย แต่เราก็ปิด-เปิดฟีเจอร์นี้ได้ตามใจชอบไง) https://image.nostr.build/55e64bfd412403c3f84a9923a59fad0bb4abcc87d5a9f6abe477a40527a96d8e.jpg - Relay ก็สามารถตั้งค่า PoW ได้เช่นกัน เช่น Relay อาจจะตั้งค่าว่าจะรับเฉพาะโน้ตที่มี PoW อย่างน้อย 4 ขึ้นไปไรงี้ เพื่อป้องกันการส่งสแปมในระดับ Relay หมายเหตุ: การตั้งค่ากรองด้วย POW ไม่ใช่การฆ่าหรือลบข้อความของบ็อท แต่เป็นการสั่งไม่ให้ไคลเอนต์ของเราไปดึงเอาโน๊ตที่ไม่มี POW มาแสดงให้เห็นเท่านั้น ประสบการณ์ส่วนตัว.. พี่เองก็ได้ลองทดสอบการสร้างโน้ตที่มี PoW ความยาก 48 ด้วยมือถือและพบว่ามันใช้เวลานานมาก บน Samsung S23+ ใช้เวลา 50 นาที แต่พึ่งจะขุดได้แค่ 25/48 เท่านั้น แสดงให้เห็นว่าความยากระดับนี้มันสูงมากจริง ๆ (ต่อให้ใช้คอมก็ยังยาก) ดังนั้น.. ไม่จำเป็นต้องเยอะขนาดนั้นก็ได้ 5555+ # ข้อเสนอแนะ หากเราทุกคนหันมาใช้ PoW ในการสร้างโน้ตและคอมเม้นท์ โดยตั้งค่าความยากที่ไม่สูงจนเกินไป เช่น 8 ก็จะช่วยลดปัญหาสแปมรกหูรกตาได้โดยที่เราไม่ต้องสิ้นเปลืองพลังงานมากเกินไป และยังช่วยให้ Relay และแอปพลิเคชัน Nostr สามารถกรองโน้ตสแปมได้ง่ายขึ้นด้วย ปล. โน๊ตเป็นเพียงการอธิบายเบื้องต้นเกี่ยวกับ NIP-13 เท่านั้น หากต้องการศึกษาเพิ่มเติม สามารถอ่านเอกสารประกอบเพิ่มเติมได้ที่นี่ครับ https://github.com/nostr-protocol/nips/blob/master/13.md
เยี่ยมไปเลยครับ
เหยดดดด เม้น pow-22
ตอนเสียบ usb ชาร์จแบตดูเหมือนจะสร้าง PoW สูง ๆ ได้ไว
https://image.nostr.build/0d0f176cea726e707bc746c99448de0fb14389a904e2183cf97fe43f4bd4098a.jpg ไม่น่าห้าวเลยกู...
5555 16 กำลังดีครับ
nostr:nprofile1qqsrmd0ph8d22lxx5l2492r2sat5a63xtcr4nh0tsl2yupe8770d3rglsd88e แม่งต้องมีให้ตั้งค่า default pow ได้ด้วยว่ะ ขี้เกียจกด 5555 ปล. ยังเซฟรูปจากโน๊ตไม่ได้
#wherostrsupport - default PoW - download image nostr:nevent1qqsqqz24z584v6qe7jguftnwtq43kgsc0mjtdylgrev08jj9sda23yczyrvrpmnm0sc2xe93y39h0xhmknc4vuellwxgwg6ssm3xkz6wv8xkyypj26w
หมายถึงให้เลือก enable + adjustable เพราะบางคนก็ไม่ซื้อไอเดียนี้ เขาไม่ควรถูกบังคับให้ทำ
ครับพี่ จะเป็นการตั้งค่าที่ Settings ครับ ไม่ได้บังคับ
ตอนนี้เรารีเฟรชข้อมูลในแต่ละหน้าแบบไหน หรือรอมันดึงเองตามเวลาที่กำหนด?
noti ได้มั้ยของ ios
ถ้า push noti รอก่อนนะค้าบ (ไม่เปิด app แต่ได้รับ noti) แต่ถ้าแสดงจำนวน noti ใน app อาจจะได้เลย รอบหน้า
รอได้ดิ เพราะเรารักนาย
เหมือนการ Filter PoW แค่ 8 จะแปลกๆนะครับ หรือว่าขั้นต่ำของ PoW ควรจะเป็น 16
เพราะทำอะไร?
ตั้งค่า Filter PoW เป็น 8 มันควรจะแสดง PoW ที่มากกว่า 8 มาด้วยครับ แต่เหมือน Relay จะคืนมาเฉพาะที่ เท่ากับ 8
อ่อ.. คือพี่ไมไ่ด้เขเาใจผิดใช่ไหม มันแค่ยังทำงานผิด?
พี่ตั้มเข้าใจและอธิบายถูกแล้วครับ แต่ขั้นต่ำ อาจจะต้องเป็น 16 เพราะทดลองใช้ 8 แล้ว relay ตอบไม่ถูก
งั้นพี่ควรแก้ข้อความสักหน่อย?
จากที่ลอง ต้องเป็น 16 ครับ แต่ยังไม่ดูลึกๆ ว่าเพราะอะไร ทำไม relay ถึงไม่ยอม
nostr:nprofile1qqs9q24s92fktq69g07q0clzp6qfh6zsycmqu774dw8eaklw52rq89cuezpjg
เพื่อที่จะเปิด filter ได้ คนจริงทุกคนต้องทำ POW ใช่ไหมครับ ดีที่ Wherostr ทำให้มันเห็นได้ง่ายๆ
Wherostr & Alby getting better
nostr:nevent1qqsqqqqvfgrfkkrdxdlcrw7vz06t5lgg4d99fhlj7sm8s4skeek6a3cprpmhxue69uhhyetvv9ujumn0w3hhx6rf9emkjm30qgsdsv8w0d7rpgmykyjykau6lw60z4nn8laceper2zrwy6ctfesu6csrqsqqqqqp4zn236
nostr:nevent1qvzqqqqqqypzpkpsaeahcv9rvjcjgjmhntamfu2kwvllhry8ydggdcntpd8xrntzqy88wumn8ghj7mn0wvhxcmmv9uq36amnwvaz7tmwdaehgu3wvf5hgcm0d9hx2u3wwdhkx6tpdshsqgqqqqxy5p5mtpknxluph0xp8a9605y2kjj5mle0gdnc2ctvumdwcuaftrsj