ধরুন পেগিকে ভিক্টরের কাছে প্রমাণ করতে হবে যে সে গোপনীয়তা প্রকাশ না করেই একটি গোপনের অধিকারী। তিনি কি এমনভাবে তা করতে পারেন যা ভিক্টরকে বোঝাতে পারে যে সে সত্যিই রহস্যটি জানে? এটি হল সবচেয়ে শক্তিশালী ক্রিপ্টোগ্রাফিক প্রক্রিয়াগুলির একটির কেন্দ্রবিন্দুতে যা আমরা পরিচয় পদ্ধতিতে নিযুক্ত করতে পারি: শূন্য-জ্ঞান প্রমাণ (ZKPs) ।
উদাহরণস্বরূপ ধরুন যে পেগির একটি ডিজিটাল ড্রাইভিং লাইসেন্স রয়েছে এবং তিনি বারটেন্ডার ভিক্টরকে প্রমাণ করতে চান যে তার ড্রাইভিং লাইসেন্স হস্তান্তর না করে বা এমনকি তাকে তার জন্মতারিখ না দেখিয়ে তার বয়স 21-এর বেশি। ZKPs পেগিকে তার ড্রাইভিং লাইসেন্স প্রমাণ করতে দেয় যে তার বয়স কমপক্ষে 21 এমনভাবে যাতে পেগিকে অন্য কিছু প্রকাশ না করে ভিক্টরকে বোঝানো হয় (অর্থাৎ, অতিরিক্ত জ্ঞান নেই)।
এই সমস্যাটি প্রথম MIT গবেষক শফি গোল্ডওয়াসার, সিলভিও মিকালি এবং চার্লস র্যাকফ 1980 এর দশকে তথ্য ফাঁসের বিরুদ্ধে লড়াই করার উপায় হিসাবে অনুসন্ধান করেছিলেন। লক্ষ্য হল অতিরিক্ত তথ্যের পরিমাণ হ্রাস করা যা যাচাইকারী, ভিক্টর, প্রভার, পেগি সম্পর্কে জানতে পারে।
ZKPs কীভাবে কাজ করে তা বোঝার একটি উপায় হল আলিবাবার গুহার গল্প, যা প্রথম ক্রিপ্টোগ্রাফার Quisquater, Guillou এবং Berson1 দ্বারা প্রকাশিত। নিম্নলিখিত চিত্রটি একটি দৃষ্টান্ত প্রদান করে।
আলিবাবার গুহাটিতে A এবং B লেবেলযুক্ত দুটি প্যাসেজ রয়েছে, যা প্রবেশদ্বারের সাথে সংযুক্ত একটি একক প্যাসেজওয়েকে বিভক্ত করেছে। পেগির কাছে একটি গোপন কোড রয়েছে যা তাকে A এবং B সংযোগকারী একটি দরজা আনলক করতে দেয়৷ ভিক্টর কোডটি কিনতে চায় কিন্তু পেগি এটি জানে না হওয়া পর্যন্ত অর্থ প্রদান করবে না৷ পেগি টাকা না দেওয়া পর্যন্ত ভিক্টরের সাথে শেয়ার করবে না।
পেগির জন্য অ্যালগরিদম প্রমাণ করার জন্য যে তিনি কোডটি জানেন তা নিম্নরূপ:
যদি পেগি সবসময় ভিক্টর বেছে নেওয়া যেকোন পথ দিয়েই ফিরে আসতে পারে, তাহলে পেগি সত্যিই কোডটি জানে এমন একটি ক্রমবর্ধমান সম্ভাবনা রয়েছে। 20 বার চেষ্টা করার পরে, পেগি সহজভাবে অনুমান করছে যে ভিক্টর কোন চিঠিতে কল করবে এক মিলিয়নের মধ্যে একটিরও কম সুযোগ রয়েছে। এটি একটি সম্ভাব্য প্রমাণ গঠন করে যে পেগি রহস্যটি জানেন।
এই অ্যালগরিদমটি কেবল পেগিকে ভিক্টরকে বোঝাতে দেয় না যে সে কোডটি জানে, তবে এটি এমনভাবে করে যাতে ভিক্টর অন্য কাউকে বোঝাতে না পারে যে পেগি কোডটি জানে৷ ধরুন ভিক্টর পুরো লেনদেন রেকর্ড করে। একজন পর্যবেক্ষক যেটা দেখেন তা হল ভিক্টর চিঠিগুলি ডাকছে এবং পেগি ডান টানেল থেকে বেরিয়ে আসছে। পর্যবেক্ষক নিশ্চিত হতে পারে না যে ভিক্টর এবং পেগি পর্যবেক্ষকদের বোকা বানানোর জন্য আগাম চিঠির ক্রম নিয়ে একমত হননি।
মনে রাখবেন যে এই সম্পত্তিটি উচ্চ-এনট্রপি বীজ সহ একটি ভাল ছদ্ম-এলোমেলো নম্বর জেনারেটর ব্যবহার করে অ্যালগরিদমের উপর নির্ভর করে যাতে পেগি এবং তৃতীয়-পক্ষের পর্যবেক্ষকরা ভিক্টরের পছন্দগুলি ভবিষ্যদ্বাণী করতে না পারে।
এইভাবে, যদিও পেগি ভিক্টরকে অস্বীকার করতে পারে না যে সে গোপনটি জানে, সে অস্বীকার করতে পারে যে সে অন্য তৃতীয় পক্ষের গোপনীয়তা জানে। এটি নিশ্চিত করে যে তিনি ভিক্টরের কাছে যা কিছু প্রমাণ করেন তা তাদের মধ্যে থাকে এবং ভিক্টর তা ফাঁস করতে পারে না-অন্তত একটি ক্রিপ্টোগ্রাফিক উপায়ে যা প্রমাণ করে যে এটি পেগির কাছ থেকে এসেছে। পেগি তার গোপনীয়তা এবং সে যে এটি জানে তা উভয়ের নিয়ন্ত্রণ বজায় রাখে।
যখন আমরা বলি "শূন্য জ্ঞান" এবং ভিক্টর প্রশ্নে প্রস্তাবনার বাইরে কিছুই শেখার বিষয়ে কথা বলি, এটি পুরোপুরি সত্য নয়। আলিবাবার গুহায়, পেগি শূন্য-জ্ঞানে প্রমাণ করেন যে তিনি গোপনীয়তা জানেন। কিন্তু আরও অনেক কিছু আছে যা ভিক্টর পেগি সম্পর্কে শিখেছে যেগুলি সম্পর্কে ZKPs কিছুই করতে পারে না। উদাহরণস্বরূপ, ভিক্টর জানে যে পেগি তাকে শুনতে পায়, তার ভাষা বলতে পারে, হাঁটাচলা করে এবং সহযোগিতা করে। তিনি গুহা সম্পর্কে জিনিসগুলিও শিখতে পারেন, যেমন দরজা খুলতে আনুমানিক কতক্ষণ লাগে। পেগি ভিক্টর সম্পর্কে একই জিনিস শিখে. সুতরাং, বাস্তবতা হল প্রমাণটি প্রায় শূন্য জ্ঞান নয় পুরোপুরি শূন্য জ্ঞান।
আলিবাবার গুহার উদাহরণ হল ZKPs-এর একটি খুব নির্দিষ্ট ব্যবহার, যাকে বলা হয় শূন্য-জ্ঞানের প্রমাণ । পেগি প্রমাণ করছে যে সে জানে (বা কিছু আছে)। আরও সাধারণভাবে, পেগি ভিক্টরের কাছে অনেক তথ্য প্রমাণ করতে চাইতে পারে। এর মধ্যে প্রস্তাবিত বাক্যাংশ বা এমনকি মান অন্তর্ভুক্ত থাকতে পারে। ZKPs এটিও করতে পারে।
আমরা কীভাবে শূন্য জ্ঞানে প্রস্তাব প্রমাণ করতে পারি তা বোঝার জন্য, একটি ভিন্ন উদাহরণ বিবেচনা করুন, কখনও কখনও সমাজতান্ত্রিক মিলিয়নেয়ার সমস্যা বলা হয়। ধরুন পেগি এবং ভিক্টর জানতে চান তাদের ন্যায্য মজুরি দেওয়া হচ্ছে কিনা। বিশেষ করে, তারা জানতে চায় যে তাদের একই পরিমাণ অর্থ প্রদান করা হয়েছে কিন্তু তারা একে অপরের কাছে বা এমনকি বিশ্বস্ত তৃতীয় পক্ষের কাছে তাদের নির্দিষ্ট ঘণ্টার হার প্রকাশ করতে চায় না। এই উদাহরণে, পেগি প্রমাণ করছেন না যে তিনি একটি গোপন বিষয় জানেন, বরং তিনি একটি সমতা (বা অসমতা) প্রস্তাব প্রমাণ করছেন।
সরলতার জন্য, ধরে নিন যে পেগি এবং ভিক্টরকে প্রতি ঘন্টায় $10, $20, $30, বা $40 এর মধ্যে একটি দেওয়া হচ্ছে।
অ্যালগরিদম এই মত কাজ করে:
এটাকে বলা হয় অজ্ঞান স্থানান্তর এবং এটি প্রমাণ করে VictorSalary = PeggySalary
শূন্য জ্ঞানে সত্য বা মিথ্যা (অর্থাৎ, অন্য কোনো তথ্য প্রকাশ না করে)।
এটি কাজ করার জন্য, পেগি এবং ভিক্টরকে অবশ্যই বিশ্বাস করতে হবে যে অন্যরা আসন্ন হবে এবং তাদের আসল বেতন জানাবে। ভিক্টরকে বিশ্বাস করতে হবে যে পেগি অন্য তিনটি চাবি ফেলে দেবে। পেগিকে অবশ্যই বিশ্বাস করতে হবে যে ভিক্টর বাক্সগুলিতে "+" সহ একটি মাত্র স্লিপ রাখবেন৷
শুধুমাত্র স্ব-ইস্যু করা শংসাপত্রের মাধ্যমে যা সম্ভব হবে তার বাইরে আত্মবিশ্বাস স্থাপন করার জন্য যেমন ডিজিটাল শংসাপত্রগুলির একটি PKI প্রয়োজন, তেমনি ZKPগুলি এমন একটি সিস্টেমে আরও শক্তিশালী যা পেগি এবং ভিক্টরকে অন্যরা তাদের সম্পর্কে যা বলে তা থেকে সত্য প্রমাণ করতে দেয়, কেবল তারা যা বলে তা নয়। নিজেদের. উদাহরণ স্বরূপ, পেগি এবং ভিক্টর তাদের বেতন স্বতঃপ্রণোদিত করার পরিবর্তে, ধরুন তারা তাদের দাবি করার জন্য এইচআর বিভাগের একটি স্বাক্ষরিত নথির উপর নির্ভর করতে পারে যাতে উভয়ই জানতে পারে যে অন্যজন তাদের প্রকৃত বেতন বলছে। যাচাইযোগ্য শংসাপত্রগুলি ZKPs ব্যবহার করার জন্য একটি সিস্টেম প্রদান করে যাতে অনেকগুলি বিভিন্ন তথ্য একা বা কনসার্টে প্রমাণ করা যায়, এমন উপায়ে যা পদ্ধতিতে আস্থা এবং ডেটাতে আস্থা দেয়।
পূর্ববর্তী উদাহরণগুলিতে, পেগি একাধিক মিথস্ক্রিয়াগুলির মাধ্যমে ভিক্টরের কাছে জিনিসগুলি প্রমাণ করতে সক্ষম হয়েছিল। ZKPs ব্যবহারিক হওয়ার জন্য, প্রোভার এবং যাচাইকারীর মধ্যে মিথস্ক্রিয়া ন্যূনতম হওয়া উচিত। সৌভাগ্যবশত, SNARK নামক একটি কৌশল অ-ইন্টারেক্টিভ শূন্য-জ্ঞান প্রমাণের অনুমতি দেয়।
SNARK-এর নিম্নলিখিত বৈশিষ্ট্য রয়েছে (যেখান থেকে তারা তাদের নাম পেয়েছে):
আপনি সাধারণত সামনের দিকে "zk" (শূন্য-জ্ঞানের জন্য) ট্যাক করে দেখতে পাবেন যে এই প্রক্রিয়া চলাকালীন, যাচাইকারী সত্য প্রমাণিত হওয়া ছাড়া আর কিছুই শেখে না।
zkSNARK-এর অন্তর্নিহিত গণিত উচ্চ-ডিগ্রী বহুপদীর উপর সমরূপ গণনা জড়িত। কিন্তু আমরা বুঝতে পারি কিভাবে zkSNARK গুলি অন্তর্নিহিত গণিত না জেনে কাজ করে যা নিশ্চিত করে যে তারা সঠিক। আপনি যদি গণিতের আরও বিশদ বিবরণ চান, আমি সুপারিশ করি ক্রিশ্চিয়ান রেইটউইসনারের "সংক্ষেপে zkSNARKs" ।
একটি সাধারণ উদাহরণ হিসাবে, ধরুন ভিক্টরকে একটি sha256
হ্যাশ, H
, কিছু মান দেওয়া হয়েছে। পেগি প্রমাণ করতে চায় যে সে একটি s
জানে যেমন sha265(s) == H
ভিক্টরের কাছে s
প্রকাশ না করে। আমরা একটি ফাংশন C
সংজ্ঞায়িত করতে পারি যা সম্পর্ক ক্যাপচার করে:
C(x, w) = ( sha256(w) == x )
সুতরাং, C(H, s) == true
, যখন w
এর জন্য অন্যান্য মান false
হবে।
একটি zkSNARK কম্পিউট করার জন্য G
, P
, এবং V
তিনটি ফাংশন প্রয়োজন। G
হল কী জেনারেটর যা lambda
এবং ফাংশন C
নামক একটি গোপন প্যারামিটার নেয় এবং দুটি পাবলিক কী তৈরি করে, প্রুভিং কী pk
এবং ভেরিফিকেশন কী vk
। একটি প্রদত্ত ফাংশন C
এর জন্য তাদের শুধুমাত্র একবার তৈরি করা দরকার। পরামিতি lambda
এই ধাপের পরে অবশ্যই ধ্বংস করতে হবে কারণ এটির আর প্রয়োজন নেই এবং যার কাছে এটি আছে তারা জাল প্রমাণ তৈরি করতে পারে।
প্রোভার ফাংশন P
ইনপুট হিসাবে প্রমাণী কী pk
, একটি পাবলিক ইনপুট x
, এবং একটি ব্যক্তিগত (গোপন) সাক্ষী w
নেয়। P(pk,x,w)
কার্যকর করার ফলাফল হল একটি প্রমাণ, prf
, যে প্রবক্তা w
এর জন্য একটি মান জানে যা C
সন্তুষ্ট করে।
যাচাইকারী ফাংশন V
V(vk, x, prf)
গণনা করে যা সত্য যদি প্রমাণ prf
সঠিক হয় এবং অন্যথায় মিথ্যা হয়।
পেগি এবং ভিক্টরের কাছে ফিরে এসে, ভিক্টর একটি ফাংশন C
বেছে নেয় যা সে পেগিকে কী প্রমাণ করতে চায় তার প্রতিনিধিত্ব করে, একটি এলোমেলো সংখ্যা lambda
তৈরি করে এবং প্রমাণ এবং যাচাইকরণ কী তৈরি করতে G
চালায়:
(pk, vk) = G(C, lambda)
পেগি অবশ্যই lambda
মান শিখবে না। ভিক্টর পেগির সাথে C
, pk
, এবং vk
শেয়ার করে।
পেগি প্রমাণ করতে চায় যে সে s
মান জানে যা x = H
এর জন্য C
সন্তুষ্ট করে। তিনি ইনপুট হিসাবে এই মানগুলি ব্যবহার করে প্রমাণী ফাংশন P
চালান:
prf = P(pk, H, s)
পেগি ভিক্টরের কাছে প্রমাণ prf
উপস্থাপন করেন যিনি যাচাইকরণ ফাংশন চালান:
V(vk, H, prf)
যদি ফলাফল সত্য হয়, তাহলে ভিক্টর নিশ্চিত হতে পারে যে পেগি s
এর মান জানে।
ফাংশন C
একটি হ্যাশের মধ্যে সীমাবদ্ধ থাকার প্রয়োজন নেই যেমন আমরা এই উদাহরণে করেছি। অন্তর্নিহিত গণিতের সীমার মধ্যে, C
বেশ জটিল হতে পারে এবং যেকোন সংখ্যক মান জড়িত হতে পারে যা ভিক্টর পেগিকে একবারে প্রমাণ করতে চান।
এই নিবন্ধটি ও'রিলি মিডিয়া দ্বারা প্রকাশিত আমার লার্নিং ডিজিটাল আইডেন্টিটি বই থেকে একটি উদ্ধৃতি।
এছাড়াও এখানে প্রকাশিত.