লেখক:
fillipponeমূল টপিক:
There are 2^256 private keys out there: how big is that number?
গতকালকে বিটকয়েন নিয়ে গভীরভাবে গবেষণা করার সময় একটা বিতর্কিত ওয়েবসাইট keys.lol দেখে আমি অবাক হয়ে গেছি।
https://keys.lol(সতর্ক: সময় খেকো!)
মূলত এটি একটি ওয়েবসাইট যেখানে র্যান্ডম ভাবে প্রতিটি পৃষ্ঠায় ১২৮ টি করে প্রাইভেট কি বা চাবি তৈরি করে। এরপরে বক্লচেইনের ফলাফলের ভিত্তিতে প্রাইভেট কি বা চাবিগুলোর সাথে সম্পর্কিত এড্রেসগুলোর (কমপ্রেসড এড্রেস এবং আনকমপ্রেসড এড্রেস দুটোই) বর্তমান ব্যালেন্স এবং অতীতের লেনদেনসমূহ পরীক্ষা করে।
চমৎকার!
আপনি যদি এই ওয়েবসাইটের তৈরিকৃত পৃষ্ঠা থেকে কোনো ব্যালেন্সযুক্ত প্রাইভেট কি বা চাবি খুঁজে পান, তাহলে আপনি সেই প্রাইভেট কি বা চাবিটির আসল মালিক। এখন আপনি ঐ ব্যালেন্সের বৈধ মালিক হওয়ায় আপনাকে আর কোনোকিছুই এই ব্যালেন্সটি আপনার নিজস্ব ওয়ালেটে ট্রান্সফার করতে বাধা দিতে পারবে না।
আমি সেই ওয়েবসাইটে কয়েক ঘন্টা ব্যয় করেছি। হাজার হাজার প্রাইভেট কি বা চাবি তৈরি করেছে কিন্তু কিছুই পাইনি এমন কি একটা ব্যবহৃত এড্রেসও না। আর ব্যালেন্সযুক্ত এড্রেস খুঁজে পাওয়ার তো প্রশ্নই আসে না।
তারপর, আমি মনে করলাম যে আমি এই প্রক্রিয়াটিকে একটু পরিবর্তন করে আরও উন্নত করতে পারব। আমি ভাবলাম ফোরামের কিছু সদস্যদের সাথে কথা বলে, আমরা এমন একটি স্ক্রিপ্ট করবো যেটা র্যান্ডম ভাবে প্রাইভেট কি বা চাবি তৈরি করবে। তারপর, আমি আমার নিজস্ব বিটকয়েন নোডকে ব্যবহার করে সেই এড্রেসের ব্যালান্স পরীক্ষা করব আর যদি কোনো এড্রেসে ব্যালান্স পাওয়া যায়, তাহলে সেটি আমার নিজস্ব ওয়ালেটে ট্রান্সফার করব। আমি ভেবেছিলাম স্থানীয়ভাবে কাজটি করলে প্রক্রিয়াটি কিছুটা দ্রুত সম্পন্ন হতে পারে।
আমি আগে থেকেই জানতাম, এখান থেকে কিছু পাওয়ার সম্ভাবনা খুবই কম কিন্তু তবুও আমি চেষ্টা করতে চেয়েছিলাম কারণ কোনো ব্যালেন্স না পেলে আমি একটু শ্বস্তি বোধ করবো কেননা তখন অন্য কেউ আমার নিজস্ব বিটকয়েন হাতিয়ে নিতে পারবে না। এবং আমার কোল্ড ওয়ালেটে থাকা বিটকয়েন নিরাপদে থাকবে।
@babo এর স্ক্রিপ্ট প্রকাশ করার সময়ের জন্য আমি অপেক্ষা করছিলাম আর মনে মনে ভাবছিলাম, “Fillippone শুধুমাত্র জীবনযুদ্ধের একটা গুটি”... কীভাবে অন্য কেউ এ বিষয়ে কখনও চিন্তা করেনি?
আমি আবার বিটকয়েন নিয়ে গভীরভাবে গবেষণা করছিলাম এবং খুব শ্রীঘই আমি লার্জ বিটকয়েন কলিডার সম্পর্কে জানতে পারলাম।
https://lbc.cryptoguru.org/aboutচমৎকার! এটি একটা গুরুত্বপূর্ণ প্রকল্প। মূলত এখানে হাজার হাজার সার্ভার বিতরণ করা হয়েছে, যেগুলো প্রতিদিন ২৬ ট্রিলিয়ন (!!!) প্রাইভেট কি বা চাবি তৈরি করে এবং পরীক্ষা করে।
প্রথম তিন বছরে, তারা ৭ টি প্রাইভেট কি বা চাবি খুঁজতে সক্ষম হয়েছিল। এটা অনেক কিছু! আমি ভেবেছিলাম সম্ভাবনাটা আরও কম হবে। তবে কিছু ওয়ালেটে সম্ভবত কিছু ত্রুটি থাকতে পারে যেখানে সাবঅপ্টিমেন্টাল র্যান্ডম নাম্বার জেনারেটর ব্যবহার না করার কারণে দুর্বল প্রাইভেট কি বা চাবি তৈরি হয়েছে। (এখানে আরও গবেষণার প্রয়োজন!)
চলুন দ্রুত কিছু সংখ্যা পর্যালোচনা করা যাক:
সম্ভাব্য প্রাইভেট কি বা চাবির সংখ্যা: ২^২৫৬ বা আনুমানিক ১০^৭৭
বিটকয়েন এড্রেসের সংখ্যা: ২^১৬০
বিটকয়েন কলিডারদের দ্বারা পরীক্ষিত প্রাইভেট কি বা চাবির সংখ্যা: ২^১৬০
মহাবিশ্বে পরমাণুর সংখ্যা: ১০^৭৮ থেকে ১০^৮২
ব্যবহৃত বিটকয়েন এড্রেসের সংখ্যা: ১৮,০০০,০০০
আসলে প্রাইভেট কি বা চাবির সম্ভাব্য সংখ্যা ২^২৫৬ এর থেকে কিছুটা কম। যেটা
এখানে উল্লেখিত আছে।
চলুন, আমরা কিছু উদাহরণের মাধ্যমে কাজ করি।
◑ ধরুন আমাদের কাছে এক বিলিয়ন এক্টিভ এড্রেস আছে এবং প্রতিটিতে কিছু ব্যালেন্স আছে। আমরা জানি এটি প্রকৃত এক্টিভ এড্রেস এর সংখ্যার চেয়ে প্রায় ১০^৩ গুণ বড়।
আবার, মহাবিশ্বের পরমাণুর সংখ্যা এক্টিভ এড্রেসের সংখ্যার চেয়ে প্রায় ১০^৩ গুণ বড়।
তাই এটা বলা চলে যে একটা ব্যালেন্সযুক্ত প্রাইভেট কি বা চাবি খোঁজা আর দৃশ্যমান মহাবিশ্বে ছড়িয়ে থাকা পরমাণুগুলোর মধ্যে একটা খোঁজা একই।
এক বিলিয়ন পরমাণু আকারে কত বড়?
ক্বোরার উত্তরের মতে, এটি একটি ই-কোলি ব্যাকটেরিয়ার চেয়েও ছোট। এখন আপনি ভাবুন, যদি আপনি এই ব্যাকটেরিয়াটিকে পরমাণু স্তরে ভেঙে ফেলেন এবং তা পুরো মহাবিশ্বে ছড়িয়ে দেন তাহলে ঐ নির্দিষ্ট একটি পরমাণু খুঁজে পাওয়া বেশ কঠিন, তাই না?
◑
দ্বিতীয় উদাহরণটি এই আর্টিকেল এখান থেকে নেওয়া। ধরুন, আমরা ব্যালেন্সযুক্ত সকল প্রাইভেট কি বা চাবি স্কেন করতে চাই এবং ধরুন পৃথিবীর সব মানুষের কাছে বর্তমান বিটকয়েন নেটওয়ার্কের গাণিতিক ক্ষমতার দ্বিগুণের চেয়ে এক বিলিয়ন গুণ দ্রুত স্ক্যান করার ক্ষমতা আছে। এখন:
* ১০ বিলিয়ন মানুষ;
* ১ বিলিয়ন দ্বারা গুণ করতে হবে;
* বিটকয়েনের কম্পিউটিং পাওয়ারের দ্বিগুণের দ্বারা গুণ করতে হবে, প্রায় প্রতি সেকেন্ডে ১০০ হাজার টেরাহাশ।
আমরা পেয়েছি: ১,০০০,০০০,০০০,০০০*১,০০০,০০০,০০০*১০০,০০০*১০০,০০০০,০০০,০০০ = ১০^১০*১০^৯*১০^৫*১০^১২ = ১০^৩৬
সহজে বোঝার জন্য, ‘১১৫,৭৯২,০৮৯,২৩৭,৩১৬,১৯৫,৪২৩,৫৭০,৯৮৫,০০৮,৬৮৭,৯০৭,৮৫২,৯৩৭,৫৬৪,২৭৯,০৭৪,৯০৪,৩৮২,৬০৫,১৬৩,১৪১,৫১৮,১৬১,৪৯৪,৩৩৬’ এর ১০^৭৭
যদি আমরা ব্যালেন্সযুক্ত প্রতিটি প্রাইভেট কি বা চাবি পরীক্ষা করি তাহলে আমাদের ১০^৭৭/১০^৩৬ = ১০^৪১ সেকেন্ড সময় লাগবে, এটা কত বছর হবে?
যেহেতু এক বছরে প্রায় ৩১৫৫৭৬০০ সেকেন্ড, সেজন্য এই পরীক্ষা করতে আমাদের লাগবে ১০^৪১/৩১৫৫৭৬০০ = ৩১^৩৩ বছর, যেটা বর্তমান মহাবিশ্বের বয়সের চেয়ে ১০^২৩ গুণ বেশি (মহাবিশ্বের বয়সের প্রায় ১৩.৮২ বিলিয়ন বছর), সংক্ষেপে হবে ১০০,০০০,০০০,০০০,০০০,০০০,০০০,০০০ বছর যা মহাবিশ্বের বয়সের প্রায় ১০০ বিলিয়ন গুণ।
◑ এই ভিডিওটার মাধ্যমে বোঝা যায় SHA 256 অ্যালগরিদমটি কতটা সুরক্ষিত।
https://youtu.be/S9JGmA5_unY◑ আগের উদাহরণগুলোতে যেসব গণনা করা হয়েছিল, সেগুলোতে ব্যবহৃত শক্তির পরিমাণ বিবেচনা করা হয়নি। এসব শক্তিশালী যন্ত্রগুলোকে পরিচালনা করার জন্য অবশ্যই শক্তি সরবরাহ করতে হবে। তবে কত পরিমাণ শক্তি প্রয়োজন? এই ইনফোগ্রাফিক অনুযায়ী, এই ধরনের কাজের জন্য প্রয়োজনীয় শক্তির পরিমাণ অত্যন্ত বেশি।
Redditএকটা র্যান্ডম প্রাইভেট কি বা চাবি অনুমান করতে হলে কত সময় লাগবে সে বিষয়ে অন্যান্য উদাহরণ:
◑
Reddit: AES-256 এনক্রিপশন ব্রুট-ফোর্স করার জন্য সময় এবং শক্তি প্রয়োজনীয়তা।আরো রেফারেন্স:
◑
এই বিটকয়েনটক থ্রেডে বিটকয়েন এড্রেসের সম্ভব্য সংখ্যা◑
মাস্টারিং বিটকয়েন: কি বা চাবি, এড্রেসঅন্যান্য বড় সংখ্যা:
◑
৫২!: কার্ড খেলার একটা সাধারণ ডেক দিয়ে এটা শুরু হয়।এখানে কেবলমাত্র কিছু উদাহরণ আছে, আপনার কাছে যদি অতিরিক্ত রিসোর্স বা মন্তব্য থাকে তাহলে নিচে পোস্ট করার জন্য দ্বিধা বোধ করবেন না এবং আমি সেটা তালিকায় যুক্ত করব।