Mimblewimble লেনদেন ব্যাখ্যা করা হয়েছে

উচ্চ-স্তরের ওভারভিউ

Mimblewimble হল একটি গোপনীয়তা-ভিত্তিক, ক্রিপ্টোকারেন্সি প্রযুক্তি। এটি কিছু গুরুত্বপূর্ণ ক্ষেত্রে বিটকয়েনের থেকে আলাদা:

  • কোনো ঠিকানা নেই। Mimblewimble ঠিকানার ধারণা বিদ্যমান নেই।
  • সম্পূর্ণ ব্যক্তিগত। প্রতিটি লেনদেন গোপনীয়।
  • কমপ্যাক্ট ব্লকচেইন। মিম্বলউইম্বল বিটকয়েনের নিরাপত্তা গ্যারান্টির একটি ভিন্ন সেট ব্যবহার করে, যা অনেক বেশি কমপ্যাক্ট ব্লকচেইনের দিকে নিয়ে যায়।

লেনদেন ব্যাখ্যা করা হয়েছে

গোপনীয় লেনদেন [1] ডক্টর অ্যাডাম ব্যাক দ্বারা উদ্ভাবিত এবং মিম্বলউইম্বলের মাধ্যমে Monero এবং Tari সহ বেশ কয়েকটি ক্রিপ্টোকারেন্সি প্রকল্পে নিযুক্ত।

তারির প্রাপকরা উড়ে এসে কয়েন গ্রহণের জন্য ব্যক্তিগত কী তৈরি করে। তাই তাদের অবশ্যই তারি লেনদেনের নির্মাণে জড়িত থাকতে হবে।

এর মানে এই নয় যে প্রাপকদের অনলাইন হতে হবে। যাইহোক, তাদের যোগাযোগ করতে সক্ষম হতে হবে, তা ইমেল, ইনস্ট্যান্ট মেসেজিং (IM) বা ক্যারিয়ার কবুতর দ্বারা হোক না কেন।

মৌলিক লেনদেন

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

ধরা যাক অ্যালিসের কাছে 300 µT আছে এবং সে ববকে 200 µT পাঠাতে চায়।

এখানে মৌলিক লেনদেন আছে:

উপকরণআউটপুট
3002009010
এলিস এর UTXOববের কাছেপরিবর্তনপারিশ্রমিক

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

$$ -300 + 200 + 90 + 10 = 0 ​$$

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

এখানেই গোপনীয় লেনদেন আসে। আমরা পূর্ববর্তী সমীকরণের উভয় দিককে কিছু জেনারেটর পয়েন্ট দ্বারা গুণ করে শুরু করতে পারি। H উপবৃত্তাকার বক্ররেখার উপর (উপবৃত্তীয় বক্ররেখা গণিতের একটি ভূমিকার জন্য, পড়ুন এই উপস্থাপনা):

$$ 300.H = 200.H + 90.H + 10.H ​$$

থেকে H একটি ধ্রুবক, উপরের গণিতটি এখনও ধরে আছে, তাই আমরা যাচাই করতে পারি যে অ্যালিস চুরি করছে না তা পরীক্ষা করে

$$(3.H) - (2.H) - (1.H) - (fH) \equiv 0.H = 0 $$

লক্ষ্য করুন যে আমরা শুধুমাত্র পাবলিক কী দেখুন এবং এইভাবে মান লুকানো হয়. শান্ত!

প্রযুক্তিগতভাবে, উপবৃত্তাকার বক্ররেখা গুণনের জন্য শুধুমাত্র স্কেলার পূর্ণসংখ্যার মানগুলি বৈধ। এই কারণেই আমরা লেনদেনে µT ব্যবহার করি যাতে পরিমাণ সবসময় পূর্ণসংখ্যা হয়।
যদিও একটি ক্যাচ আছে. যদি _H_ ধ্রুবক এবং পরিচিত হয় (এটি হয়), কেউ কি _n_ এর সমস্ত যুক্তিসঙ্গত মানের জন্য $nH​$ প্রাক-গণনা করতে পারে না এবং সেই পাবলিক কীগুলির জন্য ব্লকচেইন স্ক্যান করতে পারে না?[^ক]

সংক্ষেপে, হাঁ. তাই আমরা এখনও সম্পন্ন করছি না.

1

"এটিকে প্রাক-চিত্র আক্রমণ বলা হয়।"

ব্লাইন্ডিং ফ্যাক্টর

Tari লেনদেনের সমস্ত মানকে ব্লাইন্ড করা থেকে একটি প্রাক-ইমেজ আক্রমণ প্রতিরোধ করতে, আমাদের প্রতিটি ইনপুট এবং আউটপুটে এলোমেলোতা যোগ করতে হবে। মূল ধারণা হল প্রতিটি লেনদেনের আউটপুটে একটি দ্বিতীয় পাবলিক কী যোগ করে এটি করা।

