কিভাবে SHA256 এবং মাইনিং বিটকয়েন নেটওয়ার্ক PlatoBlockchain ডেটা বুদ্ধিমত্তা রক্ষা করে। উল্লম্ব অনুসন্ধান. আ.

কিভাবে SHA256 এবং মাইনিং বিটকয়েন নেটওয়ার্ককে রক্ষা করে

কিভাবে বিটকয়েন শক্তি দ্বারা রক্ষা করা হয়? এবং একটি nonce কি? এই প্রশ্ন এবং আরও অনেক কিছুরই উত্তর আছে!

খনির কাজ কিভাবে আকর্ষণীয়. যখন আমি লোকেদের কাছে এটি ব্যাখ্যা করি, তখন তাদের মন বিস্ফোরিত হওয়ার মুহুর্তে আমি তাদের মুখ দেখতে উপভোগ করি। আমি এখানে এটি ব্যাখ্যা করব, কিন্তু শুধু জানি, আমি আপনার সমস্ত মুখ কল্পনা করছি যেমন আপনার মনের ঘা!

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

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

হ্যাশ ফাংশন

আসুন একটি পরিকল্পিত দিয়ে শুরু করি যা আমি নীচে ব্যাখ্যা করব...

কিভাবে SHA256 এবং মাইনিং বিটকয়েন নেটওয়ার্ক PlatoBlockchain ডেটা বুদ্ধিমত্তা রক্ষা করে। উল্লম্ব অনুসন্ধান. আ.
(গ্রাফিক/@jirols_btc)

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

প্রথম সিকিউর হ্যাশ অ্যালগরিদম (SHA) ছিল মূলত এনএসএ দ্বারা উন্নত এবং এখন অনেকগুলি ভিন্ন সংস্করণ রয়েছে (বিটকয়েন SHA256 ব্যবহার করে)। এটি একটি খুব জটিল কিন্তু নির্দিষ্ট উপায়ে ডেটা কীভাবে ঝাঁকুনি দেওয়া যায় তার জন্য নির্দেশাবলীর একটি সেট। নির্দেশাবলী একটি গোপন নয় এবং এটি হাত দ্বারা করা সম্ভব, কিন্তু এটি খুব ক্লান্তিকর।

SHA256-এর জন্য, আউটপুট একটি 256-বিট নম্বর (একটি কাকতালীয় নয়)।

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

যদিও ফাংশনটি একটি 256-সংখ্যার বাইনারি নম্বর প্রদান করে, মানটি সাধারণত হেক্সাডেসিমেল বিন্যাসে প্রকাশ করা হয়, 64 সংখ্যা দীর্ঘ।

হেক্সাডেসিমেল মানে হল 10টি সম্ভাব্য চিহ্নের পরিবর্তে যেমন আমরা দশমিক (0 থেকে 9) ব্যবহার করি, আমাদের 16টি চিহ্ন রয়েছে (যে দশটি আমরা ব্যবহার করি, 0-9, প্লাস অক্ষর a, b, c, d, e, এবং f; যার মান 11 থেকে 15)। একটি উদাহরণ হিসাবে, হেক্সাডেসিমেলে দশমিক 15 এর মান উপস্থাপন করতে, আমরা শুধু "f" লিখি এবং এটি একই মান। আপনার যদি আরও বিশদ বিবরণের প্রয়োজন হয় তবে দ্রুত Google অনুসন্ধানের মাধ্যমে প্রচুর তথ্য অনলাইনে উপলব্ধ রয়েছে৷

SHA256 কে অ্যাকশনে দেখাতে, আমি 1 নম্বরটি নিতে পারি এবং এটিকে একটি দিয়ে চালাতে পারি অনলাইন হ্যাশ ক্যালকুলেটর, এবং এই আউটপুটটি পেয়েছি (হেক্সাডেসিমেলে):

কিভাবে SHA256 এবং মাইনিং বিটকয়েন নেটওয়ার্ক PlatoBlockchain ডেটা বুদ্ধিমত্তা রক্ষা করে। উল্লম্ব অনুসন্ধান. আ.

উপরের বাক্সটি ইনপুট, নীচের বাক্সটি ফলস্বরূপ আউটপুট।

মনে রাখবেন যে বিশ্বের সমস্ত কম্পিউটার একই আউটপুট তৈরি করবে, যদি ইনপুট একই হয় এবং SHA256 ফাংশন ব্যবহার করা হয়।

