6
ফোকাস
792
অনুসারী

ব্লকচেইন এবং ইথেরিয়ামের পরিচিতি

তৈরি: 2016-05-05 17:31:57, আপডেট করা হয়েছে: 2016-05-05 17:32:31
comments   3
hits   2492

ছবির উৎসঃ https://jysperm.me/2016/05/blockchain-slides/

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

ব্লকচেইনকে হ্যাশট্রি (HashTree) বলা হয়, যার ফলে এটি হ্যাশট্রি-র মতো কিছু বৈশিষ্ট্য ধারণ করেঃ

blockchain-hash-tree

ছবি সৌজন্যে<http://happypeter.github.io/bitcoin_basics/book/017_merkle_tree.html

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

আমি হ্যাশট্রি সম্পর্কে একটি অ্যাপ্লিকেশন দিতে পারিঃ “১০০% রিজার্ভ প্রুফ”, যা “শূন্য-জ্ঞান প্রমাণ” এর একটি বিষয়। আমরা এমন একটি দৃশ্য বিবেচনা করতে পারি যেখানে বিটসনের ধারককে লেনদেন করার জন্য বিটকয়েনকে একটি এক্সচেঞ্জে জমা করতে হবে এবং তাত্ত্বিকভাবে এক্সচেঞ্জটি এই অর্থটি (ব্যবহারকারীর সমস্ত জমা অ্যাকাউন্ট ব্যালেন্স) ব্যবহার করতে পারে, যা ব্যবহারকারীরা দেখতে চায় না, এবং এক্সচেঞ্জটিও নিজেকে পরিষ্কার করতে চায়ঃ এক্সচেঞ্জটি প্রথমে তার কাছে থাকা একটি বিটকয়েন ঠিকানা প্রকাশ করে, এবং প্রত্যেকে নিশ্চিত হয় যে এক্সচেঞ্জটি আসলে এই পরিমাণ বিটকয়েন সংরক্ষণের জন্য রেখেছে, তবে কীভাবে প্রমাণ করা যায় যে এই অর্থটি সমস্ত ব্যবহারকারীর ব্যালেন্সের চেয়ে বেশি? অন্য কথায়, কীভাবে প্রতিটি ব্যবহারকারীর ব্যালেন্স প্রকাশ না করা (ব্যবহারকারীর গোপনীয়তা ফাঁস করে) প্রতিটি ব্যবহারকারীকে তাদের ব্যালেন্সকে এই ব্যালেন্সের মধ্যে অন্তর্ভুক্ত করতে পারে?

blockchain-proof-of-reserves

ছবি সৌজন্যে<http://blog.bifubao.com/2014/03/16/proof-of-reserves

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

এইভাবে, প্রতিটি ব্যবহারকারীর কাছে প্রদর্শিত তথ্যটি কেবল তার নিজস্ব তথ্য এবং কিছু একত্রিত তথ্য, এবং প্রতিটি ব্যবহারকারী অন্য কোনও ব্যালেন্স ব্যবহার না করেই নিজের ব্যালেন্সকে রুট নোডে অন্তর্ভুক্ত করার বিষয়টি নিশ্চিত করতে পারে। উপরের চিত্রটিতে একটি ছোটখাট ত্রুটি রয়েছে।hকেনe4df9d12এই নোডটি ব্যবহারকারীর প্রাইভেসি লিক এড়াতে ৩৩৩৩ ব্যালেন্সের ব্যবহারকারী এবং ০ ব্যালেন্সের ভার্চুয়াল ব্যবহারকারীকে অন্তর্ভুক্ত করতে পারে।

এখন আমরা Git এর দিকে নজর দিচ্ছি, যা আসলে একটি খুব সাধারণ ব্লকচেইন অ্যাপ্লিকেশনঃ

blockchain-git-objects-example

ছবি সৌজন্যেhttp://gitbook.liuhui998.com/1_2.html (GPL v2)

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

গিট ব্লকচেইন ব্যবহার করে একটি অনন্য ইতিহাসের জন্য একটি সংগ্রহস্থল নির্ধারণ করে। যদি একটি কমিট পরিবর্তন করা হয়, তবে তার পরে সমস্ত কমিটের হ্যাশ পরিবর্তন হবে। অবশ্যই, যেহেতু গিট কেবল একটি সংস্করণ নিয়ন্ত্রণ সরঞ্জাম, তাই আপনাকে ইতিহাস পরিবর্তন করতে বাধা দেয় না।push --force), তবে এই পরিবর্তনটি সকল সহ-লেখক বুঝতে পারবেন।

ব্লকচেইনের আরেকটি ক্লাসিক অ্যাপ্লিকেশন হল বিটকয়েন, যা এই শব্দটি ছড়িয়ে দিয়েছে (যদিও এই ধারণাটি সবসময়ই ছিল):

blockchain-bitcoin-block-data

ছবি সৌজন্যেhttps://commons.wikimedia.org/wiki/File:Bitcoin_Block_Data.png(CC-BY-SA-3.0)

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

