BlockChain
October 2, 2023

How to start to build blockchain wallet

ถ้าในระบบธนาคาร การที่เราจะทำธุรกรรมการเงินได้เราจะต้องเปิดบัญชีธนาคาร ในขณะที่ Blockchain การที่เราจะเริ่มจับจ่ายซื้อ Crypto ได้ เราก็จะต้องมีสิ่งที่เรียกว่า Wallet เช่นกัน โดยก่อนจะเริ่มเข้าสู่เนื้อหาหลัก ต้องมาอธิบายก่อนว่าหัวข้อที่จะพูดถึงในวันนี้ “How to start build blockchain wallet” มันคือหัวข้ออะไรกันแน่น้อ

     aka สอนวิธีเริ่มสร้าง metamask (แบบ web wallet) ในมุมมองของ PM      จะมาสอนสร้างบัญชี wallet metamask หรือ coinbase หรือ trustwallet อะไรมันซ้ำไปแล้ว แต่เราจะมาสอนคุณเริ่มทำ wallet เป็นของตัวเองเลยต่างหาก ซึ่งในที่นี้เราไม่ได้จะมาสอนเขียนโค้ดหรือ smart contract หรือมาเล่าว่าเบื้องหลังของ metamask ทำงานยังไง แต่จะพาไปดูว่า การที่คุณจะเริ่มสร้าง web wallet ได้ คุณต้องไปดูหรือเข้าใจอะไรมาบ้าง ก่อนที่คุณเริ่ม dev หรือหา resource มา dev ให้คุณจริง

ปล. ทั้งหมดนี้เป็นประสบการณ์การทำงานที่ได้มาจริงเมื่อประมาณ 2 ปีก่อน ซึ่งอาจจะไม่ถูกหลักการหรือมีข้อผิดพลาดประการใด ขออภัยมา ณ ที่นี้

Wallet Type

     ความรู้เรื่องแรกที่ต้องรู้คือเรื่อง Wallet Type หรือประเภทของ Wallet ว่าในปัจจุบันมี Wallet กี่ประเภท แต่ละประเภทคืออะไร มีข้อดีข้อเสียอะไร เพื่อนำไปใช้ตัดสินใจว่าจะทำ Cold หรือ Hot Wallet (ส่วนใหญ่ก็จะเป็น Hot wallet หรือ wallet ที่ต้องใช้อินเตอร์เน็ต) แล้วถ้าเลือกได้แล้วจะทำบนแพลตฟอร์มไหน Mobile App, Web App, Chrome Extension หรือ Desktop ซึ่งสามารถเข้าไปอ่านและศึกษาเพิ่มเติมได้ตาม Link ที่แปะให้ หรือ สามารถ search google หาเพิ่มเติมได้เลย

     อีกทั้งยังต้องดูว่าจะทำเป็นระบบ Decentralize หรือ Centralize ซึ่งในกรณีที่เป็น Centralize หรือ Custodial Wallet อาจต้องคำนึงถึงเรื่องกฎหมายของแต่ละประเทศ และความปลอดภัยในการเก็บข้อมูลลูกค้าเพิ่มเติมอีก      นอกจากนี้ยังต้องคำนึงถึงว่าในอนาคตจะมีการขยายไปแพลตฟอร์มอื่น ๆ มั้ย เช่น ตอนแรกเริ่มจากเป็น Web App ต่อไปจะขยายไปทำ Chrome Extension และ Mobile App ในภายหลัง ก็ควรจะเอามาคิดเป็น Factor หนึ่งตอนดีไซน์ระบบด้วย      ดังนั้นการที่จะเริ่มโปรเจคได้ก็ต้องรู้ก่อนว่าเราจะทำ wallet ประเภทอะไร เพราะแต่ละประเภทก็จะมีลักษณะแตกต่างกัน ทั้งในแง่ของ Stack การใช้งาน การดีไซน์ Structure การดีไซน์ UI/UX ไปจนถึงข้อจำกัดต่าง ๆ ที่ไม่เหมือนกัน ซึ่งจะส่งผลถึงการวางแผนงานและ resource ของโปรเจคด้วย