হেক্সাডেসিমেল সংখ্যা আউটপুট, যদি দশমিকে রূপান্তরিত হয়, (লক্ষ্য করুন এটি লিখতে আরও সংখ্যা লাগে):

48,635,463,943,209,834,798,109,814,161,294,753,926,839,975,257,569,795,305,637,098,542,720,658,922,315

এবং বাইনারিতে রূপান্তরিত হল:

11010111000011010110010011100111111111100110100111111001110000110011101011010111000000001001110111111110101101000111111010101110100011110101101101001001110101010100010001011110001110101001001110000000001111001010010110111011011011110000111010110110100101111010111001101011100110101110011010111001101011100110101110011010111001101011100111

শুধু আগ্রহের বাইরে, এখানে একই মান আছে বেস 64.

1w1k5/5p+cM61wCd/rR+ro9bSdVEXjqTgDylu28OtpY=

মনে রাখবেন যে SHA256-এর সবচেয়ে ছোট মানটি শূন্য হতে পারে, কিন্তু LENGTH এখনও 256 বিট। এইভাবে শূন্য প্রতিনিধিত্ব করা হয়:

0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

এবং সবচেয়ে বড় সম্ভাব্য মান হল:

1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

দশমিকে, এটি হল:

115,792,089,237,316,195,423,570,985,008,687,907,853,269,984,665,640,564,039,457,584,007,913,129,639,935

হেক্সাডেসিমেলে, এটি হল:

ফফফফফফফফফফফফফফফফফফফফফফফফফফফফফফফফফফফফফ

নোট করুন ঠিক 64 F এর আছে।

হেক্সাডেসিমেলে শূন্যকে কেবল একটি একক শূন্য হিসাবে লেখা যেতে পারে, তবে হ্যাশ আউটপুটের জন্য, একটি নির্দিষ্ট আকারের আউটপুটের প্রয়োজনে এটির মধ্যে 64টি রয়েছে:

0000000000000000000000000000000000000000000000000000000000000000

এখানে হ্যাশ ফাংশন সম্পর্কে কিছু তথ্যের সংক্ষিপ্তসার রয়েছে যা প্রশংসা করার জন্য গুরুত্বপূর্ণ:

  • আউটপুট থেকে ইনপুট নির্ধারণ করা যায় না
  • ইনপুট যে কোনো দৈর্ঘ্য হতে পারে
  • আউটপুট সবসময় একই দৈর্ঘ্য
  • আপনি একই ইনপুট প্রদান করলে আউটপুট সর্বদা অভিন্নভাবে পুনরুত্পাদন করা হবে।
  • ইনপুটে যেকোনো পরিবর্তন, তা যতই ছোট হোক না কেন, একটি অপ্রত্যাশিত এবং ব্যাপকভাবে ভিন্ন আউটপুট সৃষ্টি করবে
  • আউটপুট আপাতদৃষ্টিতে এলোমেলো, কিন্তু প্রকৃতপক্ষে নির্ধারক (অর্থাৎ এটি গণনা করা এবং পুনরুত্পাদনযোগ্য)
  • আউটপুট ভবিষ্যদ্বাণী করা যাবে না. এটি শুধুমাত্র গণনা করা যেতে পারে এবং এটি একটি কম্পিউটার দ্বারা পরিমাপযোগ্য পরিমাণে কাজ করে (এবং পেন্সিল এবং কাগজ সহ ঘন্টা! এটি করবেন না।)

এখন আপনি একটি হ্যাশ কি এর প্রাথমিক ধারণাটি বুঝতে পেরেছেন, আপনি বিটকয়েন মাইনিং কীভাবে কাজ করে তার ব্যাখ্যা বুঝতে পারেন।

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

খনন

আমি কাজের একটি ধারণা প্রদর্শন করে শুরু করব, যেখান থেকে বিটকয়েনের "প্রুফ-অফ-ওয়ার্ক" আসে।

অনলাইন হ্যাশ ক্যালকুলেটরে যান এবং টাইপ করুন "আমি 50 বিটকয়েন তৈরি করছি এবং নিজেকে এই পরিমাণ অর্থ প্রদান করছি।"

সম্পূর্ণ স্টপ সহ, কেস সংবেদনশীল, হুবহু টাইপ করুন। আপনি এই আউটপুট পেতে হবে:

