বিটকয়েন প্রোটোকল কীভাবে কাজ করে (পর্ব ১)

তৈরি: 2017-01-19 18:04:02, আপডেট করা হয়েছে: 2017-01-19 18:11:24
comments   0
hits   1295

বিটকয়েন প্রোটোকল কীভাবে কাজ করে (পর্ব ১)

গত বছর এখানে বিটকয়েন সম্পর্কে আমার পাঁচটি চিন্তাভাবনা লিখেছিলাম, এবং মনে হয় এটিই এখানে বিটকয়েন সম্পর্কে আমার প্রথম লেখা। আজ এখানে বিটকয়েন চুক্তি সম্পর্কে আলোচনা করব।

মাইকেল নিলসেন একজন বিজ্ঞানী, লেখক এবং প্রোগ্রামার যিনি কোয়ান্টাম কম্পিউটিং নিয়ে গবেষণা করেছেন, বিস্তারিত জানার জন্য তার নিজের প্রবর্তন দেখুন। এই নিবন্ধটি অনুবাদ করা হয়েছে কারণ অনুবাদক মনে করেন যে বিটকয়েন সম্পর্কিত নিবন্ধগুলি এবং আলোচনাগুলি অনেক, অনেক সমর্থন এবং অনেক বিরোধিতা করেছে। তবে বেশিরভাগই ধারণাগত, মূল্য এবং বিষয়বস্তুগত চিন্তায় আটকে আছে। আমি বিটকয়েনের বর্তমান মূল্য এবং পৃষ্ঠের উপস্থিতিকে সরিয়ে ফেলতে চাই, এবং এই নিবন্ধের মাধ্যমে, বিটকয়েন প্রোটোকলের কার্যকারিতা সম্পর্কে বিস্তারিতভাবে জানাতে চাই। আমি বিশ্বাস করি যে কোনও কিছুর পিছনে কাজ করার নীতিটি বোঝা আমার পক্ষে খুব গুরুত্বপূর্ণ। আমি বিশ্বাস করি যে কোনও কিছুর পিছনে কাজ করার নীতিটি বোঝা আমার পক্ষে খুব গুরুত্বপূর্ণ।

এটা শুধু মানুষকে জানাতে সাহায্য করবে যে এটি কী, যেখানে এটি ইলেকট্রনিক অর্থের জায়গার সাথে ফিট করে, তাদের বোঝানোর চেষ্টা করে না যে এটি ভাল। তার আরেকটি মূল বক্তব্য হ’ল “আপনি যদি আমাকে বিশ্বাস না করেন বা এটি না পান তবে আপনাকে বোঝানোর চেষ্টা করার সময় আমার নেই, দুঃখিত। “

  • ### নিম্নে মূল লেখাটি দেওয়া হল।

হাজার হাজার প্রবন্ধ বিটকয়েনকে ব্যাখ্যা করার চেষ্টা করেছে, একটি অনলাইন, পিয়ার-টু-পিয়ার মুদ্রা। অধিকাংশ প্রবন্ধই এর অন্তর্নিহিত চুক্তির একটি টুকরো নিয়ে এসেছে, অনেকগুলি বিস্তারিত বাদ দিয়ে। এমনকি খুব গভীর প্রবন্ধগুলিও গুরুত্বপূর্ণ জায়গায় আটকে গেছে। এই প্রবন্ধের উদ্দেশ্য হল বিটকয়েন চুক্তির পিছনে থাকা মূল বিষয়গুলিকে যথাসম্ভব স্পষ্ট এবং সহজবোধ্যভাবে ব্যাখ্যা করা। আমরা প্রথম নীতি থেকে শুরু করে বিটকয়েন চুক্তির একটি বিস্তৃত তাত্ত্বিক উপলব্ধি তৈরি করেছি, তারপর বিটকয়েন লেনদেনের মধ্যে থাকা ডেটা পরীক্ষা করে বিস্তারিতভাবে গভীরতর হয়েছি।

বিটকয়েনকে খুব সহজেই “অবশ্যই” হিসেবে গ্রহণ করা যায়, এবং অন্যান্য ধারণাগুলির মাধ্যমে অর্থ উপার্জন করা যায়, যেমন এটি একটি বুদবুদ কিনা, বিটকয়েন ট্যাক্সের জন্য একটি শেষ কি না, ইত্যাদি। এই ধারণাগুলি নিয়ে চিন্তা করা অনেক মজার, কিন্তু এই ধারণাগুলি আপনার বোঝার জন্য গুরুতরভাবে সীমাবদ্ধ। এবং বিটকয়েন এর চুক্তিটি নিজেই আপনার বোঝার জন্য অন্যান্য চ্যানেলের অ্যাক্সেসযোগ্যতার জন্য দৃষ্টিভঙ্গি খুলবে। এই চুক্তিটি বিটকয়েনের মধ্যে থাকা স্ক্রিপ্ট ভাষার ভিত্তি, যা আপনাকে নতুন আর্থিক সরঞ্জাম তৈরি করতে দেয়, যেমন স্মার্ট চুক্তি। নতুন আর্থিক সরঞ্জামগুলি নতুন বাজার এবং নতুন মানুষের মধ্যে সহযোগিতা তৈরি করতে পারে, এবং মজা বলতে গেলে, এটিই আসল মজা!

