Decentralized App หรือที่เขียนโดยย่อว่า dApp เป็นคำที่เราเริ่มได้ยินบ่อยมากขึ้นเรื่อย ๆ ในปัจจุบันนี้ มันเป็นแอปพลิเคชันแบบไหน ? ใช้เทคโนโลยีอะไรในการทำงาน ? แล้วแตกต่างจากแอปพลิเคชันแบบดั้งเดิมที่เราใช้งานกันในปัจจุบันนี้อย่างไร ? หากสนใจล่ะก็ ในบทความนี้เราจะพาคุณผู้อ่านไปทำความรู้จักกับ Decentralized App กันให้มากขึ้น
ก่อนจะไปทำความเข้าใจกับ Decentralized App เราควรจะมารู้จักกับ Centralized App ซึ่งเป็นรูปแบบพื้นฐานของแอปพลิเคชันส่วนใหญ่เกือบทุกแอปพลิเคชันในปัจจุบันกันก่อน
เกือบทั้งหมดของแอปพลิเคชันที่เราใช้งานกันอยู่ในทุกวันนี้ ไม่ว่าจะเป็น แอป Facebook, Twitter, LINE, Google Docs ฯลฯ ล้วนแต่มีโครงสร้างการทำงานพื้นฐานที่เหมือนกัน โดยตัวแอปพลิเคชันจะทำหน้าที่เป็น "Client" (ลูกข่าย) อยู่บนอุปกรณ์ที่คุณใช้ หรืออาจจะเป็น แอปพลิเคชันที่เปิดผ่านเว็บเบราว์เซอร์ หรือ เว็บแอปพลิเคชัน (Web Application) ที่ทำงานอยู่บนเว็บเบราว์เซอร์ก็ได้ เพื่อทำงานร่วมกับเซิร์ฟเวอร์กลางซึ่งตั้งอยู่ที่ไหนสักแห่งบนโลกใบนี้
การทำงานของแอปพลิเคชันจะประมวลผลบนอุปกรณ์ลูกค้า (Client Device) โดยตรง หรืออาจจะมีการถ่ายโอนไปประมวลผลบนเซิร์ฟเวอร์กลางสำหรับงานบางอย่าง เช่นการใช้ แอป Shazam หรือ แอป Soundhound ในการค้นหาชื่อเพลง ตัวแอปพลิเคชันจะทำหน้าที่รับข้อมูลเสียงเพื่อส่งไปเปรียบเทียบกับฐานข้อมูลเพลงบนเซิร์ฟเวอร์ ก่อนจะส่งคำตอบกลับมาให้ Client
หรืออย่าง แอปพลิเคชัน LINE เมื่อเราพิมพ์ข้อความส่งไปหาเพื่อน สมาร์ทโฟนของเราไม่ได้เชื่อมต่อกับสมาร์ทโฟนของเพื่อนโดยตรง ข้อความจะถูกส่งไปยังเซิร์ฟเวอร์ของ LINE ก่อน ซึ่งสมาร์ทโฟนของทุกคนที่ใช้งานแอปพลิเคชัน LINE ก็จะเชื่อมต่อกับเซิร์ฟเวอร์ก่อน เพื่อเป็นตัวกลางในการ Sync ข้อมูลส่งข้อความไปยังเครื่องของผู้รับ
ซึ่งจากเหตุผลที่ข้อมูลในเครื่อง Client ต้องส่งไปให้เซิร์ฟเวอร์กลางก่อน เจ้าของเซิร์ฟเวอร์จึงสามารถรู้ทุกอย่างที่คุณส่งไปได้ นั่นเป็นเหตุผลให้ผู้บริการมีการพัฒนาการรับส่งข้อมูลแบบเข้ารหัส End-to-end encryption ขึ้นมา เพื่อให้บริการแก่ผู้ใช้ที่ต้องการความเป็นส่วนตัว
สำหรับ Decentralized App หรือที่เรียกสั้นๆ ว่า "dApp" การใช้งานก็เหมือนกับแอปพลิเคชันปกติที่เราคุ้นเคยกันดี เพียงแต่ว่าในโครงสร้างการทำงานของมัน Client จะไม่ต้องอาศัยเซิร์ฟเวอร์กลางของผู้ให้บริการ เพื่อแลกเปลี่ยนข้อมูลเหมือนกับ Centralized App แต่ว่า Client ทุกเครื่องที่ออนไลน์อยู่จะทำหน้าที่ร่วมกันสร้าง Node เครือข่ายเชื่อมโยงหากันโดยตรงเพื่อทำหน้าที่แทนเซิร์ฟเวอร์กลาง
เปรียบเทียบโครงสร้าง Centralized App กับ Decentralized App (dApp)
ภาพจาก : https://www.maketecheasier.com/are-decentralized-App-the-future/
หากนึกภาพไม่ออก อยากให้นึกถึงการทำงานของระบบแบ่งปันไฟล์แบบ Peer-to-peer เช่น BitTorrent เมื่อ "ผู้ใช้ A" ทำการแบ่งปันไฟล์ "ผู้ใช้ B" เข้ามาดาวน์โหลดจนเสร็จ หรืออาจจะเสร็จแค่เพียงส่วนหนึ่งประมาณ 40% จากนั้นมี "ผู้ใช้ C" ต้องการดาวน์โหลดไฟล์นี้ด้วยอีกคน "ผู้ใช้ C" ก็จะไม่ได้ดาวน์โหลดไฟล์จาก "ผู้ใช้ A" เพียงคนเดียวแล้ว เพราะ "ผู้ใช้ B" ที่มีไฟล์ดังกล่าวก็จะช่วยส่งไฟล์ให้ "ผู้ใช้ C" ด้วยเช่นกัน
ว่ากันตามจริง บิตทอร์เรนต์ (BitTorrent) อาจจะไม่เหมือนแอปพลิเคชัน dApp ที่เราวาดภาพไว้ในอนาคต แต่โดยหลักการแล้ว BitTorrent ก็ถือเป็นแอปพลิเคชัน dApp ชนิดหนึ่ง
ในปัจจุบันนี้ เมื่อกล่าวถึงแอปพลิเคชันที่เป็น "dApp" ก็จะหมายถึงแอปพลิเคชันที่อาศัย Blockchain ในการทำงาน หรือถ้าให้เจาะจงไปกว่านั้นก็คือ แอปพลิเคชันที่อยู่บน Ethereum blockchain
ภาพจาก : https://twitter.com/ethdotorg/status/1326178888024776704?s=20&t=TV9Lb1rOIU8RcnAql591Og
Ethereum เป็น Cryptocurrency ตัวหนึ่งที่คล้ายกับ Bitcoin ทำงานอยู่บน Blockchain แต่ว่าแพลตฟอร์ม Ethereum ถูกสร้างขึ้นมาให้ทำอะไรได้มากกว่า ผู้ใช้สามารถสร้างแอปพลิเคชันแบบ dApp ขึ้นมาบน Ethereum ได้ โดยอาศัยระบบ เช่น Smart Contract มาช่วยในการประมวลผล
แล้วก็มีการเสนอเงื่อนไขด้วยว่า แอปพลิเคชันที่จะเป็น dApp ได้ จะต้องตรงตามเงื่อนไข 3 ข้อ ดังต่อไปนี้
อย่างไรก็ตาม กฏทั้ง 3 ข้อนี้ก็ไม่ได้มีการบังคับใช้อย่างเป็นทางการ คุณอาจจะเลือกพัฒนาแอปพลิเคชันที่ตรงกับเงื่อนไขเพียงบางข้อก็ได้ ขึ้นอยู่กับว่าหลักการดังกล่าวสำคัญต่อแอปพลิเคชันของคุณมากขนาดไหน
ข้อดีของ Decentralized App (dApp) ที่สำคัญที่สุด ก็ต้องมองย้อนไปยังจุดเริ่มต้นว่าทำไมมันถูกคิดค้นขึ้นมา คำตอบก็คือ พอเป็นแอปพลิเคชันแบบ Centralized App อำนาจของบริษัทเจ้าของแอปพลิเคชัน มีมากเกินไป พวกเขาสามารถควบคุมข้อมูลของผู้ใช้ นำไปใช้หาประโยชน์ได้อย่างอิสระ กล่าวได้ว่า นี่เป็นจุดอ่อนที่สำคัญที่สุดของการใช้ระบบแอปพลิเคชันแบบ Centralized App
ยังมีประเด็นอื่น ๆ ที่น่าสนใจ อีกหลายด้าน เนื่องจาก Centralized App พึ่งพาเซิร์ฟเวอร์ศูนย์กลางในการทำงาน หากเซิร์ฟเวอร์ล่มตัวแอปพลิเคชันก็จะใช้งานไม่ได้ทันที ซึ่งเป็นเรื่องที่เกิดขึ้นได้เสมอ แม้แต่แอปพลิเคชันยักษ์ใหญ่อย่าง Facebook ก็ล่มอยู่บ่อยครั้ง, หากว่าเซิร์ฟเวอร์โดนแฮก ก็มีโอกาสที่แฮกเกอร์จะได้ข้อมูลทั้งหมดไปในทันที หรือหากรัฐบาลต้องการเซนเซอร์ข้อมูลก็ไม่ต้องลำบากสั่งปิดเซิร์ฟเวอร์ทีเดียวจบ
Decentralized App (dApp) ถูกสร้างขึ้นมาเพื่อปัญหาทั้งหมดที่ว่ามานี้ เพราะมันไม่มีเซิร์ฟเวอร์กลาง บริการไม่สามารถถูกสั่งปิด หรือแทรกแซงได้ และหากผู้พัฒนาเลือกทำแบบ Open source ด้วย ก็จะทำให้มีความโปร่งใสไม่มีอำนาจมืดมาแอบสร้าง Back doors ไว้ในโค้ดได้อีกด้วย
นอกจากนี้ ด้วยความที่ dApp ในปัจจุบันนี้นิยมพัฒนาบนแพลตฟอร์ม Ethereum blockchain นั่นทำให้เป็นเรื่องง่ายที่จะนำระบบธุรกรรมทางการเงินด้วย Cryptocurrency เข้ามาใช้ภายในแอปพลิเคชันได้อย่างง่ายดาย
dApp ที่มีให้ใช้งานแล้วในปัจจุบัน
ภาพจาก : https://ethereum.org/en/dApp/?category=finance
Decentralized App (dApp) ยังสามารถใช้คุณสมบัติ "Sidechain" ในการใช้งานแอปพลิเคชันควบคู่ไปกับ Main blockchain แต่แยกการปฏิบัติการออกจากกันอย่างอิสระได้ด้วย โดยที่ แอปพลิเคชันบน Sidechain จะเชื่อมต่อกับ Blockchain ผ่านการทำ Bridge ผ่านขั้นตอนที่ง่าย ไม่มีความยุ่งยาก
อ่านมาตั้งหลายบรรทัด เหมือน dApp จะมีแต่ข้อดีใช่ไหมล่ะ แต่ทำไมมันถึงยังไม่ได้รับความนิยม และอาจจะไม่มีทางประสบความสำเร็จเป็นตัวเลือกหลักในการพัฒนาแอปพลิเคชันส่วนใหญ่ในตลาด (อย่างน้อยก็ในเวลานี้) เพราะแอปพลิเคชันในปัจจุบันนี้ ขับเคลื่อนด้วยโมเดลธุรกิจเป็นหลัก ตัวแอปพลิเคชันจะต้องมีคุณสมบัติที่ผู้ใช้ต้องการที่จะใช้งาน ซึ่งจะเกิดขึ้นได้บริษัทที่พัฒนาต้องทุ่มเท ทั้งไอเดีย, เงินทุน และการตลาดเป็นมูลค่ามหาศาล
ในขณะที่ dApp มักจะเกิดขึ้นจากนักพัฒนาภายในชุมชน ขาดการขัดเกลาคุณสมบัติการทำงาน ให้มีความสามารถที่ดีเทียบเท่ากับแอปพลิเคชันที่บริษัทให้การลงทุน
และอีกประเด็นสำคัญ คือ หากตัวแอปพลิเคชัน dApp ไม่มีจำนวนผู้ใช้งานมากพอ ประสบการณ์ในการใช้งานแอปพลิเคชันดังกล่าวก็จะค่อนข้างแย่ ทำงานได้ล่าช้า เนื่องจากมี Node สำหรับแลกเปลี่ยนข้อมูลแทนเซิร์ฟเวอร์จำกัด มันเป็นสถานการณ์ที่มีความซับซ้อนตรงที่ dApp จะทำงานได้ดีก็ต่อเมื่อมีผู้ใช้งานอยู่เป็นจำนวนมาก แต่ผู้ใช้ส่วนใหญ่จะไม่ใช้แอปพลิเคชันจนกว่ามันจะทำงานได้ดีก่อน
ข้อเสียอีกอย่างหนึ่ง คือด้วยธรรมชาติของ dApp ที่เป็น Open-source ที่เปิดเผยโค้ดเพื่อความโปร่งใส แต่นั่นก็เป็นช่องทางที่เปิดโอกาสให้แฮกเกอร์เข้ามาขุดหาช่องโหว่ได้ง่ายขึ้นด้วยเช่นกัน
แอปพลิเคชันหลายตัวไม่ได้ทำงานแบบแยกเดี่ยว (Standalone) มันต้องมีการอัปเดต หรือค่าเซิร์ฟเวอร์ที่เป็นค่าใช้จ่ายค่อนข้างสูง ซึ่งผู้พัฒนาอาจจะนำรายได้ที่เก็บจากค่าสมาชิกรายเดือน, ค่าซอฟต์แวร์ หรือค่าโฆษณา แต่ dApp ไม่ได้อยู่ในการควบคุมดูแลของใครเลย คุณผู้อ่านก็อาจจะมีคำถามว่า "แล้วใครเป็นคนที่จ่ายดูแล ค่าพื้นที่จัดเก็บข้อมูลกันล่ะ ?"
คำตอบ คือผู้ใช้งานทุกคนมีส่วนร่วมในการจ่ายเงินในส่วนนี้ อย่างในกรณีของ Ethereum เมื่อมีการทำธุรกรรมเกิดขึ้น ผู้ใช้จะต้องเสียค่าธรรมเนียมที่เรียกว่า "Gas" (หรือที่ในบ้านเรานิยมเรียกกันว่าค่าแก๊ส) เมื่อเราต้องการทำธุรกรรมใด ๆ ก็ตาม ผู้ใช้จะต้องเสียค่า Gas เพื่อให้ระบบสามารถดำเนินการได้ โดยค่า Gas จะไม่ตายตัว ขึ้นอยู่กับปริมาณผู้ใช้งานในขณะนั้น ค่าธรรมเนียมนี้จะถูกนำมาใช้เป็นค่าในการดูแลรักษา dApp นั่นเอง
ภาพจาก : https://ethereum.org/en/developers/docs/gas/
|
แอดมินสายเปื่อย ชอบลองอะไรใหม่ไปเรื่อยๆ รักแมว และเสียงเพลงเป็นพิเศษ |