কিভাবে SHA256 এবং মাইনিং বিটকয়েন নেটওয়ার্ক PlatoBlockchain ডেটা বুদ্ধিমত্তা রক্ষা করে। উল্লম্ব অনুসন্ধান. আ.

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

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

"Nonce" শব্দটি "শুধুমাত্র একবার ব্যবহৃত সংখ্যা" থেকে উদ্ভূত হওয়ার কথা, কিন্তু আমি এটি দেখতে পাচ্ছি না।

নিচে লক্ষ্য করুন কিভাবে শুধু "Nonce:" যোগ করলে একটি অতিরিক্ত ফিল্ড হেডিং হ্যাশ আউটপুট পরিবর্তন করে।

কিভাবে SHA256 এবং মাইনিং বিটকয়েন নেটওয়ার্ক PlatoBlockchain ডেটা বুদ্ধিমত্তা রক্ষা করে। উল্লম্ব অনুসন্ধান. আ.

আউটপুট এখনও "0" দিয়ে শুরু হয় না, তাই আসুন কিছু বাজে কথা যোগ করি (আমি একটি অর্থহীন "x" যোগ করেছি):

কিভাবে SHA256 এবং মাইনিং বিটকয়েন নেটওয়ার্ক PlatoBlockchain ডেটা বুদ্ধিমত্তা রক্ষা করে। উল্লম্ব অনুসন্ধান. আ.

এটি এখনও শূন্য দিয়ে শুরু হয় না। হ্যাশ শূন্য দিয়ে শুরু না হওয়া পর্যন্ত আমি আরও কিছু অক্ষর চেষ্টা করেছি:

কিভাবে SHA256 এবং মাইনিং বিটকয়েন নেটওয়ার্ক PlatoBlockchain ডেটা বুদ্ধিমত্তা রক্ষা করে। উল্লম্ব অনুসন্ধান. আ.

আমরা শুরু করছি. এখন, বিটকয়েনের এই প্রেন্ড সংস্করণের জন্য আমি যে নির্বিচারে নিয়ম সেট করেছি, ইনপুট উইন্ডোর পাঠ্যটি একটি বৈধ ব্লক যার একটি একক লেনদেন আমাকে 50 বিটকয়েন প্রদান করে।

নোট করুন যে বিটকয়েন ব্লকগুলি মূলত একটি খাতার পৃষ্ঠা। প্রতিটি ব্লক সংখ্যাযুক্ত এবং ব্যবহারকারীদের মধ্যে লেনদেনের তালিকা সহ নতুন বিটকয়েন তৈরি করে। এই রেকর্ড যেখানে বিটকয়েন বাস করে।

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

কিভাবে SHA256 এবং মাইনিং বিটকয়েন নেটওয়ার্ক PlatoBlockchain ডেটা বুদ্ধিমত্তা রক্ষা করে। উল্লম্ব অনুসন্ধান. আ.

হ্যাশ একটি "f" দিয়ে শুরু হয় "0" নয়, তাই আমাকে নন্স ফিল্ডে কিছু মান চেষ্টা করতে হবে:

কিভাবে SHA256 এবং মাইনিং বিটকয়েন নেটওয়ার্ক PlatoBlockchain ডেটা বুদ্ধিমত্তা রক্ষা করে। উল্লম্ব অনুসন্ধান. আ.

এই সময় আমি ভাগ্যবান ছিলাম এবং মাত্র চারটি চেষ্টা করার পর একটি উপযুক্ত নন্স পেয়েছি। মনে রাখবেন যে প্রথম ব্লকের জন্য এটি 22টি চেষ্টা করেছে। এখানে কিছু এলোমেলোতা রয়েছে, তবে সাধারণত একটি বৈধ হ্যাশ খুঁজে পাওয়া খুব কঠিন নয় যদি আমরা যা পাওয়ার চেষ্টা করছি তা হল এক শূন্য। প্রথম হ্যাশ ডিজিটের জন্য 16টি সম্ভাব্য মান রয়েছে তাই আমার কাছে 1 টির মধ্যে 16টি সম্ভাবনা রয়েছে যে আমি ইনপুট ফিল্ডে যে কোনো পরিবর্তন করলে প্রথম হ্যাশ ডিজিটটি "0" হবে।

