بدافزار SpyAgent از روی اسکرینشات، رمز کیفپول را سرقت میکند
شرکت مکآفی یک بدافزار (SpyAgent) جدید اندرویدی را کشف کرده که میتواند با استفاده از…
۱۷ شهریور ۱۴۰۳
۲۱ فروردین ۱۴۰۱
زمان مطالعه : ۹ دقیقه
تاریخ بهروزرسانی: ۱۲ اسفند ۱۴۰۱
در این مطلب میخوانید
هر برنامه، وبسایت یا پلتفرمی که رشد کند، در نهایت نیاز به مقیاسپذیری برای سازگار شدن با افزایش ترافیک دارد. هنگامی که صحبت از سازوکارهای مبتنی بر داده است، توجه به این نکته که مقیاسپذیر کردن ضربهای به امنیت و یکپارچگی دادهها نزند، بسیار مهم است. پیشبینی میزان ترافیکی که هر پلتفرم بسته به موقعیتهای مخلتف میتواند تجربه کند دشوار است. در دنیای آزاد رمزارزها دشواری این پیشبینی چندین برابر میشود. به همین دلیل میتوان از راهحلهایی همچون شاردینگ برای پایگاههای داده استفاده کرد.
شاردینگ (Sharding) یک روش در پارتیشنبندی پایگاه داده است. بعد از به چالش کشیده شدن بلاکچین در مورد مقیاسپذیری، از آنجایی که بلاکچین هم نوعی پایگاه داده به شمار میآید، از این روش به عنوان یکی از راهحلهای مقیاسپذیری استفاده شد. استفاده از شاردینگ در بلاکچین باعث میشود که تعداد تراکنش بیشتری در هر ثانیه پردازش شود.
شاردینگ تمام بلاکچین را به پارتیشنهای کوچکتری تقسیم میکند که به هر واحد شارد گفته میشود. در واقع میتوان گفت از این روش، بجای یک زنجیره اصلی در بلاکچین، شبکه به خرده زنجیرههایی تقسیم میشود که هرکدام از یکدیگر متمایز میشوند و در نهایت مستقل عمل میکنند. از مزایای دیگر شاردینگ میتوان به کاهش تاخیر یا کندی شبکه اشاره کرد. اما در عین حال نگرانیهایی در مورد حمله به شاردها و آسیبپذیری آنها وجود دارد که همواره میتواند منجر به از دست رفتن اطلاعات شود.
بلاکچین شامل مدیریت زنجیره تامین و تراکنشهای مالی میشود. به همین دلیل این شبکهها در حال حاضر بهصورت گسترده مورد استفاده قرار میگیرند و همه روزه محبوبیت بیشتری پیدا میکنند. با افزایش محبوبیت هر شبکه بلاکچین حجم تراکنشها و معلاملاتی که شبکه باید مدیریت کند، افزایش پیدا میکند. اگر بلاکچین را به عنوان یک پایگاه داده در نظر بگیریم، با افزایش دادهها، شبکه نیازمند یافتن راههای جدیدی برای پردازش سریع و موثر دادهها است در همینجا شاردینگ با اشتراک گذاری دادهها میتواند کمک کند.
دفترکل توزیع شده یکی از دلایل اصلی جذابیت و شفافیت بلاکچین است. دفترکل توزیع شده باعث میشود تراکنشها در چندین سایت و جغرافیای مخلتف به اشتراک گذاشته شود. با ثبت هر تراکنش، کپیهایی از تراکنش در عرض چند ثانیه در شبکه ارسال میشود و میتوان گفت این سازوکار یک ناظر عمومی ایجاد میکند. اگر بخشی از شبکه مورد حمله قرار گیرد، اشتراک گذاری صورت گرفته باعث میشود آنچه بهوسیله کلاهبرداران تغییر پیدا کرده است، بهراحتی شناسایی شود. با این تفاسیر میتوان فناوری بلاکچین و سازوکار دفتر کل توزیع شده را به عنوان راهی برای کاهش تقلب و محدود کردن آسیبهای ناشی از حملات سایبری در نظر گرفت.
از اصلیترین چالشهای بلاکچین، مقیاسپذیری است. رفته رفته با اضافه شدن رایانهها به شبکه و بالا رفتن تعداد تراکنشها، شبکه کند میشود و فرآیند پردازش به تاخیر میافتد. این تاخیر میتواند جلوی استفاده گسترده از بلاکچین را بگیرد و در رقابت با سیستمهای پرداخت الکترونیکی دیگر، بلاکچین از سرعت و کارآمدی کمتر برخوردار شود. یکی از راهحلها برای ایجاد مقیاسپذیری بدون ایجاد تاخیر، فرآیند اشتراکگذاری Sharding است. این فرآیند بگونهای طراحی شده است که بار شبکه را بین پارتیشنها تقسیم و ضمن کاهش تاخیر شبکه، امکان پردازش تراکنشهای بیشتر بوسیله بلاکچین را محقق میکند.
قبل از بررسی نحوه انجام اشتراک گذاری در یک شبکه بلاک چین، بررسی نحوه ذخیره و پردازش داده ها در حال حاضر مهم است.
در بلاکچین Node یا گرههایی وجود داد که وظیفه پردازش یا مدیریت تراکنشها را به عهده دارند. گرهها در بلاکچین مستقل هستند و مسئولیت نگهداری و ذخیره تمام دادهها در شبکه غیر متمرکز هستند. هر گره اطلاعات مهمی همچون مانده حساب و تاریخچه تراکنش را ذخیره میکند. طراحی شبکه بلاکچین بهگونهای است که هر گره باید تمام عملیات مربوط به دادهها و تراکنشهای شبکه را پردازش کند.
درحالی که با ذخیره هر تراکنش در تمام گرههای امنیت یک بلاکچین تضمین میشود، این مدل پردازش تراکنشها، شبکه را به میزان قابل توجهی کند میکند. سرعت آهسته برای پردازش موضوعی است که میتواند آینده بلاکچین را تحت تاثیر قرار دهد.
شاردینگ با تقسیم بار کاری تراکنشها در شبکه بهصورتی که هر گره نیازی به مدیریت یا پردازش تمام تراکنشها نداشته باشد، حجم بار کل شبکه را پخش میکند.
شاردینگ را میتوان از طریق پارتیشن بندی افقی پایگاه داده با استفاده از تقسیم پایگاه داده به ردیفها انجام داد. شاردها در این روش ردیف نامیده میشوند و بر اساس ویژگیهای تعریف شده، مفهوم سازی میشوند. به عنوان مثال یک شارد میتواند مسئول ذخیره وضعیت و تاریخچه تراکنش برای نوع خاصی از آدرس باشد. همچنین شاردینگ میتواند براساس نوع دارایی دیجیتال انجام گیرد. تراکنشها هم می توانند بر اساس ترکیبی از شاردها انجام شوند.
اگر بخواهیم یک معامله املاک و مستغلات را از طریق شاردینگ در نظر بگیریم، میتوان گفت که این معامله از قسمتهای مختلفی تشکیل میشود و هر قسمت را یکی از شاردها میتواند پردازش کند. نام مشتری، کلیدهای دیجیتالی که به صورت یک قفل هوشمند پیکرهبندی میشود و همچنین پرداخت اجاره، کل فرآیند میتواند با استفاده از این سازوکار بهصورت کارآمد پردازش شود.
هرکدام از شاردها میتوانند بین دیگر شاردها به اشتراک گذاشته شوند. این اشتراک گذاری دادهها میتواند جنبه کلیدی فناوری بلاکچین، که همان اشتراکگذاری است را حفظ کند و به این ترتیب دفترکل برای کاربران در دسترس میماند و تمام تراکنشها را تمام کاربران می توانند مشاهده کنند.
امنیت، اصلیترین چالشی که شاردینگ با آن مواجه است. اگرچه هر شارد یا خرده زنجیره فقط دادههای خود را پردازش میکند اما نگرانیهای امنیتی در مورد به مشکل خوردن خرده زنجیرهها وجود دارد.
اگر هر خرده زنجیره را به عنوان یک شبکه بلاکچین مستقل در نظر بگیریم که کاربران و دادههای تایید شده خود را دارد، یک هکر میتواند با تصاحب یک شارد تراکنشهای نادرست و مخرب را به کل سیستم ارسال کند.
اتریوم از برجستهترین پروژههای بلاکچینی است که در خط مقدم آزمایش شاردینگ به عنوان راهحلی برای مشکلات تاخیر و مقیاسپذیری قرار میگیرد. اتریوم قصد دارد با راهاندازی ۶۴ خرده زنجیره جدید و یک زنجیره اصلی به نام Beacon Chain سازوکار این پلتفرم قرارداد هوشمند را به سمت اثبات سهام ببرد.
اتریوم برای مقابله با مشکل امنیتی توضیح داده شده در روش شاردینگ، قصد دارد با تخصیص تصادفی گرههای شبکه به خرده زنجیرهها و تخصیص مجدد آنها در فواصل زمانی تصادی، امنیت را تامین کند. این آدرس دهیهای تصادفی باعث میشود که هکرها نتوانند زمان و خرده زنجیره مد نظرشان را به درستی مورد حمله قرار دهند.
همچنین، توجه به این نکته مهم است که اشتراکگذاری هنوز در مرحله آزمایش اولیه بوده و برای شبکههای بلاکچین استفاده میشود، در نتیجه تمام مسائل و چالشهای احتمالی هنوز حل نشده است.
شاردینگ به عنوان یک تکنیک مقیاسپذیری در بلاکچین برای بهبود ظرفیت پردازش تراکنشها پیشنهاد و پیادهسازی شده است. شاردینگ مفهومی با ریشه در محاسبات توزیع شده است و برای مدتی طولی در پایگاههای داده و سیستمهای محاسباتی در مقیاس بزرگ مورد استفاده قرار گرفته است.
ایده پیادهسازی شاردینگ در بلاکچین برای اولین بار در سال ۲۰۱۴ توسط ویتالیک بوترین از بنیانگذاران اتریوم مطرح شد. با این حال چهار سال بعد در سال ۲۰۱۸ بنیاد اتریوم تحقیقات جدی را برای پیادهسازی شاردینگ در شبکه اتریوم آغاز کرد. موضوعی که در نهایت با ارتقا اتریوم به نام اتریوم ۲.۰ پایههای اصلی پیادهسازی آن قرار داده شد.
شاردینگ به اصلیترین چالش شبکههای بلاکچینی که همان مقیاسپذیری است میپردازد. شبکههای بلاکچینی با استفاده از این روش میتوانند در توان عملیاتی بیشتری را ارائه دهند که این موضوع باعث میشود پلتفرمهای عرضه شده روی آنها بتواند حجم بیشتری از کاربر و دارایی را به سوی خود جذب کنند.
حل مشکل مقیاسپذیری با استفاده از شاردینگ برای بلاکچینها هرچند بسیار امیدوارکننده به نظر میرسد، اما شاردینگ هم با محدودیتها و چالشهایی روبرو است. برخی از این چالشها و محدودیتها عبارتاند از:
ارتباط نودها (شاردها): در یک بلاکچین تشکیل شده از شاردهای مختلف، ممکن است این بخشها نتوانند به اندازه یک بلاکچین یکپارچه با یکدیگر ارتباط برقرار کنند و به همین ترتیب انعطافپذیری و عملکرد کلی بلاکچین محدود شود.
پیادهسازی شاردینگ به عنوان راهحل مقابله با چالش مقیاسپذیری بعد از به روزرسانی اتریوم، به عنوان یکی از مهمترین روشها مطرح شده است. با این حال شاردینگ تنها راهحل برای افزایش سرعت و مقیاسپذیری شبکه بلاکچینی نیست.
راهحل جایگرین دیگر زنجیره جانبی نام دارد. زنجیرههای جانبی به عنوان بلاکچینهای مستقلی عمل میکنند که به بلاکچین اصلی متصلند. این شبکههای جانبی میتوانند برای اهداف خاصی مانند پردازش انواع خاصی از تراکنش استفاده شود که به کاهش بار روی بلاکچین اصلی منجر میشود.
شاردینگ هم مانند هر روش دیگری هرچند باعث بهبودهای قابل توجه در عملکرد کلی میشود اما شامل مزایا و معایبی است.
مزایا
معایب
خطرات امنیتی: تبدیل شبکه به چند شبکه کوچک باعث میشود این شبکههای کوچکتر در مقابل خطرات امنیتی احتمالی آسیبپذیرتر باشند.
پیچیدگی: شاردینگ باعث میشود شبکه بلاکچینی پیچیدهتر شود که همین موضوع اجرای تغییرات و توسعه را دشوارتر میکند.