ZKBase হল ZK স্ট্যাক এবং মাল্টি-জিপিইউ প্রোভারের উপর ভিত্তি করে একটি উচ্চ-পারফরম্যান্স ZK-রোলআপ। এই সমাধানটি লেনদেন প্রক্রিয়াকরণ ক্ষমতা বাড়ায় এবং একটি সাশ্রয়ী নেটওয়ার্ক অভিজ্ঞতা প্রদান করে। এর মূল সুবিধা হল জিরো-নলেজ প্রুফ (ZKP) প্রযুক্তি গ্রহণের মধ্যে, যা লেনদেনের গোপনীয়তা এবং ডেটা অখণ্ডতা বজায় রেখে অফ-চেইন লেনদেনগুলিকে দ্রুত যাচাই ও নিশ্চিত করার অনুমতি দেয়। যেহেতু সমস্ত বৈধতার প্রমাণ Ethereum-এ যাচাই করা হয়েছে, ব্যবহারকারীরা L1-এর মতো একই নিরাপত্তা গ্যারান্টি উপভোগ করতে পারে। ZKBase Ethereum এর মতোই কাজ করে কিন্তু উচ্চ থ্রুপুট এবং কম ফি সহ। স্মার্ট কন্ট্রাক্ট সলিডিটি/ভাইপারে লেখা হয় এবং অন্যান্য EVM-সামঞ্জস্যপূর্ণ চেইনগুলির মতো একই ক্লায়েন্ট ব্যবহার করে আহ্বান করা যেতে পারে। এই নিবন্ধটি ZKBase-এর মূল প্রকৌশল এবং প্রযুক্তিগত বাস্তবায়নের পরিচয় দেবে।
ট্রি এবং ট্রিব্যাকআপ : এই উপাদানগুলি L2 স্টোরেজ গাছের স্থানীয় অনুলিপি বজায় রাখতে RocksDB ব্যবহার করে। ডাটাবেস সর্বশেষ স্টেট রুট হ্যাশের সাথে সিঙ্ক্রোনাইজ থাকে, ক্রমাগত বর্তমান সিস্টেমের অবস্থা প্রতিফলিত করে।
StateKeeper/VM : লেনদেন সম্পাদন করে এবং স্থানীয় RocksDB ডাটাবেসে আবদ্ধ ব্লকগুলিকে নিরাপদে সঞ্চয় করে, ডেটা অখণ্ডতা এবং ক্রমাগত রাষ্ট্রীয় আপডেট নিশ্চিত করে।
স্মার্ট চুক্তি : ইথেরিয়াম মেইননেটে স্থাপন করা, এই স্মার্ট চুক্তিগুলি অফ-চেইন থেকে জমা দেওয়া জিরো-নলেজ প্রুফ (ZKPs) যাচাই করে। সফল যাচাইয়ের পরে, এই চুক্তিগুলি Ethereum নেটওয়ার্কে অ্যাকাউন্টের অবস্থা আপডেট করে।
GPU প্রোভার : একটি ZK-রোলআপ প্রযুক্তি যা শূন্য-জ্ঞান প্রমাণের মাধ্যমে নিরাপদ এবং দক্ষ লেনদেন যাচাইকরণ নিশ্চিত করে। যখন ইথেরিয়াম মেইননেট থেকে লেনদেনের একটি ব্যাচ ঘটে, তখন ZK একত্রীকরণ সিস্টেম একাধিক লেনদেনকে প্রোভার দ্বারা গণনা করা একক "বৈধতা প্রমাণ"-এ সংকুচিত করে, ব্যাচের সঠিকতা প্রদর্শন করে। এই প্রমাণটি তারপরে Ethereum নেটওয়ার্কে জমা দেওয়া হয়, যা অফ-চেইন ঘটছে প্রচুর পরিমাণে লেনদেনের দ্রুত এবং নিরাপদ নিশ্চিতকরণ সক্ষম করে।
সেতু : ZKBase ZKBase এবং Ethereum মেইননেটের মধ্যে নিরাপদে সম্পদ স্থানান্তর করার জন্য একটি ব্রিজিং মেকানিজম প্রদান করে, যা দুটি প্ল্যাটফর্মের মধ্যে আন্তঃকার্যযোগ্যতা এবং সম্পদের তারল্য নিশ্চিত করে
ব্যবহারকারীরা একটি অ্যাপ্লিকেশন প্রোগ্রামিং ইন্টারফেসের (API) মাধ্যমে বা L1 এ স্থাপন করা চুক্তির মাধ্যমে L2 অনুরোধগুলি শুরু করতে পারে। একবার জমা দেওয়ার পরে, এই অনুরোধগুলি একটি মেমপুলে প্রবেশ করে, সম্পাদনের অপেক্ষায়। উল্লেখযোগ্যভাবে, L1 থেকে উদ্ভূত লেনদেনগুলি (যেমন আমানত) একটি ডেডিকেটেড L1 অগ্রাধিকার সারিতে সংরক্ষণ করা হয় যাতে সেগুলি দ্রুত প্রক্রিয়া করা হয়।
মেমপুল স্টোরেজ স্ট্রাকচার হল একটি btreeset (একটি সেট btree দ্বারা বাস্তবায়িত)। সূচক গঠন নিম্নরূপ:
এখানে, fee_data প্রকৃত স্কোর গণনার সাথে জড়িত নয় কিন্তু ফি প্রয়োজনীয়তা পূরণ করে না এমন লেনদেন ফিল্টার করতে সাহায্য করে। স্কোর টাইমস্ট্যাম্প দ্বারা বাছাই করা হয়, এবং যদি টাইমস্ট্যাম্প অভিন্ন হয়, তাহলে ঠিকানা দ্বারা।
মেমপুলের লেনদেনগুলি স্টেট কিপারের মধ্যে মেমপুল ফেচার উপাদান দ্বারা পরিচালিত হয়। মেয়াদোত্তীর্ণ লেনদেন ব্যতীত, স্ট্যান্ডার্ড লেনদেনগুলি মেমপুল থেকে বিট্রি ট্রাভার্সাল দ্বারা সংজ্ঞায়িত ক্রমে আনা হয় এবং ডেটাবেসে রেকর্ড করা হয়। সেগুলি স্টেট কিপার/ভিএম দ্বারা প্রসেস করা হয়, কার্যকর করা হয় এবং স্টেট ট্রি আপডেট করতে ব্যবহৃত হয়।
ব্লক লেআউট চিত্রটি একটি ব্লকের মধ্যে লেনদেনের সংগঠন এবং একটি L1 ব্যাচের মধ্যে L2 ব্লকের বিন্যাস দেখায়।
প্রতিটি L1 ব্যাচ শুরু করতে, অপারেটরকে মূল বিবরণ ইনপুট করতে হবে: ব্যাচের টাইমস্ট্যাম্প, ক্রমানুসারে এর অবস্থান এবং আগের ব্যাচের হ্যাশ মান।
মার্কেল ট্রি রুট হ্যাশ ব্যাচের বৈধতা এবং লেনদেনের সত্যতা নিশ্চিত করার জন্য এই প্রক্রিয়ায় ভিত্তিমূলক রুট হ্যাশ হিসাবে কাজ করে। একই সাথে, রাজ্য রক্ষক একটি নির্দিষ্ট L2 ব্লক বা L1 ব্যাচ কখন চূড়ান্ত করতে হবে তা সিদ্ধান্ত নেওয়ার ক্ষমতা রাখে, যার ফলে তার অবস্থা নির্ধারণ করা হয়। এই সিদ্ধান্ত শর্তাধীন_সিলার মডিউল দ্বারা পরিচালিত পূর্বনির্ধারিত মানদণ্ডের একটি সেট দ্বারা পরিচালিত হয়। এই মানদণ্ডগুলির মধ্যে লেনদেনের সংখ্যা, আকারের সীমা এবং গ্যাস ব্যবহারের থ্রেশহোল্ডের মতো পরামিতিগুলি অন্তর্ভুক্ত রয়েছে। একটি লেনদেন প্রক্রিয়া করার পরে, স্টেট কিপার চেক করে যে কোন সিল করার শর্ত পূরণ হয়েছে।
conditional_sealer একটি SealCriteria রেজিস্ট্রি বজায় রাখে যার মধ্যে রয়েছে:
লেনদেন গণনার সীমা,
L2 গ্যাসের সীমা,
অন্যান্য প্রবিধানগুলির মধ্যে প্রকাশিত ডেটার পরিমাণের উপর ঊর্ধ্ব সীমা।
চারটি সিদ্ধান্তের পরিস্থিতি রয়েছে: NoSeal, IncludeAndSeal, ExcludeAndSeal এবং Unexecutable. প্রথম দুটি ক্ষেত্রে, প্রক্রিয়াটি একই, মৃত্যু-পরবর্তী অবস্থা স্টেট কিপারে আপডেট করা হয়। ExcludeAndSeal লেনদেন পরিচালনা করে যা পূর্বনির্ধারিত ব্যাচের সীমা অতিক্রম করে লেনদেন সম্পাদনকে রোল ব্যাক করে এবং পরবর্তী L2 ব্লকে অন্তর্ভুক্ত করার জন্য সারিতে রেখে দেয়। যদি একটি অকার্যকর পরিস্থিতি ঘটে তবে লেনদেনটি কার্যকর করা যাবে না এবং প্রত্যাখ্যান করা হবে।
প্রতিটি ব্যাচের শেষে, বুটলোডার লেনদেন সম্পূর্ণ করতে এবং পরবর্তী চক্রের জন্য প্রস্তুত করার জন্য একটি স্থানধারক L2 ব্লক তৈরি করে। যদিও বেশিরভাগ খালি, এই ব্লকটি অভ্যন্তরীণ ক্রিয়াকলাপের জন্য গুরুত্বপূর্ণ এবং বুটলোডার এবং অপারেটরের মধ্যে ফি আন্দোলন রেকর্ড করার জন্য একটি স্থানান্তর ইভেন্ট লগ অন্তর্ভুক্ত করে। সময়ের নির্ভুলতা নিশ্চিত করার জন্য, ব্যাচের টাইমস্ট্যাম্প এবং শেষ সাব-ব্লকগুলি প্রত্যাশিত L1 টাইম ফ্রেমের সাথে ক্রস-চেক করা হয় যাতে সময়-সম্পর্কিত সমস্যাগুলির জন্য সিস্টেমের স্থিতিস্থাপকতা বাড়ানো যায়।
একবার একটি ব্যাচ চূড়ান্ত হয়ে গেলে, প্রোভার ব্লকের কার্য সম্পাদন যাচাই করার জন্য একটি ক্রিপ্টোগ্রাফিক প্রমাণ তৈরি করে। ZKBase-এ, প্রোভারের দায়িত্ব হল ZKBase Ethereum ভার্চুয়াল মেশিন (EVM) এর সঠিক সম্পাদন প্রমাণ করা। এই প্রমাণ তারপর Ethereum নেটওয়ার্কে একটি স্মার্ট চুক্তি দ্বারা যাচাই করা হয়. একবার প্রমাণ তৈরি হয়ে গেলে, প্রোভার এটিকে একটি L1 লেনদেনে প্যাকেজ করে এবং ETH_Sender-এর কাছে পাঠায়। ETH_প্রেরক আরও প্রক্রিয়াকরণের জন্য Ethereum মেইননেটে স্থাপন করা ZKBase চুক্তিতে লেনদেন ফরোয়ার্ড করে।
ইথেরিয়াম মেইননেট প্রমাণের সঠিকতা যাচাই করে এবং সফল যাচাইয়ের পরে, সেই অনুযায়ী রাষ্ট্র আপডেট করে।
পুরো প্রক্রিয়া জুড়ে, EthWatcher ক্রমাগত নির্দিষ্ট L1 ইভেন্টগুলি নিরীক্ষণ করে, যেমন ডিপোজিট এবং সিস্টেম আপগ্রেড, Ethereum মেইননেটের সাথে সিঙ্ক্রোনাইজেশন নিশ্চিত করতে।
আর্কিটেকচারটি ডেটা শেয়ার করার জন্য একটি পোস্টগ্রেস ডেটাবেস ব্যবহার করে, প্রমাণ তৈরির দক্ষতা বাড়াতে একাধিক GPU প্রোভার জুড়ে সমান্তরাল গণনা সক্ষম করে। মূল উপাদানগুলির মধ্যে রয়েছে:
অপারেটর : যে সার্ভার লেয়ার 2 পরিষেবা প্রদান করে।
প্রোভার গেটওয়ে : একটি যোগাযোগ মডিউল যা অপারেটরকে প্রমাণকারী সাবসিস্টেমের সাথে সংযুক্ত করে।
সাক্ষী জেনারেটর : প্রমাণ গণনার কাজ তৈরি করে এবং মধ্যবর্তী শিল্পকর্ম সংরক্ষণ করে।
ভেক্টর জেনারেটর : GPU গণনার জন্য উপযুক্ত একটি ভেক্টর বিন্যাসে সমস্ত গণনার কাজগুলিকে একত্রিত করে এবং সেগুলিকে প্রোভারগুলিতে পাঠায়।
Prover: প্রমাণের প্রকৃত গণনা এবং যাচাই করে।
কম্প্রেসার: চূড়ান্ত প্রমাণকে SNARK ফর্মে সংকুচিত করে।
ব্যাচ জেনারেশন : অপারেটর লেনদেন সংগ্রহ করে এবং একটি নতুন ব্যাচ তৈরি করে।
ব্যাচ রিসেপশন : প্রোভার গেটওয়ে অপারেটরের কাছ থেকে নতুন ব্যাচ পুনরুদ্ধার করে এবং শূন্য-জ্ঞান প্রমাণ তৈরি করার প্রস্তুতি শুরু করে।
ডাটাবেস সন্নিবেশ : প্রোভার গেটওয়ে পোস্টগ্রেস ডাটাবেসে ব্যাচের তথ্য সন্নিবেশ করায়। পরবর্তী ডেটা প্রসেসিং সরাসরি ডাটাবেসের সাথে ইন্টারঅ্যাক্ট করে, সংশ্লিষ্ট ইনপুট টেবিল থেকে ডেটা পুনরুদ্ধার করে এবং প্রাসঙ্গিক আউটপুট টেবিলে প্রক্রিয়াকৃত ডেটা স্থাপন করে।
সাক্ষী জেনারেশন : এই প্রাথমিক পর্যায়টি ঘটে যখন একজন ব্যবহারকারী একটি লেনদেন শুরু করে, একজন সাক্ষী তৈরি করে। সাক্ষী কোনো লেনদেনের বিশদ প্রকাশ না করেই নেটওয়ার্ক কনসেনসাস নিয়মের ভিত্তিতে লেনদেনের বৈধতা প্রমাণ করে। নতুন লেনদেনের সাক্ষী সংগ্রহ করা হয় এবং ব্যাচে প্রক্রিয়া করা হয়। প্রতিটি ব্যাচ নিম্নলিখিত প্রক্রিয়ার মধ্য দিয়ে যায়:
বেসিক সার্কিট উইটনেস জেনারেটর
লিফ অ্যাগ্রিগেশন উইটনেস জেনারেটর
নোড সমষ্টি
সময়সূচী
ভেক্টর জেনারেশন : ভেক্টর জেনারেটর GPU কম্পিউটেশনাল শক্তির ব্যবহারকে অনুকূল করে, সাক্ষী ভেক্টর তৈরি করতে সার্কিটগুলিকে একত্রিত করে।
প্রুফ কম্পিউটেশন : প্রোভাররা জিপিইউ ব্যবহার করে জিরো-নলেজ প্রমাণ গণনা করে, প্রমাণ গণনার সঠিকতা যাচাই করে।
কম্প্রেশন : কম্প্রেসার মডিউল তথ্যের আকার কমাতে প্রমাণকে সংকুচিত করে, এটিকে SNARK আকারে রূপান্তরিত করে।
ZKBase, ZK স্ট্যাক এবং মাল্টি-GPU প্রোভারে নির্মিত, উচ্চ-পারফরম্যান্স লেয়ার 2 স্কেলেবিলিটি অর্জন করে। যাইহোক, Ethereum স্কেলিং সমাধান ZK-Rolup এখনও অসংখ্য প্রযুক্তিগত চ্যালেঞ্জের সম্মুখীন। ভবিষ্যতে, ZKBase বিকেন্দ্রীভূত সিকোয়েন্সিং এবং একটি বিকেন্দ্রীকৃত ZK কম্পিউটেশনাল পাওয়ার নেটওয়ার্কের বাস্তবায়ন নিয়ে গবেষণা এবং অন্বেষণ চালিয়ে যাবে।