মনে রাখবেন যে বিটকয়েনের ক্ষেত্রগুলি এই রকম, তবে আরও বিশদ রয়েছে যা আমি যোগ করিনি। এটি শুধুমাত্র একটি বিন্দুকে চিত্রিত করার জন্য, বিটকয়েন ব্লকটি দেখতে কেমন তা বিশদ বিবরণের অগত্যা নয়।

আমি পরবর্তী ব্লকে একটি সময় ক্ষেত্র যোগ করব কারণ আমার পরবর্তী "কঠিন সামঞ্জস্য" ব্যাখ্যা করার জন্য এটি প্রয়োজন:

কিভাবে SHA256 এবং মাইনিং বিটকয়েন নেটওয়ার্ক PlatoBlockchain ডেটা বুদ্ধিমত্তা রক্ষা করে। উল্লম্ব অনুসন্ধান. আ.

উপরে তিন নম্বর ব্লক। এটি পূর্ববর্তী ব্লকের হ্যাশ অন্তর্ভুক্ত করে এবং এখন আমি সময় অন্তর্ভুক্ত করতে শুরু করেছি। আমি যে ননসটি খুঁজে পেয়েছি তা সফলভাবে হ্যাশটি শূন্য দিয়ে শুরু করেছে (হ্যাশ লক্ষ্য পূরণ না হওয়া পর্যন্ত আমি একটি "1" টাইপ করতে থাকলাম)।

এখানে এখন যথেষ্ট আছে যে আমি বিটকয়েন ব্লকচেইন এবং মাইনিং সম্পর্কে কয়েকটি আকর্ষণীয় ধারণা ব্যাখ্যা করা শুরু করতে পারি।

এ ব্লক জয়

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

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

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

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

নোডস: আমি "বৈধ" ব্লক উল্লেখ করছি। তাতে কি? কে চেক করছে? বিটকয়েন নোড হয়. একটি বিটকয়েন নোড এখন পর্যন্ত ব্লকচেইনের একটি কপি রাখে এবং নতুন ব্লকগুলি নিয়মের মধ্যে আছে কিনা তা পরীক্ষা করতে এবং যেগুলি নেই সেগুলি প্রত্যাখ্যান করার জন্য নিয়মগুলির একটি সেট অনুসরণ করে। নিয়ম কই? কোডে। একটি কম্পিউটার যা বিটকয়েন কোড ডাউনলোড করে একটি নোড।

অসুবিধা সামঞ্জস্য

নতুন বিটকয়েন ব্লক তৈরি করার গড় সময় প্রতি 2016 ব্লকের প্রতিটি নোড দ্বারা গণনা করা হয় (এজন্য সময় ক্ষেত্রের প্রয়োজন হয়)। এটি প্রোটোকল এবং নিয়মের অংশ যা নোডগুলি অনুসরণ করে। বৈধ হওয়ার জন্য প্রতিটি ব্লক হ্যাশের সাথে শুরু হওয়া আবশ্যক শূন্যের সংখ্যা সামঞ্জস্য করার জন্য একটি সূত্র প্রয়োগ করা হয়।

কঠোরভাবে, এটি সামঞ্জস্য করা শূন্যের সংখ্যা নয় তবে হ্যাশের একটি লক্ষ্য মান নীচে থাকতে হবে, তবে অগ্রণী শূন্যের চিন্তাভাবনা ব্যাখ্যা করা সহজ।

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

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

দুটি শূন্য পেতে আমাকে একটু বেশি সময় লাগবে, কিন্তু আমরা কল্পনা করছি যে আমার সাথে আরও অনেক লোক প্রতিদ্বন্দ্বিতা করছে তাই যে কেউ একটি ব্লক খুঁজে পেতে মোট সময় টার্গেটে রাখা হয়েছে।

এখানে পরবর্তী ব্লক আছে:

কিভাবে SHA256 এবং মাইনিং বিটকয়েন নেটওয়ার্ক PlatoBlockchain ডেটা বুদ্ধিমত্তা রক্ষা করে। উল্লম্ব অনুসন্ধান. আ.

সময় লক্ষ্য করুন. আগের ব্লক থেকে 10 মিনিটেরও বেশি সময় কেটে গেছে (আমি শুধু প্রদর্শন করার জন্য সময় তৈরি করেছি)। 10-মিনিটের লক্ষ্য সম্ভাব্য; পরবর্তী ব্লক কখন পাওয়া যাবে তা সঠিকভাবে জানা যায় না।