সুতরাং যদি আমরা ইনপুট এবং আউটপুটগুলিকে নিম্নরূপ পুনরায় লিখি:

$$ C_i = n_i.H + k_i.G $$

কোথায় G একই বক্ররেখার আরেকটি জেনারেটর, এটি সম্পূর্ণরূপে খড়খড়ি ইনপুট এবং আউটপুট যাতে কোনো প্রাক-ইমেজ আক্রমণ সম্ভব না হয়। এই ফর্মুলেশন বলা হয় a Pedersen অঙ্গীকার [3].

দুটি জেনারেটর, _H_ এবং _G_ এমনভাবে নির্বাচন করতে হবে যাতে একটি জেনারেটর থেকে অন্য [[2]] মানগুলিকে রূপান্তর করা অসম্ভব। বিশেষ করে, যদি _G_ বেস জেনারেটর হয়, তাহলে সেখানে কিছু _k_ আছে যেখানে $$ H = kG $$

যদি কেউ এই চিন্তা করতে সক্ষম হয় k, গোপনীয় লেনদেনের সম্পূর্ণ নিরাপত্তা বিচ্ছিন্ন হয়ে যায়। এটা কেন পাঠকের জন্য একটি ব্যায়াম হিসাবে বাকি আছে.

এই ধারণাগুলির একটি আধা-মৃদু ভূমিকার জন্য, এই বিষয়ে অ্যাডাম গিবসনের গবেষণাপত্রটি চমৎকার [5].

এলিস একটি লেনদেন প্রস্তুত করে

অ্যালিস এখন একটি লেনদেন তৈরি করা শুরু করতে পারে।

আদর্শসূত্রনাম
ইনপুট$$ -300.H - k_1.G $$C1
আউটপুট পরিবর্তন করুন$$ 90.H + k_2.G $$C2
ফী$$ 10.H + 0.G $$f
মোট খরচ$$ 200.H + 0.G $$C*
সমষ্টি$$ 0.H + (k_2-k_1)।G $$X

\( k_i \)-মূল্য, \(k_1, k_2\) এই আউটপুটগুলির জন্য ব্যয়ের কী।

Tari আউটপুট খরচ করার জন্য _শুধুমাত্র তথ্যের টুকরোগুলি_ হল খরচের চাবিকাঠি (এটিকে একটি অন্ধ ফ্যাক্টরও বলা হয়) এবং এর সাথে সম্পর্কিত মান।

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

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

আমরা সংজ্ঞায়িত করি বাড়তি লেনদেন হতে হবে

$$ x_s = k_2 - k_1 $$

অ্যালিসের জন্য তার অতিরিক্ত (এবং Tari ওয়ালেট সফ্টওয়্যার কীভাবে এটি করে) গণনা করার একটি সহজ উপায় হল তার আউটপুট ব্লাইন্ডিং ফ্যাক্টর এবং তার ইনপুট ব্লাইন্ডিং ফ্যাক্টরগুলির যোগফল বিয়োগ করা।

ধরা যাক অ্যালিস নিজের জন্য কিছু অর্থ তৈরি করার চেষ্টা করছিল এবং 100 এর পরিবর্তে 90 µT পরিবর্তন করেছে। এই উদাহরণে, আউটপুট এবং ইনপুটগুলির যোগফল বাতিল হবে না H এবং আমরা হবে

$$X^* = 10.H + x_s.G$$

আমরা একটু পরে দেখব কিভাবে মিম্বলউইম্বল প্রোটোকল অ্যালিসকে ধরতে পারে যদি সে এভাবে শেনানিগান টানার চেষ্টা করে।

অ্যালিস আসলে প্রতিটি আউটপুটের জন্য একটি পরিসীমা প্রমাণও প্রস্তুত করে, যা একটি প্রমাণ যে আউটপুটের মান শূন্য এবং 2^64 µT এর মধ্যে। পরিসীমা প্রমাণ ছাড়া, অ্যালিস মানুষের কাছে নেতিবাচক পরিমাণ পাঠাতে পারে, নিজেকে সমৃদ্ধ করতে পারে, এবং তারির কোনো হিসাব ভঙ্গ করতে পারে না।
Tari এবং Grin-এ, অতিরিক্ত মান প্রকৃতপক্ষে অতিরিক্ত গোপনীয়তার জন্য দুটি মানগুলিতে বিভক্ত। কেন এই `অফসেট` মান প্রয়োজনীয় [[4]] গ্রিন টিমের কাছে একটি ভাল ব্যাখ্যা রয়েছে। ব্যাখ্যাটি সহজ(r) রাখতে আমরা এই ধাপটি ছেড়ে দিই।

