স্মার্ট চুক্তি: ভাল, খারাপ এবং অলস

কেন ব্যক্তিগত ব্লকচেইন কোড চালানোর জন্য আগ্রহী হবে না

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

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

তাহলে কি প্রাইভেট ব্লকচেইনে স্মার্ট চুক্তির ভবিষ্যৎ উজ্জ্বল? ভাল, ধরনের, কিন্তু সত্যিই না. আপনি দেখুন, সমস্যা হল:

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

তাই ভাল ধারণা কি? (a) একটি কম্পিউটার প্রোগ্রাম হিসাবে ব্যবসায়িক যুক্তি প্রকাশ করা, (খ) সেই ঘটনাগুলির প্রতিনিধিত্ব করা যা সেই যুক্তিটিকে প্রোগ্রামে বার্তা হিসাবে ট্রিগার করে, (গ) কে বার্তাগুলি পাঠিয়েছে তা প্রমাণ করার জন্য ডিজিটাল স্বাক্ষর ব্যবহার করে এবং (ঘ) উপরের সমস্তটি স্থাপন করা একটি ব্লকচেইন।

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

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

Ethereum বোঝা

Ethereum-স্টাইলের স্মার্ট চুক্তিগুলি বোঝার জন্য, আমাদের বিটকয়েন দিয়ে শুরু করতে হবে, প্রথম (এবং এখনও সবচেয়ে জনপ্রিয়) পাবলিক ব্লকচেইন। বিটকয়েন ব্লকচেইনটি মূলত শুধুমাত্র একটি জিনিসের জন্য ডিজাইন করা হয়েছিল: বিটকয়েন কারেন্সি এক মালিক থেকে অন্য মালিকে স্থানান্তর করা। কিন্তু একবার এটি চালু হয়ে গেলে, লোকেরা লেনদেনে "মেটাডেটা" এম্বেড করা শুরু করে অন্যান্য উদ্দেশ্যে, যেমন ডিজিটাল সম্পদ এবং নথি নোটারাইজেশন. যদিও কিছু বিটকয়েনার যুদ্ধ এই অ্যাপ্লিকেশন, একটি অফিসিয়াল মেকানিজম মেটাডেটা ব্যবহারের জন্য মার্চ 2014 সালে চালু করা হয়েছিল দ্রুত বর্ধমান সেইথেকে.

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

এর মধ্যে কয়েকটি প্রকল্পের সাথে জড়িত থাকার কারণে, ভাত্তিক বুরিরিন একটি সহজ কিন্তু উজ্জ্বল প্রশ্ন উত্থাপন করেছেন: প্রচুর অ্যাপ্লিকেশন-নির্দিষ্ট ব্লকচেইনের পরিবর্তে, কেন একটি একক পাবলিক ব্লকচেইন নেই যা করার জন্য প্রোগ্রাম করা যেতে পারে আমরা যা চাই? এই über-blockchain অসীমভাবে প্রসারিত হবে, শুধুমাত্র যারা এটি ব্যবহার করছেন তাদের কল্পনা দ্বারা সীমাবদ্ধ। ক্রিপ্টো-উৎসাহীদের বিশ্ব প্রায় সর্বসম্মতভাবে এই শক্তিশালী ধারণা দ্বারা বিশ্বাসী ছিল। এবং তাই, সঙ্গে $18 মিলিয়ন ক্রাউড ফান্ডিং এবং মহান উত্তেজনা, Ethereum জন্ম হয়.

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

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

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

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

এটা ভেঙে নিচে

এখন যেহেতু আমরা জানি কীভাবে ইথেরিয়াম স্মার্ট চুক্তি কাজ করে, আমরা সেগুলিকে পাঁচটি উপাদান অংশে বিভক্ত করতে পারি:

  1. কম্পিউটার প্রোগ্রাম হিসাবে ব্যবসা যুক্তি প্রকাশ.
  2. অনুষ্ঠানের বার্তা হিসাবে সেই যুক্তিকে ট্রিগার করে এমন ঘটনাগুলিকে উপস্থাপন করা।
  3. কে বার্তা পাঠিয়েছে তা প্রমাণ করতে ডিজিটাল স্বাক্ষর ব্যবহার করা।
  4. একটি ব্লকচেইনে প্রোগ্রাম, বার্তা এবং স্বাক্ষর রাখা।
  5. প্রতিটি নোডে প্রতিটি বার্তার জন্য প্রতিটি প্রোগ্রাম নির্বাহ করা।

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

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

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