দুটি শূন্য দেখানো পর্যন্ত আমি এক মিনিটের জন্য কীবোর্ডে এলোমেলো করেছিলাম। এটি একটি একক শূন্য খুঁজে পাওয়ার চেয়ে দ্রুতগতিতে কঠিন ছিল। পরপর দুটি শূন্য খুঁজে পাওয়ার সুযোগ 1 টির মধ্যে 162, অথবা 1 এর মধ্যে 256টি সুযোগ।

যদি আরও বেশি লোক নতুন বিটকয়েনের জন্য মাইনিং এবং প্রতিযোগিতায় যোগদান করে, তাহলে শেষ পর্যন্ত তিনটি শূন্যের প্রয়োজন হবে।

আমি শুধু শেষ আসল বিটকয়েন ব্লকটি দেখেছি, যেটিতে আগের ব্লকের হ্যাশ রয়েছে। হ্যাশ ছিল:

000000000000000000084d31772619ee08e21b232f755a506bc5d09f3f1a43a1

যে 19 শূন্য! 1-এর মধ্যে 16 আছে19 প্রতিটি প্রচেষ্টার সাথে এই ধরনের একটি ব্লক খুঁজে পাওয়ার সুযোগ। বিটকয়েন মাইনাররা প্রতি সেকেন্ডে অনেক চেষ্টা করে, সম্মিলিতভাবে সারা বিশ্বে।

প্রতি সেকেন্ডে প্রচেষ্টার সংখ্যা "হ্যাশ রেট" হিসাবে পরিচিত। বর্তমানে, আনুমানিক বিশ্ব হ্যাশ হার প্রতি সেকেন্ডে মাত্র 200 মিলিয়ন টেরাহাশের নিচে (এক টেরহাশ হল একটি ট্রিলিয়ন হ্যাশ)। প্রতি সেকেন্ডে অনেক প্রচেষ্টার সাথে, প্রতি 19 মিনিটে 10টি শূন্য দিয়ে শুরু একটি হ্যাশ সহ একটি ব্লক পাওয়া যায়।

ভবিষ্যতে, যত বেশি খনি শ্রমিক যোগ দেবে, হ্যাশের হার বাড়বে, ব্লকগুলি দ্রুত খুঁজে পাওয়া যাবে, এবং বিটকয়েনের অসুবিধা 20 শূন্যের প্রয়োজনের সাথে সামঞ্জস্য করবে, যা ব্লকের উৎপাদনকে প্রায় 10 মিনিটের নিচে ঠেলে দেবে।

হালভিং

যখন বিটকয়েন প্রথম শুরু হয়েছিল, তখন প্রতি ব্লকে 50টি বিটকয়েন তৈরি হয়েছিল। বিটকয়েন ব্লকচেইনের নিয়মগুলি নির্দিষ্ট করে যে প্রতি 210,000 ব্লকের পরে পুরস্কারটি অর্ধেক কাটা হবে। এই মুহূর্তটি "অর্ধেক" হিসাবে পরিচিত এবং মোটামুটিভাবে প্রতি চার বছরে ঘটে। অর্ধেক, 10 মিনিটের ব্যবধানে ব্লক রাখার অসুবিধার সমন্বয়ের সাথে মিলিত হওয়ার অর্থ হল 2140 সালের দিকে, ব্লকের পুরস্কার হবে 0.00000001, বা 1 satoshi, একটি বিটকয়েনের ক্ষুদ্রতম একক, এবং এটি আর অর্ধেক করা যাবে না। মাইনিং বন্ধ হবে না, কিন্তু ব্লক পুরস্কার শূন্য হবে। সেই মুহূর্ত থেকে, সামনের দিকে কোন নতুন বিটকয়েন তৈরি হবে না এবং বিটকয়েনের সংখ্যা গাণিতিকভাবে গণনাযোগ্য এবং 21 মিলিয়ন কয়েনের কাছাকাছি। এভাবেই টোটাল সাপ্লাই জানা যায়—এটা প্রোগ্রাম্যাটিকভাবে সেট করা হয়।

এমনকি ব্লক পুরষ্কার শূন্য থাকা সত্ত্বেও, খনি শ্রমিকদের লেনদেন ফি অর্জনের জন্য কাজ চালিয়ে যেতে উৎসাহিত করা হবে।