Core Wallet

     เรื่องสำคัญที่สุดที่ต้องรู้เมื่อคุณจะทำ wallet คือต้องเข้าใจก่อนว่า wallet ทำงานยังไง ก่อนอื่นเลยคุณอาจจะต้องเข้าใจ Keyword บางอย่างที่เกี่ยวกับ Blockchain Wallet ก่อน เช่น

  • Public Key → กุญแจสาธารณะหรือ Address ใช้เพื่อส่งสกุลเงินดิจิทัลไปยังกระเป๋าเงินและใช้ในการตรวจสอบลายเซ็นดิจิทัล เพื่อพิสูจน์ความเป็นเจ้าของกุญแจส่วนตัว [https://techsauce.co/tech-and-biz/private-key-vs-public-key]
  • Private Key → กุญแจส่วนตัว มีไว้สำหรับเจ้าของกระเป๋าเงินเท่านั้นและจะทำหน้าที่เป็นรหัสผ่านในการเข้ากระเป๋าเงิน [https://techsauce.co/tech-and-biz/private-key-vs-public-key] ซึ่งรหัสดังกล่าวยังสามารถแตกออกเป็น Sub Wallet ได้อีกมากมายนับไม่ถ้วน
  • Mnemonic / Seed Phrase → การแปลง Private Key มาเป็นชุดคำศัพท์ ซึ่งจะทำให้คนสามารถจำรหัสของตัวเองได้ง่ายขึ้น
  • Chain หรือ Cryptocurrency Blockchain Network →  เป็นเครือข่ายการชำระเงินแบบ Peer-to-peer ที่ใช้โปรโตคอลการเข้ารหัสซึ่งอนุญาตให้ผู้ใช้ส่งและรับ crypto ได้ ผู้ใช้สามารถส่งและรับ Bitcoins หรือสกุลเงินดิจิทัลอื่น ๆ ด้วยการเซ็นชื่อแบบดิจิทัลไปยังเครือข่ายโดยใช้ Blockchain Wallet [https://zipmex.com/th/glossary/network/] ซึ่งก็มีอยู่หลากหลายเครือข่าย เช่น Binance Smart Chain, Ethereum, Arbitrum, Polygon, Optimism เป็นต้น (สามารถไปดูรายชื่อ Chain ได้ https://chainlist.org/)
  • Gas → ค่า Gas ค่าธรรมเนียมหรือมูลค่าราคาในการทำธุรกรรมบนแพลตฟอร์มบล็อกเชน ผู้ใช้งานต้องจ่ายให้กับผู้ประมวลผลการทำธุรกรรมบนแพลตฟอร์ม [https://thematter.co/futureverse/future-word-gas-fee/162014] ซึ่งหมายความว่าทุกการรับส่ง crypto จะต้องเสียค่าธรรมเนียมนั่นเอง
  •    และอื่น ๆ อีกมากมาย ซึ่งสามารถไปศึกษา Keyword ต่าง ๆ ต่อได้ตาม Link ที่แนบไว้ หรือหาข้อมูลเพิ่มเติม นอกจากนี้ยังควรจะทำความเข้าใจวิธีการทำงานของ Wallet อีกด้วย ซึ่งสามารถอ่านเพิ่มเติมได้ตามลิ้งค์ด้านล่าง

     แต่ใด ๆ ก็ตาม ส่วนตัวตอนพยายามทำความเข้าใจการทำงานของ Wallet วิธีที่ชอบที่สุดไม่ใช่การฟังยูทูปหรืออ่านบทความ แต่เป็นการนั่งอ่านโค้ดของ Wallet ที่เขาเปิด Public ไว้ (ปล. พื้นฐานเคยเขียนโค้ดมาก่อนนะ) ซึ่งอาจจะใช้เวลาหน่อย แต่ช่วยได้มาก ๆ โดยแนะนำให้อ่าน GitHub ของ Solllet และ Metamask ที่จะทำให้เราเข้าใจการทำงานของ Wallet ได้ดีขึ้น (รวมถึงเป็นการไป survey structure และการทำงานของแต่ละฟังก์ชันของ Wallet ดังกล่าวอีกด้วย)

     และตัวช่วยในการทำการทดสอบความเข้าใจเรื่อง mnemonic, private key, public key หรือ address และ path ต่าง ๆ ก็จะใช้ Mnemonic Code Converter (ตามลิ้งค์ล่าง) ช่วยทดสอบว่า wallet ที่เราสร้างขึ้นได้สร้างมาถูกต้องแล้วหรือไม่ (ตอนนั้นเลือกใช้มาตรฐาน BIP39 ในการสร้าง seed phrase)

     ซึ่งการเข้าใจการทำงานของ Wallet ก็จะทำให้คุณสามารถออกแบบ Structure ออกมาได้อย่างถูกต้องและเหมาะสมกับความเป็น Blockchain และฟังก์ชันที่จะเป็น

API Provider

     ถ้าเราอยากจะทำ wallet สิ่งที่ขาดไม่ได้เลยก็คือข้อมูลจาก Blockchain ว่า wallet นี้มี crypto อะไรบ้าง จำนวนเท่าไหร่ Transaction ล่าสุดคืออะไร แสดงว่าเราต้องเขียน solidity เพื่อไปดึงข้อมูลจาก blockchain เองเลยหรอ? ไม่ โลกนี้ไม่ได้เถื่อนกันขนาดนั้น สำหรับสาย web / app dev ถ้าฟังก์ชันที่เราจะทำเป็นฟังก์ชันพื้นฐานที่ไม่ซับซ้อน เรามีผู้ให้บริการ API สำหรับดึงข้อมูลจาก blockchain อยู่และส่วนใหญ่ฟรี! เราสามารถไปศึกษาดูได้ว่า Chain ที่เราเลือกมีผู้ให้บริการเจ้าไหนบ้าง สอดคล้องกับฟังก์ชันที่เราต้องการทำมั้ย API ที่ทางผู้ให้บริการมีให้มีอะไรบ้าง เชื่อมต่ออย่างไร ก่อนที่จะเอาไปเป็นพื้นฐานสำหรับ modify ฟังก์ชันของเราในอนาคต      สำหรับโปรเจคที่โฟกัสที่ BSC20 (Binance Smart Chain) และ ERC20 (Ethereum) เบื้องต้นตัวที่แนะนำให้เริ่มศึกษาคือเริ่มจาก API ของ Binance ในกรณีที่ใช้ BSC และ API ของ Web3 และ Etherscan ในกรณีที่ใช้ ERC20 ซึ่งถ้าใครศึกษามาบ้างจะรู้ว่า BSC20 จะมี Blockchain Structure เหมือนกับ ERC20 เลย 555555

     นอกจาก API ดึงข้อมูลจาก Blockchain แล้ว ยังมี API ราคาอีกตัวที่สำคัญ (API ราคา เป็น API ที่จะช่วยเราดึงราคาและสถิติราคาของ crypto) ในกรณีที่มีฟังก์ชันที่เกี่ยวข้องกับการแสดงราคาปัจจุบันหรือเปรียบเทียบกับเงิน ซึ่งตัวพื้นฐานที่เคยใช้จะเป็น API ของ CoinMarketCap และ CoinGecko แต่อันนี้จะมีค่าใช้จ่ายด้วย ก็เอาไว้เป็นหนึ่งตัวเลือกไว้พิจารณาได้

     สามารถเข้าไปลองดูผู้ให้บริการ API อื่น ๆ ได้ใน <https://medium.com/coinmonks/top-10-blockchain-data-apis-indexed-data-provider-23efd92d2e79> หรือ search google ศึกษาข้อมูลเพิ่มเติม ซึ่งการที่เราเข้าไปศึกษาเรื่อง API จะทำให้เราช่วยประเมิน Scope เวลาและฟังก์ชันว่าทำอะไรได้บ้าง ต้องทำอะไรเพิ่มบ้าง ต้องใช้เวลาเท่าไหร่ได้อีกด้วย

Know your competitor

     แน่นอนว่าต้องศึกษา Wallet คู่แข่งที่มีอยู่แล้วในตลาดว่ามีฟังก์ชันอะไรบ้าง ทำงานอย่างไร UX เป็นยังไงบ้าง มีจุดแข็งหรือจุดอ่อน อย่างไร ซึ่งอย่างตอนศึกษาก็เลือกศึกษาจาก Wallet ที่เคยได้ยินชื่อ ก่อนจะเจาะกลุ่มที่ใกล้เคียงกับ Wallet เราต่อไป ตัวอย่าง Wallet เช่น

💡 Coinbase

💡 Metamask

💡 Trust Wallet

💡 Solllet

💡 Ledger (Hardware Wallet)

💡 Binance

💡 Terra Station

💡 Phantom

💡 Rainbow

     และอื่น ๆ ซึ่งการศึกษา wallet ต่าง ๆ ก็ทำให้เราได้เห็น trend และจุดแข็งจุดอ่อนเพื่อเอาไปเป็นจุดเด่นของ Wallet ของเราได้

Know your wallet

     หลังจากศึกษาข้อมูลต่าง ๆ ตั้งแต่ประเภท wallet เรื่องการทำงาน wallet ไปจนถึงการศึกษาคู่แข่งในตลาด คุณก็พร้อมแล้วที่จะเริ่มวางแผนสร้าง wallet ในฝันของคุณ อย่าลืมว่าบทความนี้เป็นเพียง Guideline จุดเริ่มต้นจุดเล็ก ๆ เท่านั้น เทคโนโลยีปัจจุบันถูกพัฒนาขึ้นอย่างรวดเร็ว หากจะทำให้ wallet คุณดีเยี่ยมและไม่เหมือนใคร ก็ต้องศึกษาข้อมูลใหม่ ๆ และอัพเดตข่าวสารอย่างเป็นประจำ เป็นกำลังใจให้ทุกคน!

No items found.
Aa

© 2023, All Rights Reserved, VulturePrime co., ltd.