বিটকয়েন স্ক্রিপ্ট এবং স্মার্ট কন্ট্রাক্ট সম্পর্কে আমি পরবর্তী নিবন্ধে ব্যাখ্যা করব। এই নিবন্ধে আমি বিটকয়েন প্রোটোকলের নির্দিষ্ট বিবরণে মনোনিবেশ করব। এই নিবন্ধটি বোঝার জন্য আপনাকে সম্ভবত পাবলিক কী পাসওয়ার্ড এবং এর সাথে সম্পর্কিত ডিজিটাল স্বাক্ষরগুলির সাথে পরিচিত হতে হবে। (দুটি ধারণার সাথে পরিচিত হোন) । এবং সম্ভবত হ্যাশ ফাংশন (যে কোনও দৈর্ঘ্যের ইনপুটকে স্থির দৈর্ঘ্যের আউটপুটে রূপান্তরিত করে) । এই ধারণাগুলি দুর্দান্ত, এবং যদি আপনি না জানেন তবে আমি আপনাকে তাদের সাথে পরিচিত হওয়ার জন্য কিছু সময় দেওয়ার পরামর্শ দিচ্ছি।

বিটকয়েনের ভিত্তি হল ক্রিপ্টোগ্রাফি, যা আপনাকে অবাক করে দিতে পারে, কিন্তু বিটকয়েন কি একটি মুদ্রা নয়? এটা কি গোপন তথ্য পাঠানোর একটি উপায়? আসলে, বিটকয়েন যে সমস্যাটি সমাধান করতে চায় তা হল, লেনদেনের সুরক্ষার বিষয়ে, যাতে মানুষ অন্যের জিনিস চুরি করতে না পারে বা অন্যকে প্রতারণা করতে না পারে ইত্যাদি।

এই প্রবন্ধের কৌশল হল বিটকয়েনকে স্তর-স্তর করে গড়ে তোলা। আমরা একটি খুব সহজ ডিজিটাল মুদ্রা দিয়ে শুরু করব, আমরা তাকে সাময়িকভাবে ইনফোকয়েন মুদ্রা বলি, বিটকয়েন থেকে আলাদা করার জন্য। অবশ্যই আমাদের প্রথম সংস্করণ ইনফোকয়েনের অনেকগুলি ত্রুটি থাকবে, তাই আমরা বেশ কয়েকটি প্রজন্মের মধ্য দিয়ে যাব, এবং প্রতিটি প্রজন্মের মধ্যে একটি বা দুটি নতুন ধারণা থাকবে। বেশ কয়েকটি প্রজন্মের পরে, আমরা একটি সম্পূর্ণ বিটকয়েন চুক্তি পাব। আমরা একসাথে বিটকয়েন পুনরায় উদ্ভাবন করব।

এই পদ্ধতিটি বিটকয়েনকে সরাসরি ব্যাখ্যা করার চেয়ে অনেক ধীর। কিন্তু আপনি যদি বিটকয়েনের কাজগুলো বুঝতে পারেন, তবে কেন এটিকে এইভাবে ডিজাইন করা হয়েছে তা বোঝা কঠিন। ধীর ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে

