Morphling - dApp Tham gia Binance Launchpad

Tại sao nên đọc bài này?

  • Có thêm góc nhìn về dAPP. Tại sao lại Smart Contract mà không phải viết đại trên cái gì đó centralize?
  • Tips khi build app ở trên EVM-chain (Etherium, Binance Smart Chain,...)
  • Lý do dApp này fail (Nếu tương lai nó fail 🤷‍♂️)

App gì vậy?

https://morphling.vercel.app/
Morpling là dApp giúp cho những người ở những nước cấm crypto có thể join vào Binance Lauchpad, cụ thể là Trung Quốc.

Tại sao lại build cái này?

Nếu như có bạn nào đã quen gửi tiền cho CZ hay Binance thì chắc cũng đã nghe tới với một Feature trên Binance: Launchpad
Với số liệu gần đây thì hầu hết các đợt Launhpad này mang lợi lợi nhuận rất khủng cho nhà đầu tư và gần như là risk-free, cứ có BNB là có tiền 🤑
notion image
 
Tuy nhiên, có một vấn đề là: Binance không cho user ở một số nước tham gia Launchpad, đại diện tiêu biểu là Trung Quốc

Users from the following countries or regions will not be able to participate in token sales on the Binance Launchpad platform:
Belarus, People's Republic of China, Democratic Republic of Congo, Cuba, Iraq, Iran, North Korea, Sudan, Syria, United States of America and its territories (American Samoa, Guam, the Northern Mariana Islands, Puerto Rico, and the U.S. Virgin Islands), Zimbabwe.

Để vượt qua giới hạn này, một số bạn đồng nghiệp bên Trung Quốc của mình có gửi BNB cho mình để tham gia được Launchpad. Hic tới lúc cầm số BNB với giá trị hơn 2 tỷ đồng, trong đầu mình mới pop ra những câu hỏi:
  • Lỡ mình làm mất số BNB này thì làm sao?
  • Lỡ mình "vô tình" làm mất thì sao 👿? Mấy ông bên Trung Quốc có bắt được mình không? Hay là mình làm vài cái lấy uy tín xong rồi đợi lên hơn 10 tỷ rồi "vô tình" làm mất?
  • Sau khi có token từ Binance rồi thì làm sao chia lại cho mọi người?
Trong thực tế khi mình đã tham gia Launchpad giúp mấy ông kia thì cũng gặp một số thứ khá phiền phức như:
  • Mỗi lần tính tỉ lệ chia lại cho mọi người khá mệt mỏi, có khi mình cũng có ít BNB bỏ vô thì việc tính toán lại rối lên nữa.
  • Đang holding launchpad thì có người rút BNB vì lãi vay cao quá 🏃‍♂️, hoặc có khi đang trong thời gian hold thì có người deposit BNB thêm để tham gia.
  • Chia lại reward cho mỗi người. Phần này là phần khiến mình bực nhất vì tốn rất nhiều thời gian. Sau khi đã tính được số BNB và Token để chia lại mỗi người mình phải: Xin address, confirm, vào Binance để withdraw, nhập OTP email, nhập OTP password, nhập OTP 2FA, cắm YubiKey vào, confirm đã nhận được Token 😫. Và mỗi người mình sẽ phải làm lại series này 2 lần vì Binance không hỗ trợ gửi BNB và token đồng thời.
 
Đã có lần mình gửi nhầm Token qua BNB, thế là phải gửi hết lượng token đó cho bạn mình để nhờ người đó chia lại cho mọi người. Và bạn mình cũng phải làm 7x7=49 bước như vậy để chia lại.
Nếu nhìn rộng ra, có thể thấy mô hình này chỉ hoạt động dựa trên niềm tin cá nhân với nhau. Bên đó thực sự tin mình mới gửi BNB cho mình nhiều như vậy, mình cũng thực sự tin mới gửi hết reward cho người đó.
Vậy là mình nghĩ ra Morpling 🌊
Là một Hero trong Dota, hero này có đặc điểm là có thể linh hoạt chuyển đổi giữa Agility và Streng (Nói dễ hiểu là đổi giữa dam tay và độ trâu chó)
notion image
notion image

Mô hình hoạt động

Idea của mình khá đơn giản, hệ thống sẽ có 3 pool
  • Cover pool
  • Staking pool
  • Reward pool
  1. Để giải quyết vấn đề niềm tin khi mình là người đại diện cầm BNB, mình sẽ cần bỏ một khoản tiền vào để làm tin. Khi mọi chuyện có thể sảy ra trục chặc gì đó, thì pool cover này sẽ được un-lock để chia lại cho những người đã bỏ BNB vào staking. Giống như đặt cọc ngoài đời á
  1. Sau khi tới thời gian holding BNB trên Launchpad, mình sẽ lock pool staking lại và rút pool này ra bỏ lên Binance để tham gia launchpad.
  1. Cuối cùng, khi Binance đã trả lại BNB và token cho mình. Mình chỉ cần rút ra bỏ vào pool. Sau đó phần pool này sẽ được chia đều lại theo tỉ lệ đã deposit ở staking pool
  1. Nếu lỡ có sảy ra bất cứ sự cố đáng tiếc nào 🤕, thì những user đã staking có quyền redeem cover từ Cover pool → Cái này mình chưa làm được vì nó sẽ tốn rất nhiều não