গণনা নিয়ে ঝামেলা

যদি এটা কোন ব্যাপার না যেখানে একটি গণনা সঞ্চালিত হয়, কেন না এটা সব জায়গায় করবেন? ওয়েল, এটা যে সক্রিয় আউট কম্পিউটার প্রোগ্রাম অপ্রত্যাশিত. তারা দেখতে যতই নির্দোষ হোক না কেন, দৌড়াতে তাদের অনেক সময় লাগতে পারে। এবং কখনও কখনও, তারা চিরতরে ছুটে যায়। নিম্নলিখিত ক্লাসিক উদাহরণ বিবেচনা করুন (যা হিসাবে পরিচিত LCG):

  1. সেট x আপনার পছন্দের একটি একক সংখ্যার সংখ্যায়
  2. সেট y থেকে 123*x+567
  3. সেট x শেষ দুই অঙ্ক পর্যন্ত y, আমি y মডিউল 100
  4. If x এর চেয়ে বেশি 2 তারপর ধাপ 2 এ ফিরে যান
  5. অন্যথায় থামুন এবং এর মান আউটপুট করুন x

যথেষ্ট সহজ, তাই না? তাই এখানে আপনার জন্য একটি প্রশ্ন: এই প্রোগ্রাম কি কখনও শেষ হবে? বা এটি একটি আটকে যাবে অগণিত চক্র? তাই নিশ্চিত না? আচ্ছা আমি তোমাকে তোমার দুর্দশা থেকে দূরে রাখি: এটি x এর প্রাথমিক মানের উপর নির্ভর করে.

If x is 0, 1, 2, 5, 6, 7 or 8, প্রোগ্রাম মোটামুটি দ্রুত থামে. কিন্তু যদি x is 3, 4 or 9, এটা অনির্দিষ্টকালের জন্য চলতে থাকে. বিশ্বাস করবেন না? এক্সেল খুলুন এবং নিজের জন্য চেষ্টা করুন (আপনার "MOD" ফাংশন প্রয়োজন হবে)।

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

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

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

স্মার্ট কন্ট্রাক্ট বনাম কনকারেন্সি

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

উচ্চ লেনদেন থ্রুপুটের জন্য স্মার্ট চুক্তিগুলি খারাপভাবে কাজ করে.

concurrency কম্পিউটার আর্কিটেকচারের সবচেয়ে মৌলিক বিষয়গুলির মধ্যে একটি। একটি সিস্টেমের ভালো কনকারেন্সি থাকে যদি এটি একাধিক প্রক্রিয়া একই সাথে এবং যেকোনো ক্রমে ঘটতে দেয়। সমসাময়িক সিস্টেমগুলি বিলম্ব কমায় এবং সামগ্রিকভাবে অনেক বেশি থ্রুপুট সক্ষম করে, যেমন প্রযুক্তির সর্বোত্তম ব্যবহার করে প্রক্রিয়া নির্ধারণ, সমান্তরাল প্রক্রিয়াকরণ এবং ডেটা পার্টিশনিং. এভাবেই গুগল সার্চ করে এক্সএনইউএমএক্স ট্রিলিয়ন ওয়েব পেজ প্রায় 100,000 বার প্রতি সেকেন্ডে.

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

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

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

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

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

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

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

ইথেরিয়ামের পক্ষে

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

আসলে, যদি আমরা পাবলিক ব্লকচেইন সম্পর্কে কথা বলি, আমি বিশ্বাস করি সেখানে আছে। কিন্তু এই কারণগুলি বোঝার জন্য, আমাদের Ethereum নেটওয়ার্কের গতিশীলতা সম্পর্কে চিন্তা করতে হবে।

লেনদেন স্প্যাম প্রতিরোধ

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

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

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