অবশেষে, আমি বলব যে আমি বিটকয়েন জগতে অপেক্ষাকৃত নতুন। ২০১১ সালে আমার সামান্য উদ্বেগ ছিল, কিন্তু ২০১৩ সালের শুরুতে আমি এটির বিশদটি গুরুত্ব সহকারে অধ্যয়ন করেছি। আমার ভুল অংশটি সংশোধন করতে যে কাউকে স্বাগত জানাই।

  • প্রথম ধাপঃ ইচ্ছাপত্রের স্বাক্ষর

    • #### কিভাবে একটি মুদ্রা ডিজাইন করা যায়?

    একটি ডিজিটাল মুদ্রা তৃণমূল থেকে অসম্ভব মনে হতে পারে। ধরুন, একজন মানুষ, যাকে আমরা আলিস বলে থাকি, তার কাছে কিছু ডিজিটাল মুদ্রা আছে, যা সে খরচ করতে চায়। যদি আলিস একই অক্ষরের একটি স্ট্রিংকে অর্থ হিসেবে ব্যবহার করতে পারে, তাহলে আমরা কীভাবে তাকে একই অক্ষরটি বারবার ব্যবহার করা থেকে বিরত রাখতে পারি? যদি আমরা এই সমস্যাটি সমাধান করতে পারি, তাহলে আমরা কীভাবে অন্যদের একটি অক্ষরকে জালিয়াতি করে আলিস থেকে চুরি করা থেকে বিরত রাখতে পারি?

    তথ্যকে মুদ্রা হিসেবে ব্যবহার করে সমাধান করা অনেক সমস্যার মধ্যে এগুলি মাত্র দুটি। প্রথম সংস্করণ ইনফোকয়েনে, আমরা অ্যালিসকে একটি স্ট্রিংকে অর্থ হিসাবে ব্যবহার করার জন্য এবং এটিকে জালিয়াতি থেকে রক্ষা করার জন্য একটি উপায় খুঁজে বের করেছি। ধরুন, অ্যালিস একটি ইনফোকয়েনকে অন্য ব্যক্তির কাছে ববকে দিতে চায়। অ্যালিসকে একটি বার্তা লিখতে হবেঃ “আমাকে বলুন, অ্যালিস ববকে একটি ইনফোকয়েন দিতে চায়”। তারপর সে এই তথ্য এবং একটি প্রাইভেট কী (যা একটি 64 ডিজিটের সংখ্যা যা একটি ব্যক্তিগত কী হিসাবে র্যান্ডমভাবে উত্পন্ন হয়) একসাথে ডিজিটাল স্বাক্ষর পদ্ধতিতে স্বাক্ষর করে একটি ফলাফল তৈরি করে। এবং এই স্বাক্ষরিত ফলাফলটি সারা বিশ্বে প্রকাশ করা হবে।

    এই পদ্ধতিটি খুব বেশি বিখ্যাত নয়, তবে এর কিছু সুবিধা রয়েছে। পৃথিবীর যে কোনও ব্যক্তি এলিসের পাবলিক কী ব্যবহার করে এলিসকে স্বাক্ষরকারী ব্যক্তি হিসাবে যাচাই করতে পারে। অন্য কেউ স্বাক্ষরের ফলাফল উত্পন্ন করতে পারে না (এই স্বাক্ষরটি কেবল এলিসের মালিকানাধীন ব্যক্তিগত কী থেকে উত্পন্ন হতে পারে, মূলত উপরে উল্লিখিত ডিজিটাল স্বাক্ষরটি দেখুন), তাই এলিস হতাশ হয়ে বলতে পারে না, আমি ববকে ইনফোকয়েন দিইনি। এইভাবে, এই চুক্তিটি প্রমাণ করে যে এলিস সত্যই ববকে ইনফোকয়েন দেওয়ার জন্য ইচ্ছাকৃতভাবে ইচ্ছাকৃত ছিল। একইভাবে, অন্য কেউ এলিসের তথ্য জালিয়াতি থেকে রক্ষা করার জন্য সাইন ইনফোকয়েন তৈরি করতে পারে না। অবশ্যই, যখন এলিস তার বার্তা প্রকাশ করে, অন্যরা সম্ভবত এই বার্তার প্রতিলিপি করে, তবে এটি প্রকাশের আগে জালিয়াতি করা অসম্ভব। সুতরাং ইচ্ছাকৃতভাবে প্রমাণ করা এবং বার্তাটি প্রকাশের আগে জালিয়াতি হওয়া থেকে রক্ষা করা এই দুটি বৈশিষ্ট্য এই চুক্তির সত্যই উল্লেখযোগ্য বৈশিষ্ট্য।

    আমি এখনো বলিনি যে এই চুক্তিতে টাকা আসলে কি ছিল। আমি স্পষ্টভাবে বলতে চাইঃ টাকা আসলে এই বার্তাটি ছিল। অর্থাৎ, যে ক্রমটি স্বাক্ষর করেছিল তা প্রতিনিধিত্ব করে যে আমি আমার ববকে একটি ইনফোকয়েন দিতে চাই। পরবর্তী চুক্তিটি এই বিষয়ে অনুরূপ হবে, অর্থাৎ, সমস্ত ডিজিটাল মুদ্রা কেবলমাত্র বার্তাগুলির ক্রমবর্ধমান বিশদ।

  • ক্রমিক সংখ্যা ব্যবহার করে মুদ্রার একটি অনন্য পরিচয় প্রদান করা

আমাদের প্রথম সংস্করণ ইনফোকয়েনের সমস্যাটি হ’ল অ্যালিস ববকে একই স্বাক্ষরিত বার্তা বারবার পাঠাতে পারে। ধরুন, বব 10 টির মতো বার্তা পেয়েছে। আমার মনে হয়, অ্যালিস, ববকে একটি ইনফোকয়েন দিতে হবে। এটা কি এলিস ববকে 10 টি বিভিন্ন ইনফোকয়েন দিয়েছে? অথবা এলিস ববকে একটি ইনফোকয়েন দিয়েছে, কেবল বারবার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার বার