Qua việc luân chuyển BNB và token ở 3 pool trên, mình không phải chạy việc tính toán, chia lại token cho mọi người bằng tay nữa (Tiết kiệm cho mình 10 phút cho 1 user, và đồng thời giảm rủi ro cho việc input sai số, hoặc gửi nhầm). Ngoài ra việc thời điểm trả token lại cho mọi người cũng khá nhạy cảm

Lợi nhuận 🤑

Nothing for free, mình charge 5% cho reward token. Nên nếu mình làm tay thì cầm 2 tỉ chỉ được trả công khoảng $50-$100, hic tỉ lệ rủi ro quá cao. Do đó, nếu mình scale được một hình này thì mình chả cần làm gì nhiều cũng có thể có một dòng tiền kha khá
Vd: 100 user, mỗi người deposit 5BNB và nhận về khoảng $100 token reward 1 người
Vậy là mình có thể thu về lợi nhuận: 100*100*5% = $500 rồi (Tùy thuộc vào mức Pump của reward token mà lợi nhuận có thể sẽ khác)
Phần rủi ro của mình sẽ đẩy qua bên Smart Contract, hoặc là mình không bị gì, hoặc là mình mất hết 🙃

Câu chuyện không dễ như vậy 😌

Về mặt hoạt động thì khá là đơn giản, nhưng nếu suy nghĩ sâu hơn thì sẽ cần handle rất nhiều câu hỏi?
  • Nếu cover quá ít thì user có tin tưởng để deposit BNB vào không?
  • Nếu lượng cover lớn hơn lượng BNB bỏ vào? Thì chỉ cần bỏ 1BNB rồi đòi redeem 1.2BNB cover là xong, risk-free investment trong vài phút 🤷‍♂️.
  • Nếu sau khi có được token, BNB từ Launchpad, nếu mình ăn bớt một ít rồi mới deposit vào Reward pool thì bên Users sẽ phải xử lý như thế nào?
  • Dùng cái dApp này làm gì khi bỏ tiền mua mọe 1 tài khoản Binance ở nước khác?
  • Thường thì giời gian trả token sẽ bị delay hên xui so với thời gian token đó list trên sàn, nếu token đó dump hay pump thì ảnh hưởng tới mô hình này như thế nào?
  • Mội user khi tham gia Launchpad sẽ bị giới hạn tối đã số token có thể mua, gọi là Hardcap, vậy nếu mình cần phân bổ nguồn Token đó ra nhiều tài khoản Binance khác, thì mình cần thiết kế ntn để bên đó, không phải mình không ôm đóng BNB và "tình cờ" đánh rơi

Tại sao lại Smart Contract?

Việc đặt tên cho một đoạn code chạy trên ETH hay Binance đã là một thứ gì mà mình thấy rất hay ho rồi! Sao không đặt là Decentralize Logic, Distributed code,...
notion image
Theo định nghĩa, hợp đồng (contract) là một tờ thỏa thuận của 3 bên: Bên A, Bên B và một bên thứ 3 để đảm bảo công bằng giữa bên A và bên B. Thực tế tất cả hợp đồng mà các bác tương tác hàng ngày như hợp đồng lao động, hợp đồng mua bán nhà đất,...etc thì bên thứ 3 là nhà nước. Nếu không có nhà nước đứng ra bảo về cho hợp đồng đó thì bác lấy cọc tiền nhà xong té mẹ luôn rồi, bên kia đâu có làm gì được bác ngoài thuê giang hồ hoặc người phán xử để bổ bác ra 😆.
Smart contract thì bên thứ 3 để đảm bảo sự hợp tác của bên A và bên B chính là những dòng logic mà các bác code ra. Do đó, về những điều khoản, mô hình kinh tế trong Smart Contract phải hết sức cẩn thật và tính toán kĩ lưỡng. Nói như là bác đang code ra một trọng tài nghiêm mình trong một trận đấu bóng đá vậy.
 
Như các bạn có thấy, Morphling có bên A: Người nhận BNB để tham gia Launchpad, bên B: Người gửi BNB để có lợi nhuận từ việc tham gia Launchpad. Và bên thứ 3, là smart contract có nhiệm vụ đảm bảo Bên A không cheat bên B, Bên B không cheat bên A hoặc có cheat, thì tới cuối cũng thì người cheat cũng sẽ là người chấp nhận trả giá 😭
Pierluigi Collina
Pierluigi Collina
Do đó, việt thiết kế được bộ rules cho thằng Smart Contract này cần rất rất nhiều não 🧠 và nó là nền tảng cơ bản nhất trong thời đại Decentralized everything. Platform của bạn có developer không? Có user sử dụng không? Có người tham gia vào run node không? Có user deposit liquidity pool không?... Tất cả đều phải được xây dựng trên những bộ rule mà nó define.
Đây là một vấn đề rất khó và thú vị, có thể mình sẽ viết thêm về chủ để này, nhưng về cơ bản bộ Rules sẽ được build trên 2 nền tảng cơ bản:
  • Game theory
  • Nash equilibrium
notion image

Code đâu?

Mình đang beta test app này nên hiện tại sẽ không public code, nhưng sẽ sớm public thôi. Stay tuned!
 

Quá trình build

Mình đang nghĩ ra một cách thể hiện một số problems/tips trong quá trình build app kiểu như timeline chẳng hạn. Nhưng hiện giờ thì chưa build nên bỏ trống phần này nhé
 
 

Loading Comments...

Follow me @thanhledev

Xin lỗi các bạn vì thời gian qua mình không dành thời gian viết nhiều. Dạo này mình khá bận cho dự án https://getnimbus.io. Check it out 🥳