ঠিক কিভাবে ব্লক পুরস্কার অর্ধেক কাটা হয়? এটা নোড দ্বারা অনুষ্ঠিত কোড. তারা 210,000 এর পরে যেকোন নতুন ব্লক প্রত্যাখ্যান করতে জানে যেখানে একজন খনি 25 বিটকয়েনের বেশি অর্থ প্রদান করে। এবং তারপর 420,000 এর পরে যেকোন ব্লক প্রত্যাখ্যান করতে যেখানে একজন খনি শ্রমিক নিজেকে 12.5 বিটকয়েনের বেশি অর্থ প্রদান করে, ইত্যাদি।

লেনদেন খরচ

এখন পর্যন্ত আমি শুধুমাত্র একটি একক লেনদেনের সাথে কাল্পনিক ব্লকগুলি দেখিয়েছি — সেই লেনদেন যেখানে খনিকে পুরষ্কার দেওয়া হয়। একে "কয়েনবেস লেনদেন" বলা হয়।

এটি কোম্পানির নামে নামকরণ করা হয়নি, Conbase, মানে Coinbase। কোম্পানী কয়েনবেস লেনদেনের পরে নিজের নামকরণ করেছে, অন্যভাবে নয়। বিভ্রান্ত হবেন না।

কয়েনবেস লেনদেন ছাড়াও, একে অপরকে অর্থ প্রদানের লেনদেন রয়েছে। এখানে একটি কল্পিত উদাহরণ:

কিভাবে SHA256 এবং মাইনিং বিটকয়েন নেটওয়ার্ক PlatoBlockchain ডেটা বুদ্ধিমত্তা রক্ষা করে। উল্লম্ব অনুসন্ধান. আ.

আমি এই সময় একটি আসল হ্যাশ খুঁজে পেতে বিরক্ত করিনি (এটি আসলে 200,001 ব্লকে রিপোর্ট করা আসল হ্যাশ)। আমি শুধু মজা করার জন্য তৈরি করেছি, কিন্তু লক্ষ্য করুন একটি বার্তা সেখানে এম্বেড করা যেতে পারে।

দিনের সংবাদপত্রের শিরোনামের পরে প্রথম বিটকয়েন ব্লকে (দ্য জেনেসিস ব্লক) "ব্যাঙ্কগুলির জন্য দ্বিতীয় বেলআউটের তীরে চ্যান্সেলর" শব্দগুলি বিখ্যাতভাবে সাতোশিস অন্তর্ভুক্ত করেছিলেন।

কিভাবে SHA256 এবং মাইনিং বিটকয়েন নেটওয়ার্ক PlatoBlockchain ডেটা বুদ্ধিমত্তা রক্ষা করে। উল্লম্ব অনুসন্ধান. আ.

এখানে পয়েন্ট হল যে 132টি লেনদেন অন্তর্ভুক্ত রয়েছে (সবগুলি দেখানো হয়নি)। লেনদেন দেখুন #132 – 2.3 একটি ঠিকানা থেকে বিটকয়েন অন্য ঠিকানায় 2.1 বিটকয়েন এবং দ্বিতীয় ঠিকানায় 0.1 বিটকয়েন (আমি ঠিকানার দৈর্ঘ্য ছোট করতে ডট ব্যবহার করেছি)।

সুতরাং 2.3 বিটকয়েনের একটি উৎস মোট 2.2 বিটকয়েন (2.2 + 0.1 = 2.2) প্রদান করে। 0.1 বিটকয়েন অনুপস্থিত আছে? না, পার্থক্যটি খনির দ্বারা দাবি করা হয়েছে, আমি ব্যাখ্যা করব।

খনি শ্রমিককে ব্লক পুরষ্কার হিসাবে নিজেকে 25 বিটকয়েন প্রদান করার অনুমতি দেওয়া হয়েছে (কারণ 210,000 ব্লক পাস হয়েছে তাই পুরষ্কারটি 50 থেকে 25 এ অর্ধেক করা হয়েছে)। কিন্তু আপনি যদি দেখেন, কয়েনবেস লেনদেন 27.33880022। অতিরিক্ত 2.33880022 বিটকয়েন ব্লকের অন্যান্য 132টি লেনদেন থেকে আসে – ইনপুটগুলি সমস্ত আউটপুটগুলির থেকে সামান্য বেশি হবে৷ তাই খনি শ্রমিক এই "পরিত্যক্ত" বিটকয়েনটিকে নিজের কাছে অর্থপ্রদান হিসাবে দাবি করতে পারে। এগুলি খনিকে দেওয়া লেনদেনের ফি হিসাবে বিবেচনা করা হয়।

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