আমরা চাই যে infocoin এর একটি অনন্য পরিচয় থাকুক। এটির জন্য একটি ট্যাগ বা ক্রমিক নম্বর প্রয়োজন। এলিস একটি বার্তায় স্বাক্ষর করতে পারে এবং আমি এলিসকে ববকে 8740348 ক্রমিক নম্বর সহ একটি infocoin কয়েন দেব। তারপর এলিস যদি অন্য বার্তায় স্বাক্ষর করে এবং আমি এলিসকে ববকে 8770431 ক্রমিক নম্বর সহ একটি infocoin কয়েন দেব, তাহলে বব এবং অন্যরা জানতে পারবে যে এখানে দুটি ভিন্ন infocoin কয়েন রয়েছে।

এই পদ্ধতিটি কার্যকর করার জন্য, আমাদের অবশ্যই একটি বিশ্বাসযোগ্য ক্রমিক নম্বর উত্স থাকতে হবে। ক্রমিক নম্বর উত্পন্ন করার একটি উপায় হ’ল একটি ব্যাংকের মতো একটি প্রতিষ্ঠান প্রতিষ্ঠা করা। এই ব্যাংকটি ইনফোকয়েনের জন্য ক্রমিক নম্বর উত্পন্ন করবে, কার কাছে কোন ইনফোকয়েন রয়েছে তা রেকর্ড করবে এবং লেনদেনের সত্যতা যাচাই করবে।

আরো বিস্তারিতভাবে, ধরুন এলিস একটি ব্যাংকে যায় এবং বলে যে আমি আমার অ্যাকাউন্ট থেকে একটি ইনফোকয়েন নিতে চাই। ব্যাংকটি তার অ্যাকাউন্ট থেকে একটি ইনফোকয়েন কেটে দেয় এবং তার একটি নতুন ক্রমিক নম্বর দেয় যা কখনও ব্যবহৃত হয়নি, যেমন 1234567। তারপর, যখন এলিস ববকে একটি ইনফোকয়েন পাঠাতে চায়, তখন সে এই নতুন বার্তায় স্বাক্ষর করে যে আমি ববকে একটি ক্রমিক নম্বর 1234567 এর ইনফোকয়েন দিতে চাই। কিন্তু বব কেবল ইনফোকয়েনটি গ্রহণ করেনি, তবে তিনি ব্যাংকের সাথে যোগাযোগ করেছেন এবং দুটি জিনিস নিশ্চিত করেছেন, প্রথমত, ক্রমিক নম্বর 1234567 এর ইনফোকয়েনটি প্রকৃতপক্ষে এলিসের ছিল। দ্বিতীয়ত, এলিস এখনও ইনফোকয়েনটি মুছে ফেলেনি। তারপরে ব্যাংকটি তার রেকর্ড আপডেট করেছে যাতে দেখা যায় যে ইনফোকয়েনটি এখন বব এবং এলিসের নয়।

  • ### প্রত্যেককে ব্যাংক হতে দিন

উপরের সমাধানটি অনেক সম্ভাবনাময় মনে হচ্ছে। কিন্তু, আমরা আরো উচ্চাভিলাষী কিছু করতে পারি। আমরা এই চুক্তি থেকে ব্যাংককে সরিয়ে ফেলতে পারি। এইভাবে এই মুদ্রার নিজস্ব বৈশিষ্ট্যগুলি ব্যাপকভাবে পরিবর্তিত হয়। এর অর্থ এই নয় যে এই মুদ্রার জন্য একটি পৃথক সংস্থা দায়ী থাকবে না।

এই পদ্ধতিটি হল প্রত্যেককে একসাথে ব্যাংক হিসেবে কাজ করতে দেওয়া। বিশেষ করে, আমরা ধরে নিই যে প্রত্যেক ব্যক্তি যিনি infocoin ব্যবহার করেন তিনি একটি সম্পূর্ণ রেকর্ড রাখেন, যার মধ্যে রয়েছে কোন infocoin কার কাছে রয়েছে। আপনি এটিকে একটি ভাগ করা পাবলিক লাইব্রেরী হিসাবে ভাবতে পারেন, যেখানে সমস্ত infocoin এর লেনদেনের রেকর্ড রয়েছে। আমরা এটিকে ব্লকচেইন ব্লকচেইন বলি, কারণ বিটকয়েনের ভিতরে এটিই ।

