Bitcoin আমাদের একটি কঠিন প্রতিশ্রুতি দেয়: প্রোগ্রামটি ঠিক যেমন নির্ধারিত হয়েছে, তেমনই কার্যকর হবে।
আন্দ্রেয়াস এম. আন্তোনোপোলোস
পাবলিক/প্রাইভেট কি ক্রিপ্টোগ্রাফি
ক্রিপ্টোগ্রাফি হল এমন একটি পদ্ধতি যেখানে তথ্যকে এমন এক গোপন রূপে রূপান্তর করা হয়, যা শুধুমাত্র সঠিক ব্যক্তিরাই পড়তে পারে।
- এনক্রিপশন হল তথ্যকে এমন এক কোডে রূপান্তর করার প্রক্রিয়া, যাতে শুধুমাত্র সঠিক চাবি থাকলেই তা পড়া যায়।
- ডিক্রিপশন হল সেই কোড করা তথ্যকে আবার পাঠযোগ্য অবস্থায় ফিরিয়ে আনার প্রক্রিয়া।
প্রচলিত ক্রিপ্টোগ্রাফিতে, দুইজন ব্যক্তি যারা ব্যক্তিগতভাবে যোগাযোগ করতে চায়, তাদের প্রথমে একই গোপন চাবি ভাগাভাগি করতে হয়, যা একটি শেয়ার করা পাসওয়ার্ডের মতো। একজন ব্যক্তি এই চাবি ব্যবহার করে বার্তাটি এনক্রিপ্ট করে পাঠান, এবং অন্যজন একই চাবি ব্যবহার করে তা ডিক্রিপ্ট করে পড়েন।
এই ব্যবস্থার সমস্যা হল, উভয় ব্যক্তিরই আগে থেকেই গোপন চাবি ভাগাভাগি থাকতে হয়। যদি কেউ সেই চাবি পেয়ে যায়, তাহলে তারা যেকোনো আটকানো বার্তা পড়তে পারে।
Bitcoin এই সমস্যার সমাধান করে একটি ভিন্ন পদ্ধতি ব্যবহার করে, যাকে পাবলিক-কি ক্রিপ্টোগ্রাফি বলা হয়, যেখানে ব্যবহারকারীদের আগেভাগে গোপন চাবি ভাগাভাগি করতে হয় না।
পাবলিক/প্রাইভেট কি ক্রিপ্টোগ্রাফি গোপন তথ্য ভাগাভাগির সমস্যার সমাধান করে। পাসওয়ার্ড ভাগাভাগি করার পরিবর্তে, প্রত্যেকের দুটি চাবি থাকে: একটি পাবলিক কি এবং একটি প্রাইভেট কি।
- পাবলিক কি যেকোনো কারো সাথে ভাগাভাগি করা যায়।
- প্রাইভেট কি সবসময় গোপন রাখা উচিত।
যদি জন কিছু পাঠাতে চায় আরেল-কে, সে আরেলের পাবলিক কি ব্যবহার করতে পারে। শুধুমাত্র আরেল তার প্রাইভেট কি দিয়ে এটি আনলক করতে পারবে। কেউ যদি বার্তাটি আটকায়, তবুও তারা প্রাইভেট কি ছাড়া তা পড়তে বা ব্যবহার করতে পারবে না।
Bitcoin-এ, এই পদ্ধতি ব্যবহার করে ডিজিটাল স্বাক্ষর তৈরি করা হয়। একটি ডিজিটাল স্বাক্ষর প্রমাণ করে যে প্রাইভেট কি-র মালিক লেনদেনটি অনুমোদন করেছেন, যেমন আপনি কোনো নথিতে নিজের নাম স্বাক্ষর করেন। এটাই Bitcoin লেনদেনকে নিরাপদ ও যাচাইযোগ্য করে তোলে, কোনো তৃতীয় পক্ষের ওপর নির্ভর না করেই।
Bitcoin লেনদেন মানে হল এক ঠিকানা থেকে অন্য ঠিকানায় বিটকয়েনের মালিকানা হস্তান্তর।
এনক্রিপশন ব্যবহার করা হয় যাতে শুধুমাত্র প্রকৃত বিটকয়েন ধারকই তার টাকা অন্য কাউকে পাঠানোর অধিকার রাখে। এটি নিশ্চিত করে যে তাদের সম্পত্তি দুষ্ট ব্যক্তিদের হাত থেকে সুরক্ষিত থাকে।
অতিরিক্ত সুরক্ষার জন্য, প্রতিটি Bitcoin লেনদেনে স্বয়ংক্রিয়ভাবে একটি ইউনিক ডিজিটাল স্বাক্ষর তৈরি হয়। এই ইউনিক ডিজিটাল স্বাক্ষর টেম্পার-প্রুফ প্রযুক্তি দ্বারা চালিত, যা নেটওয়ার্ককে যাচাই করতে সাহায্য করে যে প্রকৃত মালিকই বিটকয়েন পাঠিয়েছেন, অন্য কেউ নয়।
প্রত্যেক ব্যবহারকারীর দুটি চাবি থাকে: একটি প্রাইভেট কি, যা গোপন রাখা হয়, এবং একটি পাবলিক কি যা অন্যদের সাথে ভাগাভাগি করা যায়। প্রাইভেট কি একটি পরিচয় এবং মালিকানার প্রমাণ হিসেবে কাজ করে, নিশ্চিত করে: “এই ঠিকানাটি আমার এবং আমি এটি নিয়ন্ত্রণ করি।”
একটি Bitcoin লেনদেন কীভাবে কাজ করে
- লেনদেন তৈরি করা: একজন ব্যবহারকারী Bitcoin লেনদেন শুরু করেন, যেমন প্রাপকের ঠিকানা এবং পাঠানোর বিটকয়েনের পরিমাণ নির্ধারণ করে।
- ডিজিটাল স্বাক্ষর তৈরি: প্রেরক একটি ইউনিক ডিজিটাল স্বাক্ষর তৈরি করেন তার প্রাইভেট কি ব্যবহার করে। এই স্বাক্ষরটি একটি ইউনিক কোড, যা লেনদেনের সত্যতা যাচাই করে।
- লেনদেন সম্প্রচার: স্বাক্ষরিত লেনদেনটি Bitcoin নেটওয়ার্কে সম্প্রচার করা হয়, যা প্রেরক থেকে প্রাপকের কাছে বিটকয়েনের মালিকানা হস্তান্তরের ইচ্ছা প্রকাশ করে।
- নেটওয়ার্কে যাচাই: Bitcoin নেটওয়ার্কের নোডগুলো লেনদেনটি গ্রহণ করে এবং প্রাপকের পাবলিক কি স্বাক্ষরের সত্যতা যাচাই করার জন্য। লেনদেনের। একই সাথে, তারা প্রেরকের পাবলিক কী যাচাই করার জন্য ডিজিটাল স্বাক্ষর।
- বিটকয়েন নেটওয়ার্কে নিশ্চিতকরণ: যদি যাচাই সফল হয়, লেনদেনটি খাতায় যোগ করা হবে, যা সকল লেনদেনের একটি নিরাপদ, স্বচ্ছ রেকর্ড হিসেবে কাজ করে। একবার নিশ্চিত হলে, বিটকয়েনের মালিকানা আনুষ্ঠানিকভাবে প্রেরক থেকে প্রাপকের কাছে হস্তান্তরিত হয়।
The ডিজিটাল স্বাক্ষর, যা প্রেরকের প্রাইভেট কী দিয়ে তৈরি, প্রমাণ করে যে লেনদেনটি বিটকয়েনের মালিক কর্তৃক অনুমোদিত হয়েছে। এরপর বিটকয়েন নেটওয়ার্ক এই প্রমাণ যাচাই করতে পারে এবং লেনদেনটি রেকর্ড করে।
হ্যাশিং ব্যাখ্যা
অনুগ্রহ করে সামনের প্রযুক্তিগত শব্দ ও গাণিতিক ধারণা দেখে ভয় পাবেন না। আমরা বুঝি যে সবাই গণিত পছন্দ করেন না, তবে আপনি নিজেই অবাক হতে পারেন এবং দেখতে পারেন যে একটু চেষ্টা করলেই সবচেয়ে জটিল ধারণাগুলোও বোঝা যায়।
একটি ফাংশন একটি যন্ত্রের মতো, যা কিছু তথ্য নিয়ে সেটিকে নতুন কিছুতে রূপান্তর করে। আপনি ফাংশনকে যে তথ্য দেন, সেটি হলো ইনপুট। ফাংশন যেটি তৈরি করে, সেটি হলো আউটপুট। ফাংশন কম্পিউটারকে কাজ করতে ও সমস্যা সমাধান করতে সাহায্য করে।
ফাংশন কী?
একটি ফাংশন হলো নির্দেশনার একটি সেট, যা একটি ইনপুট নিয়ে একটি আউটপুট তৈরি করে। আপনি এটিকে একটি রেসিপির মতো ভাবতে পারেন: নির্দিষ্ট উপাদান নিয়ে ধাপে ধাপে কাজ করলে, আপনি সবসময় একটি পূর্বানুমেয় ফলাফল পাবেন।
বিটকয়েনে, ফাংশন লেনদেন প্রক্রিয়াকরণ ও যাচাই করতে ব্যবহৃত হয়। কেউ বিটকয়েন পাঠালে, ক্রিপ্টোগ্রাফিক ফাংশনগুলো যাচাই করে যে লেনদেনটি বৈধ কিনা, প্রেরকের কাছে যথেষ্ট অর্থ আছে কিনা, এবং বিটকয়েন খাতায় ব্যালেন্স আপডেট করে। একবার যাচাই হয়ে ব্লকে যোগ হলে, লেনদেনটি ব্লকচেইনে স্থায়ী রেকর্ডের অংশ হয়ে যায়।
ওয়ান-ওয়ে ফাংশন কী?
ওয়ান-ওয়ে ফাংশন হলো একটি বিশেষ ধরনের ফাংশন, যা একদিকে গণনা করা সহজ, কিন্তু উল্টোটা করা অত্যন্ত কঠিন। উদাহরণস্বরূপ, উপাদানগুলো ব্লেন্ড করে স্মুদি বানানো সহজ, কিন্তু সেই স্মুদিকে আবার মূল উপাদানে আলাদা করা যায় না।
বিটকয়েনের নিরাপত্তা ওয়ান-ওয়ে ফাংশনের ওপর নির্ভর করে। এগুলো পাবলিক ও প্রাইভেট কী ক্রিপ্টোগ্রাফিতে ব্যবহৃত হয়, যাতে মানুষ পাবলিক কী শেয়ার করতে পারে, কিন্তু প্রাইভেট কী গোপন রাখতে পারে। যদিও পাবলিক কী দৃশ্যমান, তবুও তা থেকে প্রাইভেট কী বের করা অসম্ভব। এটাই বিটকয়েন লেনদেনকে নিরাপদ করে তোলে।
হ্যাশ ফাংশন কী?
একটি হ্যাশ ফাংশন একটি গোপন কোড মেশিনের মতো। এটি একটি বার্তা নিয়ে সেটিকে কোডে রূপান্তর করে।
বিটকয়েন লেনদেনে হ্যাশিং কীভাবে কাজ করে
বিটকয়েনে, প্রতিটি লেনদেন ব্লকচেইনে যোগ করার আগে একটি হ্যাশে রূপান্তরিত হয়। একটি হ্যাশ হলো লেনদেনের একটি অনন্য ডিজিটাল ফিঙ্গারপ্রিন্ট। কেউ যদি লেনদেনের সামান্য অংশও পরিবর্তন করার চেষ্টা করে, তাহলে হ্যাশ পুরোপুরি বদলে যাবে। এতে নেটওয়ার্কের জন্য জালিয়াতি ধরা সহজ হয়।
বিটকয়েন নিরাপত্তায় হ্যাশিংয়ের ভূমিকা
হ্যাশিং বিটকয়েন নেটওয়ার্ককে সুরক্ষিত রাখতে সাহায্য করে, কারণ এতে লেনদেন যাচাই করা সহজ এবং চুপিসারে পরিবর্তন করা অসম্ভব। প্রতিটি লেনদেনের নিজস্ব অনন্য হ্যাশ থাকায়, নেটওয়ার্ক দ্রুত বুঝতে পারে কিছু পরিবর্তন হয়েছে কিনা।
একটি হ্যাশ ফাংশন ডেটা নিয়ে সেটিকে নির্দিষ্ট দৈর্ঘ্যের সংখ্যা ও অক্ষরের একটি স্ট্রিং-এ রূপান্তর করে, যাকে হ্যাশ বলে। একই ইনপুট সবসময় একই হ্যাশ তৈরি করবে, কিন্তু ইনপুটে সামান্য পরিবর্তনেও সম্পূর্ণ ভিন্ন ফলাফল আসবে। এই বৈশিষ্ট্য কম্পিউটারকে যাচাই করতে দেয় যে ডেটা পরিবর্তিত হয়েছে কিনা।
হ্যাশিং ডিজিটাল ডেটার জন্য ফিঙ্গারপ্রিন্ট তৈরির মতো। এটি একটি ডিজিটাল বার্তা নিয়ে সেটিকে নির্দিষ্ট দৈর্ঘ্যের কোডে রূপান্তর করার প্রক্রিয়া, যা একটি অনন্য পরিচয়পত্র হিসেবে কাজ করে। যেমন ফিঙ্গারপ্রিন্ট একজন মানুষকে চিহ্নিত করতে পারে, তেমনি একটি হ্যাশ একটি ডিজিটাল বার্তাকে চিহ্নিত করতে পারে।
The আউটপুট, বা হ্যাশ, সবসময় একই দৈর্ঘ্যের হয়, মূল তথ্য যত বড়ই হোক না কেন। বিটকয়েন কয়েকটি নির্দিষ্ট ধরনের হ্যাশ ফাংশন ব্যবহার করে, যেমন SHA-256 এবং RIPEMD160।
নিচে কয়েকটি উদাহরণ দেওয়া হলো:
- স্ট্রিং-এর SHA256 হ্যাশ হ্যালো ওয়ার্ল্ড
b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
- স্ট্রিংটির SHA256 হ্যাশ হ্যালো ওয়ার্ল্ড।
7ddb227315f423250fc67f3be69c544628dffe41752af91c50ae0a9c49faeb87- লক্ষ্য করুন, ইনপুটে সামান্য পরিবর্তন আউটপুটকে সম্পূর্ণভাবে পরিবর্তন করে দেয়, প্রথমটির সাথে তুলনা করলে
- ডাউনলোডযোগ্য iso ফাইলটির SHA256 হ্যাশ উবুন্টু ১৮.১০
7b9f670c749f797a0f7481d619ce8807edac052c97e1a0df3b130c95efae4765- এই ইনপুটটি একটি বিশাল ফাইল, তবুও আউটপুট এখনও একই নির্দিষ্ট দৈর্ঘ্যের
আপনি হ্যাশিংকে একটি সঙ্গীত স্কোর হিসেবেও ভাবতে পারেন, যা একটি সঙ্গীতের সারমর্ম ধারণ করে। যেমন একটি সঙ্গীত স্কোর একটি সুরের জন্য অনন্য উপস্থাপনা, তেমনি একটি হ্যাশ মান একটি ডেটার জন্য অনন্য উপস্থাপনা।
একজন সঙ্গীতজ্ঞ যখন একটি সঙ্গীতের স্কোরের সাথে আসল পরিবেশনা তুলনা করেন, তখন তিনি নির্ধারণ করতে পারেন পরিবেশনাটি সঠিক হয়েছে কিনা। অনুরূপভাবে, প্রাপ্ত ডেটার হ্যাশ মানটি মূল হ্যাশ মানের সাথে তুলনা করে, কেউ নির্ধারণ করতে পারেন ডেটাটি প্রেরণের সময় পরিবর্তিত হয়েছে কিনা।
একটি সঙ্গীত পরিবেশনায় সামান্য বিচ্যুতি যেমন সেটিকে আলাদা শোনাতে পারে, তেমনি আসল ডেটায় সামান্য পরিবর্তনও সম্পূর্ণ ভিন্ন হ্যাশ মান তৈরি করবে। এটি বিটকয়েন লেনদেনের অখণ্ডতা ও সত্যতা নিশ্চিত করার জন্য হ্যাশিংকে একটি শক্তিশালী টুলে পরিণত করে।
এনকোডিং প্রক্রিয়াটি পাবলিক কী হ্যাশিংয়ের মাধ্যমে তথ্যের নিরাপত্তা বাড়াতে ব্যবহৃত হয়, কারণ এটি তথ্যকে নির্দিষ্ট দৈর্ঘ্যের, অপঠিত ফরম্যাটে রূপান্তরিত করে। বিটকয়েন পাবলিক ঠিকানা তৈরির জন্য SHA-256 এবং RIPEMD160 অ্যালগরিদম ব্যবহার করে। এর ফলে উৎপন্ন আউটপুটটি পাবলিক কী এর জন্য একটি অনন্য শনাক্তকারী হিসেবে কাজ করে এবং খতিয়ানে সংরক্ষিত লেনদেনের অখণ্ডতা ও নিরাপত্তা নিশ্চিত করতে সহায়তা করে। এইভাবে তথ্য এনক্রিপ্ট করলে, অননুমোদিত ব্যক্তিদের জন্য ডেটা অ্যাক্সেস ও পরিবর্তন করা আরও কঠিন হয়ে যায়।
হ্যাশিং ফাংশনের বৈশিষ্ট্যসমূহ
- নির্ধারিত (Deterministic): একই উপাদান সবসময় একই স্মুদি তৈরি করে। একইভাবে, একই ডেটা সবসময় একই হ্যাশ তৈরি করবে।
- প্রি-ইমেজ রেজিস্ট্যান্স: যদি আপনার কাছে শুধু স্মুদি থাকে, তাহলে আপনি ঠিক কোন ফল ব্যবহার হয়েছে তা বের করতে পারবেন না। তেমনি, যদি আপনার কাছে শুধু হ্যাশ থাকে, তাহলে আপনি আসল ডেটা নির্ধারণ করতে পারবেন না।
- অ্যাভাল্যাঞ্চ ইফেক্ট: উপাদানের সামান্য অংশ পরিবর্তন করলেই সম্পূর্ণ ভিন্ন স্মুদি তৈরি হয়। হ্যাশিংয়ে, ডেটার খুব ছোট পরিবর্তনও সম্পূর্ণ ভিন্ন হ্যাশ তৈরি করে।
- কলিশন রেজিস্ট্যান্স: দুটি ভিন্ন উপাদান সেট থেকে একদম একই স্মুদি তৈরি করা অত্যন্ত কঠিন। একইভাবে, দুটি ভিন্ন ডেটা থেকে একই হ্যাশ পাওয়া অত্যন্ত অসম্ভব।
- দ্রুত যাচাইযোগ্য: স্মুদি তৈরি করা দ্রুত, এবং এটি স্মুদি কিনা তা যাচাই করা সহজ। হ্যাশ ফাংশন দ্রুত গণনা করা যায় এবং যে কেউ সহজেই যাচাই করতে পারে।
কার্যক্রম: SHA 256 হ্যাশ তৈরি করুন
হ্যাশিং কীভাবে কাজ করে জানতে আগ্রহী? যেকোনো শব্দ, বাক্য বা ইনপুট থেকে SHA256 হ্যাশ তাৎক্ষণিকভাবে তৈরি করতে QR কোডটি স্ক্যান করুন। হ্যাশ ফাংশন ডিজিটাল ফিঙ্গারপ্রিন্টের মতো: এগুলো একমুখী, অর্থাৎ কিছু একবার হ্যাশ করা হলে তা আর উল্টো করা যায় না। নিজেই চেষ্টা করে দেখুন!