কমপ্যাক্ট তথ্য প্রমাণ

একটি ব্লকচেইনে, ব্লকগুলি বেশিরভাগ লেনদেন দ্বারা পূর্ণ হয় যা তারা নিশ্চিত করে। যাইহোক প্রতিটি ব্লকের একটি কমপ্যাক্ট "হেডার" রয়েছে, যেটিতে গুরুত্বপূর্ণ তথ্য রয়েছে যেমন একটি টাইমস্ট্যাম্প এবং পূর্ববর্তী ব্লকের একটি লিঙ্ক। উপর ভিত্তি করে পাবলিক ব্লকচেইন জন্য কাজের হ্যাশিং প্রমাণ, হ্যাশিং অ্যালগরিদমের জন্য ইনপুট হল এই ব্লক হেডার একা। এর মানে হল যে একটি চেইনের কর্তৃত্ব একটি "হালকা ক্লায়েন্ট" দ্বারা মূল্যায়ন করা যেতে পারে তার বেশিরভাগ সামগ্রী ডাউনলোড না করেই৷ উদাহরণস্বরূপ, নভেম্বর 2015 পর্যন্ত, বিটকয়েন হেডারগুলির সম্পূর্ণ সেটের আকার 30 এমবি, তুলনায় 45 গিগাবাইট সম্পূর্ণ চেইনের জন্য। এটি 1500:1 অনুপাত, সীমিত ব্যান্ডউইথ এবং সঞ্চয়স্থান সহ মোবাইল ডিভাইসগুলিতে একটি গুরুত্বপূর্ণ পার্থক্য তৈরি করে৷

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

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

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

ব্যক্তিগত ব্লকচেইনের জন্য রায়

প্রাইভেট ব্লকচেইনের প্রেক্ষাপটে আসুন এই দুটি আর্গুমেন্টের পুনর্বিবেচনা করি। প্রাইভেট চেইন সম্পর্কে প্রথম যে জিনিসটি লক্ষ্য করা যায় তা হল যে তাদের একটি নেটিভ টোকেন বা ক্রিপ্টোকারেন্সি নেই। এটি বিভিন্ন কারণে:

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

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

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

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

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

ডাবল ডেকার ব্লকচেইন

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

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

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

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

পাবলিক ব্লকচেইনে স্মার্ট চুক্তি

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

যৌক্তিক পছন্দ হবে পাবলিক ব্লকচেইন যার সাথে (a) স্টোরেজ বাইট প্রতি সবচেয়ে সস্তা মূল্য এবং/অথবা (b) মোট মাইনিং পাওয়ারের উপর ভিত্তি করে সর্বোচ্চ স্তরের নিরাপত্তা। যেহেতু গণনা নির্ধারক, কোম্পানিগুলিকে শুধুমাত্র নেটওয়ার্কের জন্য অর্থ প্রদান করতে হবে দোকান তাদের চুক্তি এবং বার্তা, আসলে না প্রক্রিয়া তাদের উপরন্তু, শুধুমাত্র স্টোরেজ জন্য একটি ব্লকচেইন ব্যবহার করে, তারা ব্যবহার করতে পারেন যে কোন প্রোগ্রামিং ভাষা তারা চায়. এটি হতে পারে ইথেরিয়াম বাইটকোড, জাভাস্ক্রিপ্ট/ECMAScript পঠনযোগ্যতা বা এমনকি জন্য মেশিন কোড উচ্চ কর্মক্ষমতা জন্য। আসলে, Ethereum চুক্তি ইতিমধ্যে সংরক্ষণ করা যেতে পারে বিটকয়েন ব্লকচেইনে মেটাডেটা ব্যবহার করা। এটি ঠিক দ্বি-স্তরের পদ্ধতি যা আমি প্রস্তাব করেছি।

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

উপসংহার

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

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

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

যদি স্মার্ট চুক্তি তাদের প্রতিশ্রুতি প্রদান করতে না পারে, তাহলে আমরা কেন তাদের মূল্য পরিশোধ করছি?

পড়ার জন্য আপনাকে ধন্যবাদ.

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

থেকে আরো মাল্টিচেইন