এখন, ধরুন, অ্যালিস ববকে একটি ইনফোকয়েন দিতে চায়। সে বার্তাপ্রেরণকারীকে বলে, আমি অ্যালিসকে ববকে একটি ইনফোকয়েন প্যাকেজে সাইন করতে বলব, যার ক্রমিক নম্বর 1234567। এবং এই সাইন করা বার্তাপ্রেরণকারীকে বলে, বব তার নিজের ব্লকচেইন দিয়ে পরীক্ষা করে দেখবে যে, ঠিক আছে, আসলে সেই ইনফোকয়েনটিই আমার ববকে দেওয়া হয়েছে। যদি সে পরীক্ষা করে দেখে যে, সব ঠিক আছে, তাহলে সে অ্যালিসের বার্তা এবং এই ইনফোকয়েন গ্রহণের বার্তা পুরো নেটওয়ার্কে প্রকাশ করবে। তারপর সবাই তাদের ব্লকচেইন আপডেট করবে।

আমরা এখনও এই প্রশ্নের সম্মুখীন হয়েছি যে ক্রমিক নম্বরটি কোথা থেকে এসেছে, তবে এটি সমাধান করা খুব সহজ, তাই আমি পরে ব্যাখ্যা করব। আরও কঠিন সমস্যাটি হ’ল এই চুক্তিটি এলিসকে তার ইনফোকয়েন ব্যয় করার জন্য পুনরাবৃত্তি করার অনুমতি দেয়। তিনি একটি স্বাক্ষরিত বার্তা পোস্ট করতে পারেন। আমি এলিসকে ববকে একটি ক্রমিক নম্বর 1234567 এর ইনফোকয়েন কয়েন দেব, এবং একই সাথে তিনি একটি স্বাক্ষরিত বার্তা পোস্ট করতে পারেন যে আমি এলিসকে চার্লিকে একটি ক্রমিক নম্বর 1234567 এর ইনফোকয়েন কয়েন দেব। বব এবং চার্লি উভয়ই তাদের নিজস্ব ব্লকচেইন ব্যবহার করে যাচাই করে যে ইনফোকয়েনটি আসলেই এলিসের কাছ থেকে এসেছে।

আমরা এই সমস্যাটিকে ডাবল স্পেন্ডিং সমস্যা বলি। প্রথম নজরে, এই ধরনের দ্বৈততা সফল হওয়া খুব কঠিন বলে মনে হচ্ছে। সর্বোপরি, যদি এলিস প্রথমে ববকে বার্তা পাঠায় এবং তারপরে বব অন্য সকলকে বার্তা পাঠায় (চার্লি সহ) এবং অন্যরা তাদের ব্লকচেইন আপডেট করে। এই সময়ে, চার্লিকে এলিসের দ্বারা প্রতারণা করা হবে না। সুতরাং দ্বৈত ব্যয়টি কেবলমাত্র একটি স্বল্প সময়ের জন্য সম্ভব বলে মনে হয়। তবে, এটি খুব অল্প সময়ের জন্যও, এই সমস্যাটি রয়েছে। আরও খারাপ, এলিস কিছু কৌশল ব্যবহার করে এই সময়কে দীর্ঘায়িত করতে পারে। উদাহরণস্বরূপ, তিনি নেটওয়ার্ক বিশ্লেষণ সফ্টওয়্যার ব্যবহার করে বব এবং চার্লির মধ্যে কথোপকথনের দীর্ঘ সময়কালীন বিলম্ব খুঁজে পেতে পারেন। বা এমন কিছু করতে পারেন যা তাদের মধ্যে নেটওয়ার্ক সংযোগকে ইচ্ছাকৃতভাবে ব্যাহত করতে পারে। যদি তিনি এই যোগাযোগটি কিছুটা কমিয়ে দেন তবে তার দ্বৈত সাফল্য অনেক সহজ করে তুলতে পারে।

সবচেয়ে সহজ উপায় হল, যখন এলিস ববকে ইনফোকয়েন পাঠায়, ববকে একা এই লেনদেনটি পরীক্ষা করা উচিত নয়। তার পরিবর্তে, তিনি এই অপেক্ষারত লেনদেনটি পুরো ইনফোকয়েন নেটওয়ার্কে প্রকাশ করা উচিত, যাতে অন্যরা এই লেনদেনটি যুক্তিসঙ্গত কিনা তা নির্ধারণ করতে সহায়তা করতে পারে। যদি তারা সম্মিলিতভাবে সিদ্ধান্ত নেয় যে লেনদেনটি যুক্তিসঙ্গত, তবে বব এই ইনফোকয়েনটি গ্রহণ করতে পারে এবং তারপরে সবাই তাদের ব্লকচেইন আপডেট করে। এই ধরণের প্রোটোকল দ্বৈততা রোধ করতে পারে, কারণ যদি এলিস একই সময়ে বব এবং চার্লিকে একই ইনফোকয়েন পাঠাতে চায়, তবে নেটওয়ার্কের অন্যরা লক্ষ্য করবে এবং বব এবং চার্লির কাছে লেনদেনের সমস্যা সম্পর্কে বলবে, এবং লেনদেনটি অনুমোদিত হবে না।

