বাংলাদেশের একটি জনপ্রিয় খেলা ক্রিকেট দিয়েই লিখার সূচনা করি। ক্রিকেট খেলা শুধু আমরা টেলিভিশনে কিংবা মাঠে দেখেই ক্ষান্ত থাকি না। এলাকার মাঠে, ঢাকা শহরে রাস্তায় আমরা অনেকেই নিয়মিত ক্রিকেট খেলছি। আর এইসব খেলায় রান চুরি খুব বড় একটা ইস্যু। ১/২ রান করে কমিয়ে বলা কিংবা বাড়িয়ে বলা, তা নিয়ে ঝগড়া মারামারি নিয়মিত ঘটনা। এর একটা বড় কারণ সবাই রানের হিসেব নিয়মিত রাখে না। হয়তো টিমের একজন অথবা দুইজন সেই হিসেব রাখছে, তাদের রানের হিসেব না মিললেই গন্ডোগোল। কেউ জোর দিয়ে বলতে পারবে না কে আসলে ভুল। একজন আরেকজনকে দোষারোপ করে। অতি সতর্ক হয়ে কেউ যদি কাগজ কলম দিয়ে একজনকে বসিয়ে দেয়, তার ইচ্ছাকৃত বা অনিচ্ছাকৃত কারণেও আবার হিসেব ভুল হতে পারে।
আচ্ছা, সবাই যদি হিসেব রাখতো রানের তাহলে কি ঘটতে পারে? একজনের ভুল হলেই বাকিরা শুধরে দিতে পারতো। কেউ জোর দিয়ে ভুল বললেও বাকিরা শুধরে দিতে পারবে। কারন সবার কাছেই একই তথ্য আছে। এক রান বাড়লেই সবাই হিসেবটা মাথার মধ্যে আপডেট করে নিলো ধরলাম।
টিভিতে যতো বড় মাপের ক্রিকেট ম্যাচই আমরা দেখি না কেন সেই সব ম্যাচের হিসেব টিভি স্ক্রিণে শো করে, মাঠে স্কোরবোর্ডও আছে। আবার প্রতিটা টিমেরই লোক থাকে কাগজে কলমে রান আর বলের হিসেব রাখে।
এইখান থেকে খুব কমন একটা ব্যাপার বুঝতে পারলাম – হিসেব রাখার ক্ষেত্রে যদি আমরা কোন একজন ব্যক্তির উপর নির্ভর না করে একই তথ্য সবার মাঝে বিলিয়ে দিই। কেউ যদি হিসেবে গড় মিল করেও বাকিরা ঠিকই সেই ভুল ধরে ফেলতে পারবে। আর কোন পরিবর্তন হলে সবাই-ই তাদের আগের হিসেবে পরিবর্তন করবে একই সাথে।
আরেকটা ব্যাপারে আসি, হ্যাশ ফাংশন। এই হ্যাশ ফাংশনে যদি আপনি একটা ইনপুট দেন, একটা নির্দিষ্ট ফরম্যাটে আউটপুট জেনারেট করবে। আপনার ১০০ অক্ষরের একটা নাম ইনপুট দিলেও তাকে যদি ডিজাইন করা হয় ৪ অক্ষরের একটা আউটপুট জেনারেট করার জন্য সে সেই কাজটাই করবে। ৪ অক্ষর ইনপুট দিলেও সে নতুন ৪ অক্ষরের একটা আউটপুট জেনারেট করবে। এই আউটপুটগুলো প্রতিটা ইউনিক হবে। এইখানে ডোমেইন যতো বড় করা যাবে তার ইউনিকনেসের সম্ভাবনা ততো বাড়বে। যেমন – সকল ইংলিশ ক্যাপিটাল লেটার স্মল লেটার, সকল যতি চিহ্ন, নাম্বার যদি সেই আউটপুটে এলাউ করা হয় তবে তার ইউনিকনেসের সম্ভাবনা অধিক হবে।
ধরি, আমার নাম Jaber এইটা হ্যাশ ফাংশন হ্যাশিং করে বানালো ruwr । পুরো সিস্টেম আমাকে তাহলে ruwr নামেই জানবে। এইটা শুধু সিস্টেমই জানবে আর কেউ না। আমি নিজেও না, আমি নিজের নাম যেটা ইনপুট দিয়েছি সেটাই শুধু জানবো।
দুইটা জিনিস শিখলাম অথবা জানলাম। এই দুইটার মিশ্রণই বর্তমান কালের হট টপিক “BlockChain”। ব্লকচেইন টেকনোলজি বর্তমানে ইউজ হচ্ছে মূলত ক্রিপ্টো কারেন্সির ক্ষেত্রে। কিন্তু এইটার প্রয়োগ আরো ব্যাপক। নিরাপত্তা বৃদ্ধির খাতিরেই অনেক স্পর্শকাতর বিষয় এই টেকনোলজি ব্যবহার করে নিয়ন্ত্রণে আনা হবে ভবিষ্যতে।
এইবার উদাহরণ হিসেবে একটা ঘটনা পেশ করার জন্য চলে যাই প্রায় খ্রিস্টপূর্ব ৫০০ বছর আগে একটি ছোট্ট গ্রামে –
সেখানে কারেন্সি হিসেবে ব্যবহার করা হতো ২০০ কেজির এক ধরনের পাথর। চিন্তা করুন এক কেজি চাল কেনার জন্য তা বহন করে বাজারে নিয়ে গেলেন। তা দোকানদারকে দিয়ে নিজের চাল নিয়ে বাড়ি ফিরলেন। আবার দোকানদার চাল বিক্রি শেষে কতগুলো পাথর নিয়ে বাড়ি ফিরবে । এটা কি কখনো সম্ভব? তার চেয়ে তারা জিনিসটার একটা সহজ সমাধান বের করলো – পাথরগুলো নিজেদের স্থানেই থাকলো। কোন জায়গার পাথরটা কার সেটা সবাই মনে রাখলো। এরপর চাল কেনার ক্ষেত্রে এবার চালটা হাতে নিয়ে দোকানদারকে বললাম ওমুক পাথরটা এখন থেকে তোমার। আর তথ্যটা সবাইকে জানিয়ে দেয়া হলো। টালি সিস্টেম চিন্তা করতে পারেন, তবে এখানে একজনের কাছ থেকে একটা জিনিস কমে আরেকজনের ঘরে দাগ পড়বে। পাথরের নড়চড় ছাড়াই পাথরের মালিক পরিবর্তন হয়ে যাচ্ছে, কেউ বড়লোক হচ্ছে । এখন কেউ যদি মনে করে নিজের সম্পত্তি(পাথরের সংখ্যা) বাড়িয়ে বলবে তা সে চাইলেই পারবে না। বাকিদের কাছে কিন্তু সঠিক হিসেবটা রয়ে গেছে। আবার কোন স্থানের পাথর যদি নদীর পাড়ে থাকার কারণে নদীতে পড়ে যায়। তাহলেও সমস্যা হচ্ছে না। কারণ হিসেবটা ঠিকই থাকবে, পাথর সরাসরি হাতবদল হচ্ছে না। পাথরের সংখ্যাটাই মুখ্য যা এখন অপরিবর্তনীয় আছে।
এখন এই মানুষগুলোর মনে রাখার জায়গায় একগাদা কম্পিউটার নিয়ে আসি যাদের কাছে বিভিন্ন মানুষের তথ্য থাকবে মানে একেকজনের নিজস্ব একাউন্ট। সুতরাং লেনদেন হবে পাব্লিকলি। এইবার তাহলে আসে সিকিউরিটি ইস্যু। আর এখানেই হ্যাশ ফাংশনের ভূমিকা। প্রতিটা একাউন্টের বিপরীতে বিভিন্ন তথ্যের মিশ্রণে একটা আইডি জেনারেট করা হবে যা কেবল একজনরই হওয়া সম্ভব। একাউন্টের ইনফর্মেশন যখন কোন ট্রাঞ্জেকশন তথা লেনদেনে ব্যবহৃত হবে ঐ যে হ্যাশ ফাংশনের দ্বারা তৈরি হওয়া আইডির বিপরীতে হবে। কেউ চাইলেই মাঝখান দিয়ে কার টাকা কার কাছে যাচ্ছে কিছুই বুঝতে পারবে না। আর কেউ যদি হ্যাকিং করে কোন টাকা বাড়ানোর চেষ্টা করে তখন সিস্টেম দেখবে বাকি কম্পিউটারগুলো সেই লেনদেনকে মেনে নিচ্ছে না( আর এইটা অনেকটা অসম্ভবও, কারণ যেকোন ট্রাঞ্জেকশনের জন্য হ্যাশ করা আইডি জানতে হবে। যেটা কোনভাবে জেনারেট করা হচ্ছে তা অনুমান করে কখনোই জেনারেট করা সম্ভব না)। একটা লেনদেন সঠিকভাবে তখনই সম্পন্ন হবে যখন তা বাকি কম্পিউটারগুলোও নিশ্চিত করবে। হ্যাঁ, এই আইডির অস্তিত্ব আছে এবং সে তার টাকা আরেকজনকে দিতে চাচ্ছে। শুধুমাত্র দুই আইডির বিপরীতে তাদের একাউন্টের অর্থের পরিমাণ চেঞ্জ করে দেয়া হবে।
ব্লকচেইন টেকনোলজির মূল লক্ষ্য ক্ষমতার “বিকেন্দ্রীকরণ”। একজন কিংবা একজায়গায় সকল তথ্য জমা না রেখে তা সবার কাছে রাখা তবে সিকিউরডভাবে। কোন একজনের পক্ষে কখনোই ডাটা পরিবর্তন করা সম্ভব হবে না। সিকিউরিটি কনসার্ন থেকেই এই ভাবনার আগমন। খুব অবাক হতে হয় কোন এক আদিম পদ্ধতি আমরা ব্যবহার করছি কিন্তু প্রচন্ড স্মার্ট ওয়েতে। মানুষ সর্বদাই চমকে দেয়ার মতো আবিষ্কার করতে ভালোবাসে।
পরবর্তীতে এ সম্পর্কে কিংবা অন্যকোন নতুন বিষয়ে লিখার আশা রাখি।
লিখাটা ধৈর্য্য সহকারে পড়ার জন্য ধন্যবাদ
Main source – Blockchain Explanation
(পুরা লিখাটা এই ভিডিও টিউটোরিয়ালের বাংলা রূপান্তরও বলতে পারেন)
*ছবিটা গুগল করে পাওয়া
কেউ যদি Blockchain and Bitcoin নিয়ে বিস্তারিত পড়তে/জানতে চান সেক্ষেত্রে MIT এর এই কোর্স মেটেরিয়ালগুলো দেখতে পারেন – READINGS AND STUDY QUESTIONS
সর্বশেষ এডিট : ২৪ শে মে, ২০১৮ দুপুর ২:১০