এলিস একটি এলোমেলো নির্বাচন করে পোপের দূত,

$$ r_a $$

এবং সংশ্লিষ্ট পাবলিক নন্স গণনা করে,

$$ R_a = r_a.G $$

এলিস তারপর ববকে নিম্নলিখিত তথ্য পাঠায়:

ক্ষেত্রমূল্য
উপকরণC1
আউটপুটC2
ফী10
ববকে দেওয়া পরিমাণ200
পাবলিক নন্স$$ R_a $$
পাবলিক বাড়াবাড়িX
মেটাডাটাm

বার্তা মেটাডেটা হল কিছু অতিরিক্ত তথ্য যা লেনদেনের সাথে সম্পর্কিত (যেমন আউটপুট কখন ব্যয় করা যেতে পারে)।

বব তার প্রতিক্রিয়া প্রস্তুত করে

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

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

তারপর থেকে তিনি একটি প্রতিশ্রুতি তৈরি করেন amount যে ক্ষেত্রটি অ্যালিস তাকে পাঠাচ্ছে:

$$ C_b = 200.H + k_b.G $$

যেখানে \(k_b\) হল ববের ব্যক্তিগত খরচের কী। সে হিসাব করে

$$P_b = k_b.G$$

এবং প্রতিশ্রুতির জন্য একটি পরিসীমা প্রমাণ তৈরি করে।

তখন ববকে সাইন ইন করতে হবে যে সে খুশি যে সবকিছু তার সন্তুষ্টির জন্য সম্পূর্ণ হয়েছে। তিনি একটি আংশিক তৈরি করেন Schnorr স্বাক্ষর চ্যালেঞ্জের সাথে,

$$ e = H(R_a + R_b \Vert X + P_b \Vert f \Vert m) $$

এবং স্বাক্ষর দ্বারা দেওয়া হয়

$$ s_b = r_b + ek_b $$

বব ফেরত পাঠায়

ক্ষেত্রমূল্য
আউটপুট (প্রতিশ্রুতি এবং পরিসীমা প্রমাণ)$$C_b$$
পাবলিক নন্স$$R_b$$
স্বাক্ষর$$s_b$$
পাবলিক কী$$P_b$$

অ্যালিস লেনদেনটি সম্পূর্ণ করে এবং সম্প্রচার করে

ববের কাছ থেকে শোনার পরে, অ্যালিস জিনিসগুলি গুটিয়ে নিতে পারে।

প্রথমত, সে এখন ববের পাবলিক ননস এবং পাবলিক কী ব্যবহার করতে পারে বব যে চ্যালেঞ্জটি স্বাক্ষর করেছিল তা স্বাধীনভাবে গণনা করতে:

$$ e = H(R_a + R_b \Vert X + P_b \Vert f \Vert m) $$

এলিস তখন তার নিজের আংশিক স্বাক্ষর উভয়ই তৈরি করে,

$$ s_a = r_a + e.x_s $$

এবং সম্মিলিত সমষ্টি স্বাক্ষর, $$ s = s_a + s_b, R = R_a + R_b $$।

অ্যালিস এখন নেটওয়ার্কে এই লেনদেন সম্প্রচার করতে পারে। চূড়ান্ত লেনদেন নিম্নরূপ দেখায়:

লেনদেন কার্নেল
পাবলিক বাড়াবাড়ি$$ X + P_b $$
স্বাক্ষর$$ (s, R) $$
ফী10
লেনদেন মেটাডেটাm
লেনদেন শরীর
পরিসীমা প্রমাণ সহ ইনপুট$$[C_1]$$
পরিসীমা প্রমাণ সহ আউটপুট$$[C_2, C_B]$$

লেনদেন যাচাইকরণ এবং প্রচার

যখন একটি পূর্ণ নোড অ্যালিসের লেনদেন গ্রহণ করে, তখন এটি তার সহকর্মীদের কাছে পাঠানোর আগে এটির স্তরে আছে কিনা তা যাচাই করতে হবে। নোড নিম্নলিখিত পরীক্ষা করতে চায়:

  1. সমস্ত ইনপুট বর্তমান UTXO সেট থেকে আসে

    সমস্ত পূর্ণ নোড অব্যয়িত আউটপুট সেটের ট্র্যাক রাখে, তাই নোড এটি পরীক্ষা করবে C1 সেই তালিকায় আছে।

  2. সমস্ত আউটপুট একটি বৈধ পরিসীমা প্রমাণ আছে

    পরিসীমা প্রমাণ তার মিলে যাওয়া প্রতিশ্রুতির বিরুদ্ধে যাচাই করা হয়।

  3. মান ভারসাম্য

    এই চেকটিতে, নোডটি নিশ্চিত করতে চায় যে লেনদেনে কোনও মুদ্রা তৈরি বা ধ্বংস না হয়। কিন্তু মান অন্ধ হলে এটা কিভাবে করতে পারে?

    মনে রাখবেন যে একটি সৎ লেনদেনে, সমস্ত মান (যা দ্বারা গুণ করা হয় H) বাতিল করুন, এবং আপনার কাছে আউটপুটগুলির সর্বজনীন কীগুলির যোগফল বিয়োগ করে ইনপুটগুলির সর্বজনীন কীগুলি বাকি রয়েছে৷ এই অ-কাকতালীয়ভাবে একই মান যা কার্নেলে পাবলিক অতিরিক্ত হিসাবে সংরক্ষিত হয়।

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