আরো সুনির্দিষ্টভাবে বলতে গেলে, ধরুন, অ্যালিস ববকে একটি ইনফোকয়েন দিতে চায়। আগের মতই, সে একটি বার্তায় স্বাক্ষর করে, এবং আমি বলব যে অ্যালিস ববকে একটি ইনফোকয়েন কার্ডের ক্রমিক সংখ্যা 1234567 দেবে এবং ববকে একটি সুপরিচিত বার্তা স্বাক্ষর করবে। আগের মতই, বব তার নিজের ব্লকচেইন ব্যবহার করে একটি পরীক্ষা করে দেখবে যে এই মুদ্রাটি আসলে অ্যালিসের। তবে চুক্তিটি একই নয়, বব সরাসরি এটি গ্রহণ করে না, বরং অ্যালিসের বার্তাটি পুরো নেটওয়ার্কে প্রকাশ করে। নেটওয়ার্কের অন্যান্য সদস্যরা অ্যালিসের কাছে এই ইনফোকয়েন আছে কিনা তা পরীক্ষা করে দেখেন, এবং যদি তা হয় তবে তারা বার্তাটি প্রকাশ করে এবং বলে যে ঠিক আছে, অ্যালিস প্রকৃতপক্ষে ইনফোকয়েন 1234567 পেয়েছে, এবং এখন এটি ববকে প্রেরণ করা যেতে পারে। একবার যখন পর্যাপ্ত লোক এই বার্তাটি প্রকাশ করে, তখন প্রতিটি ব্যক্তি ব্লকচেইন আপডেট করে দেখায় যে 1234567 ইনফোকয়েনটি এখন বব এর

এই প্রোটোকলটি এখনও অনেক অনিশ্চিত কারণ রয়েছে। উদাহরণস্বরূপ, আপনি যদি যথেষ্ট সংখ্যক লোক এই বার্তাটি প্রকাশ করেন তবে এর অর্থ কী, কতজন ব্যক্তি যথেষ্ট? এটি পুরো ইনফোকয়েন নেটওয়ার্ক হতে পারে না, কারণ আমরা আগে থেকে জানি না যে ইনফোকয়েন নেটওয়ার্কে কে আছে। একইভাবে, এটি নির্দিষ্ট অংশের ব্যবহারকারীও হতে পারে না। আমরা এখনই এই সমস্যাগুলি পরিষ্কার করার জন্য তাড়াহুড়ো করছি না। এখানে, আমি এই লেনদেনের একটি গুরুতর সমস্যা উল্লেখ করব যা সমাধানের সাথে সাথে উপরের সমস্যাটি পরিষ্কার করতে সহায়তা করবে।

  • ### প্রুফ-অফ-ওয়ার্ক

উপরের চুক্তিতে অ্যালিস যদি ডাবল ফ্লোর করতে চায়, তাহলে তাকে পুরো ইনফোকয়েন নেটওয়ার্ক পরিচালনা করতে হবে। ধরুন সে একটি স্বয়ংক্রিয় সিস্টেম ব্যবহার করে ইনফোকয়েন নেটওয়ার্কে অনেকগুলি অ্যাকাউন্ট তৈরি করেছে, যার মধ্যে এক বিলিয়ন অ্যাকাউন্ট রয়েছে। আগের মতো, তিনি একই ইনফোকয়েনকে বব এবং চার্লির কাছে ডাবল ফ্লোর করার চেষ্টা করেছিলেন, কিন্তু যখন বব এবং চার্লি ইনফোকয়েন নেটওয়ার্ককে এই লেনদেনটি পরীক্ষা করার জন্য জিজ্ঞাসা করেছিলেন, তখন অ্যালিসের ম্যাক্সেল্ড পুরো নেটওয়ার্ককে প্লাবিত করে, বব এবং চার্লিকে বলেছিল যে তারা এই লেনদেনটি করতে পারে এবং সম্ভবত তাদের মধ্যে একজন বা দুজনকেই এই লেনদেনটি গ্রহণ করার জন্য প্রতারণা করতে পারে।

একটি বুদ্ধিমান পদ্ধতি আছে যেটা হল প্রুফ-অফ-ওয়ার্ক (Proof-of-work) পদ্ধতি। এই পদ্ধতিটি সহজবোধ্য নয়, এর জন্য দুটি ধারণার সমন্বয় প্রয়োজন, ১) কারিগরিভাবে লেনদেন যাচাই করার প্রক্রিয়াটি ব্যয়বহুল গণনা ব্যয় বহন করে; ২) তাদের এই লেনদেন যাচাই করতে সহায়তা করার জন্য পুরস্কৃত করা। লেনদেন যাচাই করার জন্য এই নেটওয়ার্কের লোকদের অনুপ্রাণিত করার জন্য পুরস্কৃত করার পদ্ধতি। লেনদেন যাচাইয়ের ব্যয় বাড়ানোর সুবিধা হল যে লেনদেন যাচাই করা আর সেই ব্যক্তির দ্বারা নিয়ন্ত্রিত নয় যার অনেক অ্যাকাউন্ট রয়েছে, বরং কেবলমাত্র তার দ্বারা সরবরাহ করা সামগ্রিক গণনা ক্ষমতা দ্বারা নিয়ন্ত্রিত। আমরা দেখব যে কিছু বুদ্ধিমান নকশার সাহায্যে আমরা প্রতারককে প্রতারণা করার উদ্দেশ্যে খুব বড় গণনা সম্পদ ব্যয় করতে হবে এবং এটিকে অবাস্তব করে তুলতে পারি।