Bitcoin

এই শেয়ারের প্রথম অংশটি হল বিটকয়েন সম্পর্কে একটি সংক্ষিপ্ত বিবরণ।

বিটকয়েনে ব্লক তৈরি করা হয় “কাজের পরিমাণ প্রমাণ” এর মাধ্যমে, অর্থাৎ “খনি” তে অংশগ্রহণকারী সমস্ত “খনি” কে একটি গণনা শক্তি সম্পর্কিত, এলোমেলো প্রকৃতির একটি বিচ্ছিন্ন গণনা করতে হবে, যতক্ষণ না একটি নির্দিষ্ট শর্ত পূরণ করে এমন একটি এলোমেলো সংখ্যা গণনা করা হয়, একটি ব্লক প্রকাশের অধিকার পাওয়ার জন্য।

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

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

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

blockchain-bitcoin-state-machine

ছবি সৌজন্যে<https://github.com/ethereum/wiki/wiki/White-Paper

  • ব্লকচেইন ট্যাঙ্ক বই ট্যাঙ্কের অবস্থা পরিবর্তনের লগ
  • লেনদেন লেনদেন লেনদেন লেনদেন লেনদেন লেনদেন লেনদেন লেনদেন লেনদেন লেনদেন লেনদেন লেনদেন
  • ব্লকঃ বর্তমান পরিস্থিতি নিয়ে ‘সমঝোতা’

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

Alt Coin

বিটকয়েনের উপর ভিত্তি করে অন্যান্য অনেক ক্রিপ্টোকারেন্সি তৈরি করা হয়েছে, যা সাধারণত “অল্ট কয়েন” নামে পরিচিত। সাধারণত এই ধরনের মুদ্রার দুটি বাস্তবায়ন রয়েছেঃ

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

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

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

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

Ethereum

blockchain-ethereum

ছবি সৌজন্যেhttps://www.ethereum.org/assets (CC 3.0)

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

ইথেরিয়াম সম্পর্কে বিস্তারিত আলোচনা করার আগে, আমি প্রথমে দুটি মূল ভিত্তি সম্পর্কে কথা বলব যা আমি মনে করি একটি বিকেন্দ্রীভূত নেটওয়ার্কের ভিত্তিঃ ক্রিপ্টোক্রিপ্টোলজি এবং গেমিং। ক্রিপ্টোক্রিপ্টোলজি কেবলমাত্র গণিতের সুরক্ষা নিশ্চিত করার জন্য পাবলিক কী এনক্রিপশন, ডিজিটাল স্বাক্ষর, বিভাজন এবং বিমূর্তকরণ অ্যালগরিদম ব্যবহার করে; এবং গেমিং হ’ল বিকেন্দ্রীভূত নেটওয়ার্কে যে কেউ, এমনকি যারা এই নেটওয়ার্কটি আক্রমণ করতে চায় তারাও জড়িত হতে পারে। বিকেন্দ্রীভূত নেটওয়ার্ক ডিজাইন করার সময় প্রতিটি অংশগ্রহণকারীর দৃষ্টিভঙ্গি থেকে তাদের স্বার্থ সম্পর্ক সম্পর্কে চিন্তা করা প্রয়োজন, নিয়ম মেনে চলার সময় তাদের সুবিধা সর্বাধিকীকরণ করা এবং নিয়ম লঙ্ঘন করলে ক্ষতি বা ঝুঁকি বহন করা নিশ্চিত করা।

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

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

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

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

প্রথমত, একটি “মাল্টি-হোল্ডিং ওয়ালেট” এর উদাহরণ দেওয়া যাক, যেখানে Ethereum এর অফিসিয়াল ক্লায়েন্টের মধ্যে একটি মাল্টি-হোল্ডিং ওয়ালেট তৈরির বৈশিষ্ট্য রয়েছেঃ

blockchain-ethereum-multi-sig-wallet

এই ফাংশনটি ব্যবহার করে, আপনি এমন একটি ওয়ালেট ঠিকানা তৈরি করতে পারেন যা অন্য ২ জনের সাথে ভাগ করে নেওয়া যায়, যার মধ্যে একজন প্রতিদিন সর্বোচ্চ ১০০ ইথার ব্যবহার করতে পারে। এই সীমাবদ্ধতা ছাড়িয়ে গেলে, অন্য একজনের সম্মতি প্রয়োজন।

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

আরেকটি উদাহরণ হল “হালকা চুক্তি” যা সর্বদা বিটকয়েনকে একটি ডিজিটাল মুদ্রা হিসাবে বলা হয়, যার মুদ্রা মূল্য (এবং বৈধ মুদ্রার বিনিময় হার) অস্থির, প্রায়শই একদিনের মধ্যে মুদ্রার মূল্য দ্বিগুণ বা দ্বিগুণ হয়ে যায়, তবে চুক্তিটি যদি একটি হিজড়া চুক্তি বাস্তবায়নের সাথে সামঞ্জস্যপূর্ণ হয় তবে এই সমস্যাটি কিছুটা সমাধান করা যেতে পারে।

