লেখক | আশার (@Asher_ 0210)

গতকাল রাতে, পলিমার্কেট মেইনটেনেন্স উইন্ডোতে প্রবেশ করে ট্রেডিং বন্ধ করে দেয় এবং অর্ডার বুক খালি করে, তারপর আনুষ্ঠানিকভাবে CLOB V2 চালু করে।
পূর্বে অফিসিয়ালি প্রকাশিত অনুযায়ী, এই আপগ্রেডে নতুন কন্ট্রাক্ট, নতুন অর্ডার বুক, নতুন মার্জিন টোকেন Polymarket USD এবং নতুন সংস্করণের CLOB-Client SDK অন্তর্ভুক্ত রয়েছে। ব্যবহারকারীদের জন্য, PUSD, SDK, অর্ডার স্ট্রাকচার এই পরিবর্তনগুলি অবিলম্বে স্পষ্টভাবে অনুভূত হতে পারে না। প্রথম সময়ে যা মনোযোগ দেওয়ার মতো, তা হলো Polymarket-এর দীর্ঘদিনের সমস্যা, Ghost Fills, যা সম্প্রদায়ের মধ্যে “গস্ট অর্ডার” নামে পরিচিত।
V2 এই সমস্যার সমাধান করেছে। আগের সবচেয়ে সহজে দুর্বলতা প্রয়োগ করা যায় এমন nonce মেকানিজম সরিয়ে ফেলা হয়েছে, এবং অর্ডার স্ট্রাকচার এবং অর্ডার বাতিলের পদ্ধতি পরিবর্তন করা হয়েছে। কিন্তু এর মানে এই নয় যে স্পাই অর্ডার সম্পূর্ণরূপে অদৃশ্য হয়ে গেছে, কারণ Polymarket-এর মূল ট্রেডিং মডেল এখনও অফ-চেইন ম্যাচিং এবং অন-চেইন সেটেলমেন্ট, এবং যতক্ষণ না এই দুটি ধাপের মধ্যে সময়ের ব্যবধান থাকবে, এই ধরনের সমস্যা সম্পূর্ণভাবে দূর করা কঠিন।
অর্ডার সফলভাবে সম্পন্ন হয়েছে দেখাচ্ছে, কিন্তু শেষ পর্যন্ত ব্যর্থ হলো কেন?
গোপন অর্ডার বলতে সহজ কথায় বোঝায় যে, একটি অর্ডার অফ-চেইনে সফলভাবে মেলানো হয়েছে বলে মনে হয়, কিন্তু চূড়ান্তভাবে চেইনে সেটেলমেন্ট হয়নি।
Polymarket চেইন-অফ অর্ডার বুক ম্যাচিং এবং চেইন-অনে সেটেলমেন্টের মডেল ব্যবহার করে। এই ডিজাইনের সুবিধা পরিষ্কার: ট্রেডিং গতি দ্রুততর, খরচ কম, এবং 5 মিনিটের মার্কেটের মতো সংক্ষিপ্ত-সময়কালীন, উচ্চ-ফ্রিকোয়েন্সি প্রেডিকশন মার্কেটের জন্য অধিক উপযুক্ত।
সমস্যাটি ঠিক এই সময় পার্থক্যের মধ্যেই রয়েছে। অফ-চেইন অর্ডার বুকে লেনদেন সফলভাবে দেখানো হয়েছে বলে মানে এটি চেইনের উপর সফলভাবে সেটেল হয়েছে এমন নয়। কিছু শর্ট-টার্ম মার্কেটে, ব্যবহারকারীরা দেখতে পান যে অর্ডারটি সফলভাবে ক্রয় করা হয়েছে, এবং তারা মনে করেন যে তারা সঠিক দিকের জন্য কিনে ফেলেছে; কিন্তু যখন লেনদেনটি প্রকৃতপক্ষে চেইনের উপর জমা দেওয়া হয়, তখন সেটেলমেন্ট ব্যর্থ হয়। এক সেকেন্ড আগে যা সম্পন্ন হয়েছিল তা পরবর্তী সেকেন্ডেই সিস্টেম দ্বারা রদ করা হয়।
ব্যবহারকারীদের জন্য এই অভিজ্ঞতার সবচেয়ে কষ্টদায়ক দিক হল শুধু ব্যর্থতা নয়, অনিশ্চয়তা। মনে হচ্ছে কিনা বা বিক্রি শেষ হয়ে গেছে, কিন্তু শেষ পর্যন্ত ট্রেডটি সম্পন্ন হয়নি; আবার অর্ডার দিতে গেলে, দাম পরিবর্তিত হয়ে গেছে এবং ট্রেডিং সুযোগটি হারিয়ে ফেলা যায়।
পুরানো সংস্করণের সমস্যা ছিল অর্ডার বাতিলের খরচ খুব কম
V1-এ, incrementNonce থেকে সবচেয়ে সহজে দুর্বলতা ব্যবহার করা যেত। nonce-কে অর্ডারের স্টেট আইডেন্টিফায়ার হিসাবে বুঝা যায়। এটি মূলত সিস্টেমকে অর্ডার ম্যানেজ করতে সাহায্য করার জন্য ছিল, কিন্তু পুরনো ভার্সনে, হামলাকারীরা incrementNonce কল করে একটি পুরনো nonce-যুক্ত অর্ডারকে চেইনে সেটেলমেন্টের জন্য অকার্যকর করতে পারত।
এটি আক্রমণকারীদের জন্য একটি সময় ব্যবধান তৈরি করে। আক্রমণকারীরা প্রথমে অর্ডারটি অফ-চেইনে মেলানোর ব্যবস্থা করতে পারেন, যাতে সিস্টেম “ট্রেড সম্পন্ন হয়েছে” দেখায়; তারপর বিলিংয়ের আসল চেইনে আপডেট হওয়ার আগে nonce আপডেট করে, যাতে এই অর্ডারগুলি চূড়ান্তভাবে ব্যর্থ হয়। ফলাফল হল, একটি ট্রেড যা মনে হচ্ছে সম্পন্ন হয়েছে, চূড়ান্তভাবে চেইনে রেজিস্টার হয়নি।
সমস্যার মূল বিষয় হল যে, এই অপারেশনের খরচ অত্যন্ত কম, তবুও এটি অনেকগুলি অর্ডারকে প্রভাবিত করতে পারে। আক্রমণকারীদের কেবলমাত্র খুব কম gas খরচ করেই সেটিও সফলভাবে সম্পন্ন হওয়ার কথা ছিল এমন অর্ডারগুলিকে সেটেলমেন্ট পর্যায়ে ব্যর্থ করে দিতে পারে। ফ্রন্টএন্ডে ব্যবহারকারীরা দেখতে পান যে অর্ডারটি প্রথমে সফলভাবে ট্রেড হয়েছিল, তারপরেই ব্যর্থ হয়েছিল, যা প্রকৃতপক্ষে ট্রেডের ফলাফলকে অস্থির করে দেয়, এবং ব্যবহারকারীদের মূলতঃ পাওয়ার কথা ছিল এমন ট্রেডিং মূল্য এবং সুযোগগুলি হারিয়ে ফেলতে বাধ্য করে।
গোপন অর্ডারের সমস্যাটি শুধুমাত্র ফ্রন্টএন্ড প্রদর্শনের ত্রুটি নয়, এবং এটি কখনও কখনও ঘটা চেইনের ব্যর্থতাও নয়, বরং এটি ব্যবহারকারীদের ট্রেডিং ফলাফলের প্রতি বিশ্বাসকে সরাসরি প্রভাবিত করে।
V2 এর জন্য মেরামত করা হয়েছে, কিন্তু সম্পূর্ণরূপে দূর করা হয়নি
এই V2-এর সবচেয়ে গুরুত্বপূর্ণ পরিবর্তন হল মূল গ্লোবাল nonce ডিজাইন সরিয়ে ফেলা। অর্থাৎ, অতীতে incrementNonce এর মাধ্যমে একসাথে অনেক পুরানো অর্ডারকে প্রভাবিত করার পদ্ধতি এখন বন্ধ করে দেওয়া হয়েছে। এছাড়াও, V2-এ অর্ডার স্ট্রাকচার সরলীকৃত করা হয়েছে এবং অর্ডার বাতিলের জন্য এখন আরও সূক্ষ্ম একক order hash-এর দিকে যাওয়া হয়েছে। পুরনো ভার্সনের তুলনায়, অর্ডার বাতিলের প্রভাবের পরিসর উল্লেখযোগ্যভাবে কমিয়ে দেওয়া হয়েছে, যার ফলে আক্রমণকারীদের একবারে কম খরচে অনেকগুলি অর্ডার ধ্বংস করা কঠিন হয়ে পড়েছে।
এটি স্প্রিট অর্ডার সমস্যার জন্য একটি প্রায় সম্পূর্ণ প্যাচ। অতীতে, আক্রমণের খরচ কম, প্রভাবের পরিসর বড়, এবং পুনরায় উৎপাদনের বাধা কম ছিল। V2-এর পরে, সবচেয়ে সহজে দুর্বলতা ব্যবহার করার পথটি সরিয়ে ফেলা হয়েছে। আক্রমণকারীদের যদি এই ধরনের সমস্যা তৈরি করতে হয়, তবে তাদের বেশি খরচ করতে হবে এবং তাদের সিস্টেমের প্রতিক্রিয়ার উপর বেশি নির্ভরশীল হতে হবে। অতিরিক্তভাবে, pauseUser-এর মতো মেকানিজমগুলির দেরি যোগ করা হয়েছে, যা কিছু স্টেট পরিবর্তনকে ম্যাচিং এবং সেটেলমেন্ট উইন্ডোতে তাৎক্ষণিকভাবে দুর্বলতা হিসাবে ব্যবহারের সম্ভাবনা কমিয়েছে।
সামগ্রিকভাবে, V2-এর দিকনির্দেশটি পরিষ্কার: প্রথমে হ্যাকারদের দ্বারা সবচেয়ে বেশি ব্যবহৃত অংশগুলি সমাধান করুন, তারপর এই ধরনের আক্রমণের লাভের সম্ভাবনা কমিয়ে দিন।
কিন্তু এটি এখনও গস্ট অর্ডারের সম্পূর্ণ সমাধান হিসাবে বিবেচনা করা যায় না। কারণ, পলিমার্কেট এখনও অফ-চেইন ম্যাচিং এবং অন-চেইন সেটেলমেন্টের মৌলিক মডেল পরিবর্তন করেনি। যতক্ষণ অর্ডারগুলি একই পরিবেশে ম্যাচ এবং সেটেল হয় না, ততক্ষণ অফ-চেইন এবং অন-চেইনের মধ্যে অবশ্যই স্টেট ডিসক্রিপ্যানসি থাকবে। ব্যালেন্স পরিবর্তন, অথোরাইজেশন সমস্যা, অর্ডার স্ট্যাটাস পরিবর্তন, অর্ডার ক্যানসেলেশন বা কনট্রাক্ট একিউটিংয়ের ব্যর্থতা—এগুলির কোনোটিই একটি অফ-চেইন ম্যাচড অর্ডারকে অন-চেইনে চূড়ান্তভাবে রূপান্তরিত হতে বাধা দিতে পারে।
অর্থাৎ, V2 পুরানো সংস্করণের সবচেয়ে স্পষ্ট এবং সহজেই দুর্বলতা প্রয়োগ করা যায় এমন আক্রমণের পথগুলিকে সমাধান করে, যেমন স্পাই অর্ডারগুলির মূল শর্তগুলি নয়।
অন্যান্য আপডেট, বেশিরভাগই ট্রেডিং সিস্টেমের ভিত্তি শক্তিশালী করার জন্য
গোপন অর্ডারের পাশাপাশি, V2 এ PUSD, SDK এবং 1271 স্বাক্ষর সহ আপডেট আনে:
- PUSD হল একটি নতুন প্রতিজমা স্থিতিশীল মুদ্রা, Polymarket USDC.e থেকে USDC দ্বারা 1:1 সমর্থিত Polymarket USD-এ স্থানান্তরিত হচ্ছে, সাধারণ ব্যবহারকারীদের জন্য প্রায় কোনো পরিবর্তন অনুভূত হবে না, কিন্তু ভিত্তির সম্পদ পরিচালনা আরও এককীকৃত হবে;
- নতুন সংস্করণের CLOB-Client SDK মূলত মার্কেট মেকার, রোবট এবং সিস্টেম ইন্টিগ্রেটরদের জন্য। V2-এর পর, সংশ্লিষ্ট ব্যবহারকারীদের ক্লায়েন্ট আপগ্রেড করতে হবে এবং নতুন অর্ডার স্ট্রাকচার ব্যবহার করে অর্ডারগুলি পুনরায় স্বাক্ষর করতে হবে;
- 1271 স্বাক্ষর সমর্থন করলে, স্মার্ট চুক্তি ওয়ালেট, মাল্টি-সিগ অ্যাকাউন্ট, প্রতিষ্ঠানগত অ্যাকাউন্ট এবং আরও জটিল বট ওয়ালেটগুলি Polymarket-এর সাথে আরও সহজে সংযুক্ত হতে পারবে।
সামগ্রিকভাবে, Polymarket শুধু একটি গুরুতর দুর্বলতা ঠিক করছে না, বরং এটি নিজেকে একটি পূর্বানুমান বাজার অ্যাপ্লিকেশন থেকে একটি বেশি এক্সচেঞ্জ-সদৃশ লেয়ার সিস্টেমে রূপান্তরিত করছে। মার্কেট মেকার, API ব্যবহারকারী এবং অটোমেশন ট্রেডারদের সংখ্যা বাড়তে থাকলে, অর্ডারগুলির স্থিতিশীলভাবে কার্যকর হওয়া, সেটেলমেন্ট এবং প্রতিফলনই “বাজারটি যথেষ্ট মজাদার কি না”-এর চেয়ে গুরুত্বপূর্ণ হয়ে উঠবে।
V2 শেষ নয়, বরং ধারাবাহিক ঠিক করার শুরু
V2 চালুর পর, Polymarket কমপক্ষে স্প্যারো অর্ডারের মধ্যে সবচেয়ে স্পষ্ট আক্রমণের একটি পথ বন্ধ করে দিয়েছে। অতীতের এই নিম্ন খরচে অর্ডার বাতিল এবং ব্যাচ অর্ডারকে প্রভাবিত করার পদ্ধতি এখন আর পুরনোভাবে পুনরায় প্রয়োগ করা কঠিন। একটি দ্রুত বৃদ্ধি পাচ্ছে এমন ট্রেডিং প্ল্যাটফর্মের জন্য, এটি অবশ্যই সম্পন্ন করা প্রয়োজন।
কিন্তু গোপন অর্ডারের মূল কারণ শুধু একটি ভার্সন আপগ্রেডের মাধ্যমে সম্পূর্ণরূপে অদৃশ্য হয়ে যায় না। যতদিন Polymarket অফ-চেইন ম্যাচিং এবং অন-চেইন সেটেলমেন্টের মডেল ব্যবহার করতে থাকবে, সিস্টেমকে অফ-চেইন স্টেট এবং অন-চেইন ফলাফলের মধ্যে পার্থক্য নিয়মিতভাবে প্রক্রিয়াকরণ করতে হবে। V2 বরং প্রথম পদক্ষেপ—প্রথমে সবচেয়ে স্পষ্ট এবং সহজেই দুর্বলতা সম্পন্ন সমস্যাগুলির সমাধান করা, এবং পরবর্তী আপডেটগুলির মাধ্যমে ম্যাচিং, সেটেলমেন্ট, মনিটরিং এবং রিস্ক কন্ট্রোল ক্ষমতা পূরণ করা।
প্রেডিকশন মার্কেটে অনিশ্চয়তার সাথেই ট্রেডিং হয়, যদি অর্ডারটিও অনিশ্চিত হয়ে পড়ে, তাহলে ব্যবহারকারীদের সামনে শুধু মার্কেট ঝুঁকি নয়, সিস্টেম ঝুঁকি দাঁড়ায়।
সংশ্লিষ্ট বিষয
আটকে যাওয়া Polymarket: ট্রাফিক রিয়াল টেস্টের সময় এসে গেছে