কিন্তু সত্যিকার অর্থে কাজের প্রমাণপত্র বোঝার জন্য, আমাদের আরও বিশদ বিবরণে যেতে হবে।

কল্পনা করুন, অ্যালিস পুরো নেটওয়ার্কে একটি বার্তা প্রকাশ করেছে। কল্পনা করুন, আমি ববকে একটি ইনফোকয়েন দিতে চাই যার ক্রমিক সংখ্যা হল 1234567। কল্পনা করুন, নেটওয়ার্কের অন্যরা যখন এই বার্তাটি শুনেছে, তখন প্রত্যেকেরই এটিকে একটি মুলতুবি লেনদেনের মধ্যে যুক্ত করেছে, যা পুরো নেটওয়ার্ক দ্বারা গৃহীত হয়নি। উদাহরণস্বরূপ, নেটওয়ার্কে ডেভিড নামে একজন ব্যক্তির নিম্নলিখিত মুলতুবি লেনদেন থাকতে পারেঃ

বিটকয়েন প্রোটোকল কীভাবে কাজ করে (পর্ব ১)

ডেভিড তার নিজের ব্লকচেইন পরীক্ষা করে দেখেন যে এই লেনদেনগুলি যুক্তিসঙ্গত কিনা। তিনি এই যাচাইকরণ বার্তাটি পুরো নেটওয়ার্কে প্রচার করতে সহায়তা করতে চান। তবে এর আগে, যাচাইকরণ লেনদেনের চুক্তিতে ডেভিডকে একটি গণনা সমস্যা সমাধান করতে হবে যা একটি কাজের প্রমাণ। যদি তিনি সমস্যা সমাধান না করেন তবে নেটওয়ার্কের অন্যান্য সদস্যরা তার যাচাইকরণ গ্রহণ করবে না।

তাহলে ডেভিড কোন সমস্যার সমাধান করতে যাচ্ছেন? এটি ব্যাখ্যা করার জন্য, আমরা একটি নেটওয়ার্কের উপর প্রত্যেকের দ্বারা পরিচিত একটি নির্দিষ্ট হ্যাশ ফাংশন ব্যবহার করি এবং এটিকে প্রোটোকলের মধ্যে অন্তর্ভুক্ত করি। বিটকয়েন একটি সুপরিচিত SHA-256 হ্যাশ ফাংশন ব্যবহার করে, কিন্তু এখানে যে কোনও ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশন ব্যবহার করা যেতে পারে। আমরা ডেভিডকে এই সেটটির জন্য একটি প্রতীক্ষিত লেনদেনের চিহ্ন দিই, এটি একটি L হ্যাশ, যা পরে উল্লেখ করা যেতে পারে। এই প্রতীক্ষিত লেনদেনের গ্রুপটি ব্লকচেইনের ভিতরে একটি ব্লকের সমতুল্য।

বিটকয়েন প্রোটোকল কীভাবে কাজ করে (পর্ব ১)

ডেভিডের কাজ হবে একটি ধাপে ধাপে একটি ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপ

এবং আমরা দেখতে পাচ্ছি যে x=1 এর ক্ষেত্রেও এটা সত্য নয়।

বিটকয়েন প্রোটোকল কীভাবে কাজ করে (পর্ব ১)

তারপর আমরা চেষ্টা করি x=2, তারপর x=3,4,5… এবং অবশেষে, যখন আমরা পাই x=4350 তখন আমরা পাই x=4350

বিটকয়েন প্রোটোকল কীভাবে কাজ করে (পর্ব ১)

এই এলোমেলো সংখ্যা x আমাদেরকে একটি ফলাফল দেয় যেটি চারটি শূন্য দিয়ে শুরু হয়। এটি একটি সহজ ক্যালকুলেটর কাজ করে যা ক্যালকুলেটরকে প্রমাণ করে।