তাই যখন ব্লকের পুরষ্কার ক্রমাগতভাবে কমতে থাকে, প্রতি চার বছরে অর্ধেক হয়ে যায় এবং শেষ পর্যন্ত শূন্য হয়, তখনও খনি শ্রমিকরা এইভাবে বেতন পান।

কেউ কেউ পরামর্শ দিয়েছেন যে একদিন খনি শ্রমিকদের জন্য পুরষ্কার যথেষ্ট হবে না এবং বিটকয়েন ব্যর্থ হবে। এই উদ্বেগ পুঙ্খানুপুঙ্খভাবে ডিবাঙ্ক করা হয়েছে এবং আমি এখানে এটি পুনরাবৃত্তি করব না।

একটি ব্লক পুনরায় লেখা যাবে?

এটি অত্যন্ত অসম্ভাব্য এবং কেন তা বোঝার মতো। তাহলে আপনি বুঝতে পারবেন কেন বিটকয়েন লেনদেন অপরিবর্তনীয় (অপরিবর্তনীয়)।

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

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

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

দুই খনি শ্রমিক একই সময়ে একটি ব্লক খুঁজে পেলে কী হবে?

এটি আসলে প্রতিবার এবং তারপরে ঘটে এবং এটি সর্বদা নিজেকে নিম্নরূপ সাজায়:

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

ব্যাখ্যা করার জন্য, আসুন একটি ব্লককে নীল এবং অন্যটিকে লাল বলি (তাদের কোন রঙ নেই, শুধু আমার সাথে সহ্য করুন)।

খনি শ্রমিকরা তারপর পরবর্তী ব্লকে কাজ করে, কিন্তু কোন ব্লক থেকে তারা চেইন প্রসারিত করবে তা নিয়ে একটি বিভাজন থাকবে।

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

সমস্ত খনি শ্রমিক যারা লাল চেইনে কাজ করছিলেন তারা বন্ধ হয়ে যাবে এবং এখন দীর্ঘ চেইনে কাজ করবে, যা নীল চেইন। লাল চেইন মারা গেছে।

উপাঙ্গ

কেন একটি রানার আপ মাইনার ব্লক অবৈধ

ধরুন ব্লক 700,000 এইমাত্র MINER-A দ্বারা খনন করা হয়েছে। ত্রিশ সেকেন্ড পরে, MINER-B ব্লক 700,000 এর একটি ভিন্ন সংস্করণও তৈরি করেছে। যখন MINER-B এই বিকল্পটি সম্প্রচার করে, প্রতিটি নোড এটিকে প্রত্যাখ্যান করতে চলেছে কারণ তারা ইতিমধ্যেই MINER-A দ্বারা ব্লকটি দেখেছে এবং গ্রহণ করেছে৷ আরও কি, সেই 30 সেকেন্ডের মধ্যে, ধরা যাক যে MINER-C ব্লক 700,001 খুঁজে পেয়েছে। প্রদত্ত যে MINER-B-এর প্রতিযোগী 700,000 তম ব্লকটি বর্তমান চেইনকে প্রসারিত করে না (যা 700,001 পর্যন্ত), এটিও সেই কারণে প্রত্যাখ্যান করা হয়।

আরও মজার বিষয় হল যে MINER-B যদি 700,001-এর একটি প্রতিযোগী সংস্করণের পরিবর্তে ব্লক 700,000-এ কাজ করত, তাহলে তাদের একটি বৈধ ব্লক 700,001 খনির ঠিক ততটাই সুযোগ থাকত যতটা তাদের অবশেষে একটি বিকল্প ব্লক 700,000 খুঁজে বের করতে হবে। তাই যে কোনো খনি শ্রমিক একটি নতুন ব্লক দেখার সাথে সাথে তাদের উচিত পরবর্তী ব্লকে তাদের প্রচেষ্টা সেট করা।

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

এটি আরমান দ্য পরমানের একটি অতিথি পোস্ট। প্রকাশিত মতামতগুলি সম্পূর্ণরূপে তাদের নিজস্ব এবং অগত্যা বিটিসি ইনকর্পোরেটেডের মতামতগুলিকে প্রতিফলিত করে না বিটকয়েন ম্যাগাজিন.

সময় স্ট্যাম্প:

থেকে আরো বিটকয়েন ম্যাগাজিন