Randstorm / BitcoinJS
র্যান্ডস্টর্ম: পুরনো বিটকয়েন ওয়ালেটের পেছনের ব্রাউজার ত্রুটি
কোন সফটওয়্যারটি নথিভুক্ত, কোন সংস্করণগুলি গুরুত্বপূর্ণ, এবং কীভাবে একটি পুরনো ওয়ালেটকে তার দুর্বল চাবিগুলো বহন না করে ছেড়ে দেওয়া যায়।
বিষয়বস্তু সূচি
আসলে কী ভুল হয়েছে
র্যান্ডস্টর্ম পুরনো ব্রাউজার সফটওয়্যারে কী জেনারেশনের সমস্যা নিয়ে। JSBN-এর SecureRandom() একটি অপর্যাপ্ত এন্ট্রপি উৎসকে পূর্বানুমেয় ব্রাউজার Math.random() এর সাথে মিলিয়ে দিতে পারে। Unciphered ১৪ নভেম্বর ২০২৩-এ এই সমস্যা প্রকাশ করে এবং ২০১১–২০১৫ সালে তৈরি দুর্বল ওয়ালেটগুলি রিপোর্ট করে। এটি একটি পর্যবেক্ষিত সময়কাল, সেই বছরগুলোর প্রতিটি ওয়ালেটের জন্য সিদ্ধান্ত নয়।
SecureRandom নামটি নিরাপত্তার গ্যারান্টি নয়। Coinpunk-এর পরিদর্শিত সোর্সে, ব্যাকআপ হিসেবে Math.random() ব্যবহার করে ২৫৬-বাইটের পুল পূরণ করা হয়, ঘড়ির সময় মেশানো হয় এবং একটি Arcfour জেনারেটরকে খাওয়ানো হয়। একটি বড় পুল তার ইনপুটের অনির্দেশ্যতা ছাড়াই অনির্দেশ্যতা দিতে পারে না। একই সোর্সে আরও শক্তিশালী Web Crypto এবং Node.js পথও রয়েছে: ব্যাকআপে পৌঁছানোই গুরুত্বপূর্ণ পার্থক্য।
এটি একটি ব্যক্তিগত কী নির্বাচনের ত্রুটি। এটি বিটকয়েনের স্বাক্ষর যাচাই ভঙ্গ নয়। একটি পুরনো ব্যাকআপ নতুন অ্যাপে খুললে সেই চাবিগুলো সংরক্ষিত থাকে; স্বাধীনভাবে তৈরি চাবিতে তহবিল স্থানান্তর করলে খরচের অনুমোদন পরিবর্তিত হয়।
ওয়ালেট, সংস্করণ এবং প্রমাণের সীমাবদ্ধতা
ওয়ালেট সংস্করণ থেকে আলাদা করে একটি লাইব্রেরি সংস্করণ পড়ুন। একটি হোস্টেড ওয়েবসাইটের জন্য, কী তৈরির দিনে পরিবেশিত কোড আজকের অ্যাপ সংস্করণের চেয়ে বেশি গুরুত্বপূর্ণ। টেবিলটি নথিভুক্ত ঘটনার এবং সোর্স-কোড অনুসন্ধানের পার্থক্য দেখায়।
| প্রকল্প | সংস্করণ বা সময়কাল | এটি যা প্রতিষ্ঠা করে |
|---|---|---|
| BitcoinJS / bitcoinjs-lib | 0.1.3 | প্রকাশনায় উদাহরণ হিসেবে নামকরণ। JSBN মার্চ ২০১৪ পর্যন্ত ব্যবহৃত হয়েছিল; এটি প্রতিটি ডেরিভেটিভের জন্য সম্পূর্ণ প্রভাবিত সংস্করণ সীমা প্রতিষ্ঠা করে না। |
| Blockchain.info Blockchain.com | ঐতিহাসিক ওয়েব ওয়ালেট; কোনো নির্দিষ্ট প্রভাবিত সীমা যাচাই করা হয়নি | Unciphered-এর তদন্তের শুরু ছিল একটি গ্রাহক ওয়ালেট থেকে। এটি প্রতিটি Blockchain.com ওয়ালেট বা বর্তমান অ্যাপকে অভিযুক্ত করে না। |
| bitaddress.org | 2.6.5 · 2.8.0 2013-12-01 · 2014-01-18 | 2.6.5-এ JSBN আপডেট করে 1.4-এ। 2.8.0-এ পুরো পুল Web Crypto ইনিশিয়ালাইজেশন এবং বাধ্যতামূলক মাউস/কীবোর্ড এন্ট্রপি যোগ করা হয়। এগুলো নথিভুক্ত পরিবর্তন, প্রমাণিত “সব পুরনো সংস্করণ দুর্বল / সব নতুন সংস্করণ নিরাপদ” সীমানা নয়। |
| Coinpunk | 0.2.1 63ca325be538 | পরিদর্শিত রিপোজিটরি স্ন্যাপশট নিজেকে 0.2.1 বলে এবং Math.random()/Arcfour ব্যাকআপের পাশাপাশি শক্তিশালী পথ ধারণ করে। এটি কোড অনুসন্ধান, প্রমাণ নয় যে প্রতিটি ডিপ্লয়মেন্ট ব্যাকআপ ব্যবহার করেছে। উন্নয়ন বন্ধ। |
এই ওভারভিউ এখানে যাচাই করা বাস্তবায়নগুলি কভার করে; এটি একটি সম্পূর্ণ প্রভাবিত ওয়ালেট তালিকা নয়। একটি তালিকাভুক্ত নয় এমন পণ্য স্বয়ংক্রিয়ভাবে অপ্রভাবিত নয়। একটি পুরনো তৈরি তারিখ বা ১ দিয়ে শুরু হওয়া ঠিকানা জেনারেটর শনাক্ত করার জন্য যথেষ্ট নয়।
গন্তব্য একবার প্রস্তুত করুন
নিচের তিনটি পথ নতুন Electrum Desktop ওয়ালেটকে গন্তব্য হিসেবে ব্যবহার করে। মেনু নামগুলি ইংরেজি 4.8.2 ডেস্কটপ ইন্টারফেসের জন্য, যা এই নিবন্ধের জন্য পরীক্ষা করা হয়েছে। অফিসিয়াল সাইট থেকে বর্তমান রিলিজ ডাউনলোড করুন; 4.8.2 নির্দেশনার জন্য রেফারেন্স, স্থায়ী ন্যূনতম সংস্করণ নয়।
নতুন গন্তব্য হিসেবে আমরা যে হার্ডওয়্যার ওয়ালেট সুপারিশ করি →
Electrum — অফিসিয়াল ডাউনলোড এবং স্বাক্ষর যাচাই ↗
- একটি বিশ্বাসযোগ্য, আপডেটেড কম্পিউটারে আপনার অপারেটিং সিস্টেমের জন্য Electrum ডাউনলোড করুন। অফিসিয়াল স্বাক্ষর নির্দেশ অনুসরণ করুন এবং ইনস্টলেশনের আগে স্বাক্ষরকারী ফিঙ্গারপ্রিন্ট স্বাধীনভাবে যাচাই করুন।
- File → New/Restore নির্বাচন করুন, ওয়ালেটের নাম দিন randstorm-new, তারপর Standard wallet → Create a new seed নির্বাচন করুন। নতুন শব্দগুলো কাগজে লিখে নিশ্চিত করুন এবং ওয়ালেট-ফাইল পাসওয়ার্ড সেট করুন। পুরনো সিক্রেট ইম্পোর্ট করবেন না।
- জমা দেওয়ার আগে, File → New/Restore → Standard wallet → I already have a seed ব্যবহার করে recovery-check তৈরি করুন, শুধুমাত্র NEW কাগজের ব্যাকআপ ব্যবহার করে। View → Addresses এবং Addresses ট্যাবের মাধ্যমে উভয় ওয়ালেটের প্রথম গ্রহণ ঠিকানা তুলনা করুন। এই চেক চলাকালীন উভয় ওয়ালেট রাখুন।
- randstorm-new-এ Receive → Request (যদি Lightning সক্রিয় থাকে তবে Onchain) ব্যবহার করুন। বিটকয়েন ঠিকানা কপি করুন। নিচের ওয়ালেট-নির্দিষ্ট পথটি এই ঠিকানায় পাঠাতে হবে, ফি এবং সম্পূর্ণ গন্তব্য অনুমোদনের আগে যাচাই করুন।
Blockchain.info: পুরনো ঠিকানা ধারণকারী ওয়ালেট ব্যবহার করুন
এই পথটি ঐতিহাসিক Blockchain.info ওয়ালেটের জন্য, যা আপনি এখনও Blockchain.com এর মাধ্যমে অ্যাক্সেস করতে পারেন। বর্তমান পাঠানোর নির্দেশনা আজকের ওয়েব ইন্টারফেস বর্ণনা করে, ২০১২ সালের অজাচিত স্ক্রীন নয়। একটি Trading Account ব্যালেন্স আলাদা পণ্য।
- মূল এনক্রিপ্টেড ব্যাকআপ এবং লগইন রেকর্ড রাখুন। ওয়েব ওয়ালেটে Settings → Wallets & Addresses → Bitcoin এ আলাদাভাবে ইম্পোর্ট করা ঠিকানা পরীক্ষা করুন। আপনার পরিচিত পুরনো পাবলিক ঠিকানাগুলো প্রদর্শিত হোল্ডিংসের সাথে মিলান; একটি নতুন রিকভারি ফ্রেজ ইম্পোর্ট করা চাবি কভার করে এমন অনুমান করবেন না।
- ওয়ালেট ড্যাশবোর্ডে Send খুলুন, Bitcoin নির্বাচন করুন এবং নতুন Electrum ঠিকানা বাহ্যিক গন্তব্য হিসেবে প্রবেশ করান। ছোট পরিমাণ দিয়ে শুরু করুন, Continue নির্বাচন করুন, ঠিকানা, পরিমাণ এবং ফি পর্যালোচনা করুন, তারপর Send করুন।
- Electrum-এর History-তে নিশ্চিতকরণের জন্য অপেক্ষা করুন। তারপর ফি বিবেচনা করে বাকি ব্যালেন্স পাঠান। আলাদাভাবে তহবিলপ্রাপ্ত প্রতিটি ইম্পোর্ট করা ঠিকানা পরীক্ষা করুন; সফল পরীক্ষা পুরনো ওয়ালেট খালি করে না। সমস্ত অবসরপ্রাপ্ত গ্রহণ ঠিকানা ব্যবহার বন্ধ করুন।
bitaddress.org: Sweep দিয়ে একটি কাগজের ওয়ালেট স্থানান্তর
একটি bitaddress প্রিন্টআউট সাধারণত একটি একক কী প্রতিনিধিত্ব করে, আধুনিক রিকভারি ফ্রেজ নয়। কাগজ এবং যেকোনো মূল HTML ফাইল সংরক্ষণ করুন: এর ফাইলনাম বা ফুটার রিলিজ শনাক্ত করতে পারে। সংস্করণ ইতিহাস সেটআপ পুনর্গঠন করতে সাহায্য করে; এটি একটি পৃথক কী নিশ্চিত করে না।
- ব্যক্তিগত কী শনাক্ত করুন, পাবলিক গ্রহণ ঠিকানা নয়। একটি মেইননেট WIF সাধারণত 5, K বা L দিয়ে শুরু হয়; একটি BIP38-এনক্রিপ্টেড কী 6P দিয়ে শুরু হয়। প্রিফিক্স শুধুমাত্র ফরম্যাটের ইঙ্গিত। সংশ্লিষ্ট ঠিকানা নির্ধারণের জন্য মূল কম্প্রেশন ফর্ম রাখুন।
- BIP38-এর জন্য, প্রথমে অফিসিয়াল bitaddress রিপোজিটরি থেকে যাচাই করা কপি ব্যবহার করে স্থানীয় এবং অফলাইন ডিক্রিপ্ট করুন: Wallet Details → এনক্রিপ্টেড কী প্রবেশ করান → View Details → পাসফ্রেজ প্রবেশ করান → Decrypt BIP38। মেলে এমন WIF এগিয়ে নেওয়ার আগে ফলাফল ঠিকানাটি কাগজের সাথে তুলনা করুন। কখনোই কী লাইভ ওয়েবসাইটে প্রবেশ করাবেন না বা এই পুরনো টুল দিয়ে প্রতিস্থাপন ওয়ালেট তৈরি করবেন না।
- নতুন Electrum গন্তব্য ওয়ালেটে Wallet → Private keys → Sweep খুলুন। শুধুমাত্র এই স্থানীয় ডায়ালগে অ-এনক্রিপ্টেড WIF প্রবেশ করান। যাচাই করুন গন্তব্য randstorm-new এর অন্তর্গত, তারপর লেনদেন এবং ফি পর্যালোচনা করে সম্প্রচার করুন।
- Sweep সরবরাহকৃত কী দ্বারা নিয়ন্ত্রিত খরচযোগ্য ব্যালেন্স এক লেনদেনে স্থানান্তর করে। এটি ইম্পোর্ট নয় এবং উপরের ছোট পরীক্ষার সিকোয়েন্স নয়। অন্যান্য তহবিলপ্রাপ্ত কাগজের ওয়ালেট কী জন্য পুনরাবৃত্তি করুন এবং প্রত্যাশিত রসিদ নিশ্চিত না হওয়া পর্যন্ত মূলগুলি রাখুন।
Coinpunk: পুরনো সার্ভারে স্পর্শ করার আগে ব্যাকআপ সুরক্ষিত করুন
Coinpunk স্ব-হোস্টেড ছিল, তাই কোনো সার্বজনীন বর্তমান লগইন সাইট বা রিকভারি সার্ভিস নেই। এই লেবেলগুলি রিপোজিটরি স্ন্যাপশট 63ca325be538 থেকে, যার package.json সংস্করণ 0.2.1 ঘোষণা করে। একটি পরিবর্তিত ডিপ্লয়মেন্ট ভিন্ন হতে পারে।
- আপনার মূল বিশ্বাসযোগ্য ইনস্টলেশন এখনও কাজ করলে Backup → Download খুলুন এবং এনক্রিপ্টেড ওয়ালেটের একাধিক কপি রাখুন। লগইন আইডেন্টিফায়ার, পাসওয়ার্ড এবং সার্ভার ব্যাকআপও সংরক্ষণ করুন। প্রথমে একমাত্র বেঁচে থাকা ইনস্ট্যান্স আপডেট বা পুনরায় ইনস্টল করবেন না।
- ঐতিহাসিক Send Bitcoins ফর্মে Bitcoin address to send to, Amount এবং প্রদর্শিত ফি থাকে। এটি শুধুমাত্র মূল ইনস্ট্যান্স এখনও নির্ভরযোগ্যভাবে কাজ করে এবং গন্তব্য ঠিকানা সমর্থন করে তখন ব্যবহার করুন। এই পুরনো সফটওয়্যারে bc1 ঠিকানা জোর করবেন না; পরিদর্শিত ঠিকানা পার্সার Base58Check ব্যবহার করে।
- অসামঞ্জস্যপূর্ণ গন্তব্য বা অফলাইন সার্ভারের জন্য ব্যাকআপ সংরক্ষণ করুন এবং এই Coinpunk সংস্করণ বুঝতে সক্ষম সাহায্যে স্থানীয়ভাবে কী পুনরুদ্ধার করুন। ওয়ালেট মডেল এনক্রিপ্টেড পে-লোডের মধ্যে keyPairs সংরক্ষণ করে, যার মধ্যে পরিবর্তন কীও রয়েছে। এটি Electrum সিড বা Bitcoin Core wallet.dat নয়; ফাইলের নাম পরিবর্তন এটি রূপান্তর করতে পারে না।
- পুনরুদ্ধারকৃত WIF কী মূল ঠিকানার সাথে মিলিয়ে নেওয়ার পর, Electrum-এর Sweep পদ্ধতি প্রতিটি তহবিলপ্রাপ্ত কী জন্য ব্যবহার করুন। সম্পূর্ণ সেট, পরিবর্তন ঠিকানা সহ পরীক্ষা করুন। গন্তব্য রসিদ প্রত্যাশিত ব্যালেন্সের সাথে মিলানো পর্যন্ত এনক্রিপ্টেড ব্যাকআপ এবং পাসওয়ার্ড রাখুন।
নতুন গন্তব্য হিসেবে আমরা যে হার্ডওয়্যার ওয়ালেট সুপারিশ করি
এই মাইগ্রেশনের জন্য, যদি আপনি শারীরিক বোতাম পছন্দ করেন তবে Trezor Safe 3 সুপারিশ করি, অথবা যদি বড় টাচস্ক্রিন ঠিকানা যাচাই সহজ করে তবে Trezor Safe 5। উভয়ই নতুন স্বাক্ষর কী আলাদা ডিভাইসে রাখতে পারে। একটি কিনলে পুরনো কী ঠিক হবে না: ডিভাইসে সম্পূর্ণ নতুন ওয়ালেট তৈরি করুন।
Amazon লিঙ্কগুলি একটি আঞ্চলিক পণ্য অনুসন্ধান খুলে, যাচাই করা বিক্রেতার তালিকা নয়। বিক্রেতাকে Trezor-এর অফিসিয়াল Amazon স্টোরফ্রন্ট বা অনুমোদিত রিসেলারদের সাথে মিলিয়ে দেখুন। সেটআপের সময় ডিভাইস প্রমাণীকরণ পরীক্ষা ব্যবহার করুন; কখনো সরবরাহকৃত, পূর্বলিখিত ওয়ালেট ব্যাকআপ ব্যবহার করবেন না।
- trezor.io/start-এ শুরু করুন এবং Trezor Suite ইনস্টল করুন। ডিভাইস-নির্দিষ্ট সেটআপ এবং প্রমাণীকরণ পরীক্ষা অনুসরণ করুন, Create a new wallet নির্বাচন করুন এবং ডিভাইসে ব্যাকআপ পরীক্ষা সম্পন্ন করুন। ব্যাকআপ অফলাইনে রাখুন। উপরের উদাহরণ থেকে পুরনো ওয়ালেট বা সফটওয়্যার-ওয়ালেট সিড পুনরুদ্ধার করবেন না।
- সাধারণ পাঠানোর জন্য, Trezor Suite-এ Bitcoin অ্যাকাউন্ট নির্বাচন করুন, Receive নির্বাচন করুন এবং সংযুক্ত ডিভাইসে সম্পূর্ণ ঠিকানা যাচাই করুন। এই ঠিকানাটি Blockchain.com পথের সফটওয়্যার-ওয়ালেট ঠিকানার পরিবর্তে ব্যবহার করুন। Electrum-এর History-এর পরিবর্তে Trezor Suite-এ প্রাপ্ত লেনদেন এবং তার নিশ্চিতকরণ যাচাই করুন।
- Electrum Sweep পথে, নতুন কনফিগার করা Trezor সংযুক্ত করুন এবং File → New/Restore → Standard wallet → Use a hardware device দিয়ে Electrum ওয়ালেট তৈরি করুন। Trezor-এর Electrum গাইড অনুসরণ করুন এবং মিলিত Bitcoin অ্যাকাউন্ট ও ঠিকানা ধরন ব্যবহার করুন। Trezor-এ একটি গ্রহণ ঠিকানা যাচাই করুন, তারপর এটি সুইপ গন্তব্য হিসেবে ব্যবহার করুন। Sweep-এ শুধুমাত্র OLD WIF কী প্রবেশ করান; কখনো Trezor ব্যাকআপ শব্দ Electrum বা ওয়েবসাইটে টাইপ করবেন না।
সূত্র এবং পরিধি
এই কেস স্টাডি ঐতিহাসিক ব্রাউজার বাস্তবায়ন এবং তাদের বিভিন্ন মাইগ্রেশন পথ কভার করে। এন্ট্রপি, সিড ফ্রেজ এবং হার্ডওয়্যার ওয়ালেটের বিস্তৃত সম্পর্কের জন্য পটভূমি নিবন্ধটি চালিয়ে যান।
পটভূমি: দুর্বল ওয়ালেট সিড কিভাবে সৃষ্টি হয় →
- Unciphered — Randstorm প্রকাশ, ১৪ নভেম্বর ২০২৩
- bitaddress.org — স্বাক্ষরিত সংস্করণ ইতিহাস
- Coinpunk — পরিদর্শিত RNG এবং রিপোজিটরি স্ন্যাপশট · package.json · README
- Electrum — রিকভারি, সুইপিং এবং গোপনীয়তা FAQ
- Electrum 4.8.2 — ডেস্কটপ ওয়ালেট উইজার্ড · Desktop menus
- Blockchain.com — ইম্পোর্ট করা বিটকয়েন ঠিকানা
- bitaddress.org — BIP38 এবং Wallet Details বাস্তবায়ন
- Coinpunk — এনক্রিপ্টেড ওয়ালেট মডেল এবং পরিবর্তন কী · Backup · Send
- Trezor Safe 3
- Trezor Safe 5
- Trezor Suite — trezor.io/start
- Trezor — অফিসিয়াল স্টোর এবং অনুমোদিত রিসেলার
- Trezor — অন্য ওয়ালেট থেকে মাইগ্রেট করা
- Trezor Suite — ঠিকানা গ্রহণ এবং যাচাই
১৯ সেপ্টেম্বর ২০২৬-এ প্রাথমিক ডকুমেন্টেশন এবং সোর্স কোডের বিরুদ্ধে যাচাই করা হয়েছে। পরীক্ষায় কোনো বাস্তব তহবিল বা ব্যক্তিগত কী ব্যবহার করা হয়নি। টেবিলটি একটি সম্পূর্ণ তালিকা বা আপনার ওয়ালেটের নির্ণয় নয়।
প্রশ্নোত্তর
BitcoinJS 0.1.3 কি আমার ওয়ালেট সংস্করণ শনাক্ত করে?
না। এটি র্যান্ডস্টর্ম প্রকাশে উল্লেখিত একটি লাইব্রেরি উদাহরণ শনাক্ত করে। একটি ওয়ালেট সেই লাইব্রেরি বান্ডেল বা পরিবর্তন করতে পারে ব্যবহারকারীর কাছে তার সংস্করণ প্রকাশ না করে। মূল ওয়ালেট বিল্ড এবং ব্রাউজার পরিবেশ এখনও শনাক্ত করতে হবে।
bitaddress.org 2.8.0 কি আমার কাগজের ওয়ালেট নিরাপদ প্রমাণ করে?
চেঞ্জলগ 2.8.0-এ শক্তিশালী এন্ট্রপি সংগ্রহ নথিভুক্ত করে। এটি নির্দিষ্ট করে না কীভাবে একটি পৃথক কী তৈরি হয়েছে, কোন ব্রাউজার বৈশিষ্ট্য উপলব্ধ ছিল, বা ফাইলটি পরিবর্তিত হয়েছে কিনা। তাই নিবন্ধটি এটিকে একটি নথিভুক্ত পরিবর্তন হিসেবে বিবেচনা করে, সার্বজনীন নিরাপত্তার সীমানা নয়।
কেন কাগজের ওয়ালেট পথ Import নয় Sweep ব্যবহার করে?
Import মূল ব্যক্তিগত কী ব্যবহার চালিয়ে যায়। Sweep একটি লেনদেন তৈরি করে যা তার খরচযোগ্য তহবিল প্রস্তুত গন্তব্য ওয়ালেটে স্থানান্তর করে। নতুন ওয়ালেটে স্বাধীনভাবে তৈরি চাবি থাকতে হবে, এবং গন্তব্য ও ফি সম্প্রচারের আগে যাচাই করতে হবে।
Electrum কি সরাসরি Coinpunk ব্যাকআপ খুলতে পারে?
পরিদর্শিত Coinpunk সংস্করণ একটি এনক্রিপ্টেড ওয়ালেট পে-লোড সংরক্ষণ করে, Electrum সিড নয়। ব্যাকআপ, লগইন আইডেন্টিফায়ার এবং পাসওয়ার্ড সংরক্ষণ করুন। সংস্করণ-নির্দিষ্ট দক্ষতা দিয়ে স্থানীয়ভাবে কী পুনরুদ্ধার করুন, তারপর সেগুলো মূল ঠিকানার সাথে মিলিয়ে Sweep পথ ব্যবহার করুন।