এই সমস্যাটি সমাধান করা কঠিন করে তোলে যে, কোড হ্যাশ ফাংশনের ফলাফল সর্বদা এলোমেলো হয়। ইনপুট মানের যেকোন ছোট্ট পরিবর্তন পুরো হ্যাশ ফাংশনের আউটপুটকে সম্পূর্ণ ভিন্ন করে তোলে, যা ভবিষ্যদ্বাণী করা কঠিন। সুতরাং যদি আমরা আউটপুট ফলাফলটি 10 টি 0 দিয়ে শুরু করতে চাই, তাহলে ডেভিডকে 1610 ≈ 1012 টি ভিন্ন x এর গড় প্রয়োজন হবে সঠিক মানটি খুঁজে বের করার জন্য। এটি একটি চ্যালেঞ্জিং কাজ, যার জন্য প্রচুর গণনা ক্ষমতা প্রয়োজন।

স্পষ্টতই, আমরা কাজের প্রমাণের সমস্যার অসুবিধা নিয়ন্ত্রণ করতে পারি কতটি শূন্যের প্রয়োজন তা নির্ধারণ করে। আসলে, বিটকয়েন প্রোটোকলটি উপরের কাজের প্রমাণের সামান্য সংশোধন করে সমস্যার অসুবিধার আরও ভাল নিয়ন্ত্রণ করতে পারে। আর কতগুলি শুরুর শূন্যের প্রয়োজন নেই, তবে ব্লকের হ্যাশ আউটপুটটি একটি লক্ষ্যমাত্রার চেয়ে কম বা সমান হওয়া উচিত, যা স্বয়ংক্রিয়ভাবে নিয়ন্ত্রিত হয় যাতে নিশ্চিত হয় যে বিটকয়েনের প্রতিটি ব্লক (ব্লক) গড় 10 মিনিট সময় নেয়।

ঠিক আছে, আমরা ধরে নিই যে ডেভিড ভাগ্যবান এবং সে একটি উপযুক্ত x ((nonce) খুঁজে পেয়েছে, তাকে অভিনন্দন! (সে এই উত্তরটি খুঁজে পাওয়ার জন্য পুরস্কৃত হবে) । সে ঘোষণা করবে যে সে প্রমাণ করেছে যে ব্লকের মধ্যে থাকা লেনদেনগুলি যুক্তিসঙ্গত এবং একই সাথে সে যে x এর মান খুঁজে পেয়েছে তা প্রকাশ করবে, অন্য ইনফোকয়েনের অংশগ্রহণকারীরা প্রমাণ করতে পারে যে x এর কার্যকারিতা প্রমাণিত হয়েছে। তারপর তারা তাদের ব্লকচেইন আপডেট করবে যাতে ডেভিডের দ্বারা প্রকাশিত লেনদেনগুলি অন্তর্ভুক্ত করা যায়।

কাজটি প্রমাণ করার জন্য, নেটওয়ার্কের অংশগ্রহণকারীদের একটি প্রণোদনা প্রয়োজন যাতে তারা লেনদেন যাচাই করতে সহায়তা করতে পারে। যদি এই প্রণোদনা না থাকে তবে কেউ তাদের নিজস্ব কম্পিউটার শক্তি ব্যয় করতে চায় না লেনদেন যাচাই করতে। যদি নেটওয়ার্কের অংশগ্রহণকারীরা তাদের কম্পিউটার শক্তি ব্যয় করতে না চায় তবে পুরো সিস্টেমটি কাজ করবে না। সুতরাং, আমরা তাদের কিছু ইনফোকয়েন দিয়ে যে কোনও ব্যক্তি সফলভাবে লেনদেন যাচাই করে তাকে পুরস্কৃত করতে পারি।

বিটকয়েনের প্রোটোকলে, এই যাচাইকরণ প্রক্রিয়াটিকে খনির খনি বলা হয়। প্রতিটি লেনদেনের ব্লকের সফল যাচাইকরণ বিটকয়েনকে পুরষ্কার হিসাবে দেয়। শুরুতে, এটি ছিল 50 বিটকয়েন পুরষ্কার। তবে প্রতি 210,000 যাচাইকৃত ব্লক (অর্থাৎ প্রায় প্রতি 4 বছর), পুরষ্কারটি অর্ধেক হয়ে যায়। এখন পর্যন্ত এটি কেবল একবার ঘটেছে, অর্থাৎ এখন একটি ব্লক যাচাই করার জন্য পুরষ্কারটি 25 বিটকয়েন। অর্ধেক হ্রাস প্রক্রিয়াটি প্রায় 2140 অবধি চলবে। তখন খনির পুরষ্কারটি 10-8 বিটকয়েন পর্যন্ত হ্রাস পাবে।

প্রুফ-অফ-ওয়ার্ককে আপনি একটি প্রতিযোগিতামূলক যাচাইকরণ লেনদেনের প্রক্রিয়া হিসেবে বিবেচনা করতে পারেন। প্রতিটি অংশগ্রহণকারী কম্পিউটার শক্তির একটি অংশ ব্যয় করে। একটি খনির বিজয়ী হওয়ার সম্ভাবনা প্রায় তাদ