লাইটনিং বাগ শোষণ করা ছিল নৈতিক পছন্দ PlatoBlockchain ডেটা বুদ্ধিমত্তা। উল্লম্ব অনুসন্ধান. আ.

লাইটনিং বাগ শোষণ করা ছিল নৈতিক পছন্দ

এটি শিনোবির একটি মতামত সম্পাদকীয়, বিটকয়েন স্পেসে একজন স্ব-শিক্ষিত শিক্ষাবিদ এবং প্রযুক্তি-ভিত্তিক বিটকয়েন পডকাস্ট হোস্ট৷

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

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

এটি সত্যই এই বিন্দুকে ড্রাইভ করে যে কোডের যেকোন অংশ যার উদ্দেশ্য বিটকয়েন ডেটা পার্স এবং যাচাই করা তা অবশ্যই বিটকয়েন কোর যা করবে তার সাথে সামঞ্জস্যপূর্ণ তা নিশ্চিত করার জন্য খুব বেশি নিরীক্ষা করা উচিত। এটা কোন ব্যাপার না যে কোডটি একটি নোড বাস্তবায়নের জন্য ঐকমত্য ইঞ্জিন বা একটি লাইটনিং নোডের জন্য লেনদেন পাস করার কোডের একটি অংশ। এই দ্বিতীয় বাগ ছিল আক্ষরিক ঠিক গত মাসের থেকে এক উপরে কোডবেসে। এমনকি লাইটনিং ল্যাবসে কেউ এটি আবিষ্কার করেনি। বুরাকের 11-of-998 মাল্টিসিগ লেনদেনের মাধ্যমে আসল বাগটি ট্রিগার হওয়ার দুই দিন পরে, 999 অক্টোবর এজে টাউনস এটি রিপোর্ট করেছে। এটি মুছে ফেলার আগে 10 ঘন্টার জন্য Github এ সর্বজনীনভাবে পোস্ট করা হয়েছিল। LND-এর পরবর্তী রিলিজে সমস্যাটিকে শান্তভাবে প্যাচ করার অভিপ্রায়ে একটি সমাধান করা হয়েছিল, কিন্তু মুক্তি দেওয়া হয়নি৷

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

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

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

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

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

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

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

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

এটি শিনোবির একটি অতিথি পোস্ট। প্রকাশিত মতামত সম্পূর্ণরূপে তাদের নিজস্ব এবং অগত্যা BTC Inc বা Bitcoin ম্যাগাজিনের মতামতগুলিকে প্রতিফলিত করে না।

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

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