$$ sG \stackrel{?}{=} R + e(X + P_b) $$

  1. কার্নেলে স্বাক্ষর বৈধ

    তাই কার্নেল স্বাক্ষর যাচাই করে, আমরা নিজেদেরকেও প্রমাণ করি যে লেনদেনের হিসাব সঠিক।

  2. বিভিন্ন অন্যান্য ঐক্যমত চেক

    যেমন ফি ন্যূনতম থেকে বেশি কিনা।

যদি এই সমস্ত চেক পাস হয়, তাহলে নোডটি তার সহকর্মীদের কাছে লেনদেনটি ফরোয়ার্ড করবে এবং এটি শেষ পর্যন্ত খনন করা হবে এবং ব্লকচেইনে যুক্ত করা হবে।

প্রতারণা বন্ধ করা

এখন ধরা যাক অ্যালিস লুকোচুরি করার চেষ্টা করেছে এবং তার অতিরিক্ত হিসাবে \( X^* \) ব্যবহার করেছে; যেখানে সে নিজেকে 100 µT এর পরিবর্তে 90 µT পরিবর্তন করেছে। এখন মান ভারসাম্য হবে না. আউটপুট, ইনপুট এবং ফি এর যোগফল এইরকম কিছু দেখাবে:

$$ 10.H + (x_s + k_b)। G ​$$

সুতরাং এখন যখন একটি পূর্ণ নোড স্বাক্ষর পরীক্ষা করে:

$$ \begin{align} R + e(X^* + P_b) &\stackrel{?}{=} sG \\ R + e(10.H + x_s.G + P_b) &\stackrel{?}{ =} (r_a + r_b + e(x_s + k_b))।G \\ R + e(10.H + X + P_b) &\stackrel{?}{=} (r_a + r_b)।G + e(x_s + k_b).G \\ \mathbf{10e.H} + R + e(X + P_b) &\stackrel{?}{=} R + e(X + P_b) \\ \end{align} $$

স্বাক্ষর যাচাই করা হয় না! নোড বলতে পারে না যে লেনদেনের সাথে ঠিক কী ভুল হয়েছে, তবে এটি জানে যে কিছু হচ্ছে, এবং তাই এটি নিঃশব্দে লেনদেনটি ছেড়ে দেবে এবং তার জীবন চালিয়ে যাবে।

লেনদেনের সারাংশ

সংক্ষেপে: একটি Tari/MimbleWimble লেনদেনে নিম্নলিখিতগুলি অন্তর্ভুক্ত থাকে:

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

তথ্যসূত্র

[1] "বিটকয়েন গোপনীয় লেনদেন কি?" [অনলাইন।] উপলব্ধ: https://www.mycryptopedia.com/what-are-confidential-transactions/ অ্যাক্সেসের তারিখ: 2019-04-09।

[2] "কিছুই-আপ-মাই_স্লিভ নম্বর" [অনলাইন]।
উপলব্ধ: https://en.wikipedia.org/w/index.php?title=Nothing-up-my-sleeve_number&oldid=889582749. অ্যাক্সেসের তারিখ: 2019-04-09।

[3] উইকিপিডিয়া: "কমিটমেন্ট স্কিম" [অনলাইন]। উপলব্ধ: https://en.wikipedia.org/wiki/Commitment_scheme. অ্যাক্সেসের তারিখ: 2019-04-09।

[4] "কার্নেল অফসেট, মিম্বলউইম্বল এবং গ্রিনের ভূমিকায়" [অনলাইন]। উপলব্ধ: https://github.com/mimblewimble/grin/blob/master/doc/intro.md#kernel-offsets. অ্যাক্সেসের তারিখ: 2019-04-09।

[5] এ. গিবসন, "ফ্রম জিরো (নলেজ) থেকে বুলেটপ্রুফ" [অনলাইন]। উপলব্ধ: https://joinmarket.me/static/FromZK2BPs_v1.pdf. অ্যাক্সেসের তারিখ: 2019-04-10।

অনুবাদকেরা