আমরা একজনকে “ঝুঁকি এড়ানো” বলে ডাকি যারা মুদ্রার মান স্থির রাখতে চায় এবং অন্য একজনকে “ঝুঁকি বহনকারী” বলে ডাকি যারা মুদ্রার মানের অস্থিরতার ঝুঁকি নিতে এবং এর থেকে উপকৃত হতে চায়, তাই তারা একটি পরিমাণ (যেমন 1000 CNY) এবং একটি সময় উইন্ডো (যেমন এক মাস) নিয়ে চুক্তি করতে পারে এবং একটি চুক্তি তৈরি করতে পারে। নিম্নলিখিত লজিকটি সম্পাদন করুনঃ

  • কন্ট্রাক্টের ওয়ালেটের ঠিকানায় 1000 CNY মূল্যের ইথার প্রেরণ করে এবং কন্ট্রাক্টের কাছে 1000 CNY (বা তার বেশি) মূল্যের ইথার প্রেরণ করে।
  • এক মাস পর, ঝুঁকি এড়ানো ব্যক্তিরা 1000 CNY মূল্যের ইথার কন্ট্রাক্ট থেকে প্রত্যাহার করতে পারে, এবং ইথার এবং CNY এর মধ্যে বিনিময় হার যাই হোক না কেন, অবশিষ্ট ইথার ঝুঁকি গ্রহণকারী দ্বারা প্রত্যাহার করা হয়।

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

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

আমরা আরেকটি Contract ডিজাইন করতে পারি যা এই ধরনের লজিককে নির্দিষ্ট করে, যা বাস্তব জগতে Ether এবং ক্যাডাস্ট্রাল মুদ্রার মধ্যে বিনিময় হার সংগ্রহ করে, প্রতিটি সময় উইন্ডোতে (যেমন এক ঘন্টার মধ্যে):

  • প্রত্যেকেরই Contract-এ গ্যারান্টি প্রদান করতে হবে এবং একটি বিনিময় হার দিতে হবে।
  • সময়সীমার শেষে, কন্ট্রাক্ট মালিকদের দ্বারা প্রদত্ত বিনিময় হারের গড় গণনা করে (জামিনের উপর ভিত্তি করে) এবং প্রকাশ করে।
  • এবং সংগ্রহ করা জামিনের টাকা বিতরণ করা হবে (জামিনের টাকা ওজনের সাথে) যারা গড়ের ২৫% এর কাছাকাছি।

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

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

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

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

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

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

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

  • প্রথম ধাপঃ প্রত্যেকেই Contract-এর কাছে একটি গ্যারান্টি প্রদান করতে পারে এবং ‘একটি এলোমেলোভাবে নির্বাচিত বীজের বিভাজক মান’ প্রদান করতে পারে।
  • দ্বিতীয় ধাপঃ প্রথম ধাপে অংশগ্রহণকারীরা Contract কে তাদের বীজ সরবরাহ করে।
  • দ্বিতীয় ধাপের সমাপ্তিঃ কন্ট্রাক্ট সমস্ত বৈধ বীজকে বিচ্ছিন্ন করে, একটি র্যান্ডম সংখ্যা তৈরি করে এবং প্রকাশ করে; দ্বিতীয় ধাপে ফিরে আসুন এবং সঠিক বীজ সরবরাহকারী ব্যক্তির জামিন প্রদান করুন।

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

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

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

তারপর আমরা আবার “সম্মতি ব্যবধান” নিয়ে কথা বলি, যেটা বিটকয়েনের ক্ষেত্রে প্রতি ১০ মিনিটে একটি নতুন ব্লক তৈরি হয়, অর্থাৎ পুরো নেটওয়ার্কে প্রতি ১০ মিনিটে একটি “সম্মতি” হয়, তাই সাধারণত বিটকয়েন লেনদেনের জন্য দশ মিনিট অপেক্ষা করতে হয়, যা নিশ্চিত হওয়ার জন্য, যখন কম্পিউটারের শক্তি খুব বেশি না থাকে, তখন হয়তো এক ঘন্টা অপেক্ষা করতে হয় (৬টি ব্লক) যাতে সবাই মনে করে যে লেনদেনটি নির্ভরযোগ্য।

স্পষ্টতই, কম সম্মতি সময় ব্যবহারকারীদের জন্য একটি ভাল অভিজ্ঞতা হবে, কেন বিটকয়েন ব্লক সময় সংক্ষিপ্ত করে না? এটি কারণ দ্রুত সম্মতি ব্যবধানটি “কেন্দ্রীয় খনি পুকুর” এর সুবিধা কিছুটা বাড়িয়ে তুলবে। “খনি” বলতে বিটকয়েন খনিজীবীদের একত্রিত হয়ে খনি খনন করা বোঝায়, খনিজীবীরা নিঃশর্তভাবে খনি পুকুরের নির্দেশাবলী মেনে চলে এবং অবশেষে খনি প