محدودیتهای تمرکززدایی چیست؟
در کجای مسیر قرار داریم و تا چه نقطهای میتوانیم پیش برویم؟
یکی از مزایای مهم فناوری دفتر کل توزیعشده این است که امکان اتصال همتا به همتای چندین نود (گره) را در شبکه فراهم میکند که به همین ترتیب هر نود به اطلاعات مشابهی دسترسی داشته و از ابتدا بهصورت یکسان ارزشگذاری میشوند. این بدان معنی است که شبکه اجازه نمیدهد که یکی از نودها نسبت به سایر نودها از امتیاز بیشتری برخوردار باشد.
در این مقاله، تمرکززدایی بهعنوان شبکهای تعریف میشود که بهطور یکسان در فرایند شرکت کرده و در عین حال اطمینان حاصل شود که هر نود میتواند تمام اطلاعات ارائهشده توسط نودهای دیگر را تأیید کند. در مقابل، اگر یک زیرمجموعه از نودها با وظایف مشخصشده منحصر به فردی وجود داشته باشند، عوامل موجود در خارج از بلاک چین بهصورت خودکار باعث کاهش تمرکززدایی خواهد شد. بهعنوان مثال، تعریف نحوه انتخاب اعتبارسنجها، یا نظارت نودها بر اساس یک وضعیت خاص در شبکه را میتوان نام برد.
نکته اصلی اینجاست که تمرکز زدایی بلاک چین، باید امکانات مشارکت برابر و تساوی حقوق همه نودها را در شبکه فراهم سازد.
شبکههای همتا به همتا ناگزیرند که از بین فاکتورهای مقیاسپذیری، تمرکززدایی و امنیت، فقط دو فاکتور را انتخاب نمایند. این مقاله، تمرکززدایی را بررسی کرده و بر تفاوتهای «تمرکززدایی واقعگرایانه» و «تصمیمگیری شخصی» خواهد پرداخت.
تصمیمگیری واقعگرایانه میتواند پاسخ مناسب بین دو یا چند خروجی را بر اساس معیارهای از پیش مشخصشده، تعیین کند.
برای مثال، در سیستمهای اجماع مبتنی بر تحمل خطای بیزانس (BFT)، اجماع هنگامی حاصل خواهد شد که ۲ نود از ۳ نود، بر روی خروجی مشخصی، توافق داشته باشند. به عبارت دیگر برای خروجی مشابه اگر ۲ از ۳ توافق انجام شود، اجماع حاصلشده و در غیر این صورت اجماعی صورت نخواهد گرفت. این فرایند کاملاً مستقیم است. در مقابل، یک توافق dApp، که ورودیها را از نودهای جداگانه برای حل اختلاف بهدست میآورد، اجازه نمیدهد که همه اعضای شبکه اطلاعات را رصد و تأیید نمایند. هر دو طرف اختلاف شواهد خود را ارائه داده و بر اساس دیدگاه گیرنده اطلاعات، مشخص خواهد شد که اختلاف به نفع کدام نود حلوفصل داده خواهد شد. این نمونهای از تصمیمگیری احساسی است.
هدف اصلی این پست، تمرکز بر محدودیتهای تمرکز زدایی در تفاوت بین تصمیم گیری احساسی و تصمیم گیری واقع گرایانه است. در تصمیم گیری احساسی امکان ابهام در نتیجه وجود دارد در حالی که این مسئله در مورد تصمیم گیری واقع گرایانه اتفاق نخواهد افتاد.
پروژههای رمزنگاری شده برحسب معماری شبکه خود، ازلحاظ غیرمتمرکز بودن درجات متفاوتی دارند. با توجه به نوع طراحی سیستم اجماع، حالت بلاک چین و دستورات شبکه، میزان تمرکززدایی متفاوت خواهد بود. صرفنظر از نوع طراحی بلاک چین، تمرکززدایی توسط موانع فنی و اجتماعی، همچون دادههای اوراکل (Oracle)، مدیریت، هنجارهای اجتماعی سیستم و انتظارات محدود میشود.
دادههای اوراکل (Oracle Data)
بلاک چین ها برای دریافت اطلاعات از دنیای خارجی، وابسته به دادههای اوراکل هستند. اوراکلها، منابع اطلاعاتی مانند وبسایتها، کتابها، دستگاههای اندازهگیری، نتایج مسابقات ورزشی و غیره هستند. اکثر اطلاعاتی که ما روزانه در حال دریافتشان هستیم، توسط یک نهاد مرکزی مانند روزنامه، کانال تلویزیونی، نویسنده کتاب، یا یک مقاله منتشرشده، تهیه میشود. در زندگی روزمره، ما باید منابع اطلاعاتی موثق و مورد اعتماد خودمان را انتخاب کنیم. برای انجام این کار، ما سابقه نویسنده، منبعی که اطلاعات در آن قرار دارند، و یا بهطور کلی میانه خودمان با آن منبع را مدنظر قرار میدهیم.
تصور کنید من و شما روی آب و هوای فردای سانفرانسیسکو ۵۰ دلار شرط میبندیم. من میگویم که فردا آفتابی خواهد بود و شما روی بارانی بودن آن شرط میبندید. حالا ما سه گزینه برای مدیریت این معامله داریم:
اول اینکه ما به هم اعتماد کنیم. هوای فردا هرچه باشد، بازنده ۵۰ دلار به برنده میدهد. اگر ما باهم دوست باشیم، شاید این گزینه راهکار مناسبی برای مدیریت معامله باشد. با این حال، دوست و غریبه فرقی نمی کند. یک نفر میتواند به راحتی از پرداخت مبلغ امتناع کند.
راه دوم این است که شرط را به قرارداد تبدیل کنیم. با ثبت یک قرارداد هر دو طرف تمایل بیشتری به پرداخت خواهند داشت. با این حال اگر بازهم یکی نخواهد پرداخت کند چه؟ برنده باید چیزی بیشتر از مبلغ معامله را برای هزینه شکایت پرداخت کند و رسیدگی به پرونده احتمالا مدت زیادی طول میکشد. بهویژه برای مبالغ کم بستن قرارداد نمیتواند گزینه مناسبی باشد.
راه سومی در پیشروی ماست و آن داشتن یک شخص سوم است. هرکدام از ما ۵۰ دلار به شخص سومی میدهیم و او کل مبلغ را به برنده خواهد داد. اما… او میتواند با تمام پول فرار کند یا از پرداختن آن سرباز بزند.
بنابراین حالا باید یکی را انتخاب کنیم: اعتماد (به یکدیگر یا شخص سوم) و یا قرارداد
مطلوب ترین حالت ممکن، حالتی بدون نیاز به اعتماد و بدون نیاز به قرارداد است. ما نمیتوانیم به غریبهها اعتماد کنیم و از سوی دیگر با بستن قرارداد کاغذی، اگر طرف مقابل به عهدش وفا نکند، وقت و زمان زیادی تلف خواهد شد.
حالا فناوری بلاک چین وارد میشود و راه دیگری را پیش روی ما میگذارد که امن، سریع و ارزان است.
ما میتوانیم چند خط کد بنویسیم و یک برنامه را روی بلاک چین اجرا کنیم تا هر کدام از ما ۵۰ دلار برای آن بفرستد. این برنامه ۱۰۰ دلار را به صورت کاملا امن حفظ خواهد کرد و وضعیت آب و هوای فردا را به صورت خودکار از چند منبع رسمی بررسی خواهد کرد. برنامه ما باید از یک سایت هواشناسی، هوای فردای سانفرانسیکو را بفهمد تا بتواند میان ما داوری کند. در این مورد، این سایت هواشناسی، اوراکل یا راهنمای ما است.
بهطور پیشفرض، بلاک چین ها نباید به اعتماد نیازی داشته باشند. به همین ترتیب، کاربران نباید نیازی داشته باشند تا بدانند چه کسی در پشت آدرس کلید عمومی کاربر دیگر قرار دارد تا اطلاعات موجود را تأیید کنند. بنابراین ما نمیتوانیم همان منطق از سیستمهای متمرکز، که بهوسیله تصمیم گیریهای آگاهانه انجام میشوند، بر روی سیستمهای غیرمتمرکز پیاده کنیم.
تفاوتی ندارد که اطلاعات، بر روی زنجیره ساختهشده و بنابراین بهراحتی تأیید شوند یا یک نهاد خارج از زنجیره، اطلاعات را در اختیار داشته باشد. در مورد دوم، اطلاعات باید بهصورتی برای بلاک چین آماده شوند که نیازی به اعتماد نباشد که این گزینه، برای تصمیمگیری در مورد قراردادهای هوشمند کاربرد دارد. مشکل اینجاست که هیچ راه قابلاطمینانی برای ارائه اطلاعات از یک منبع متمرکز به بلاک چین، وجود ندارد. آلیس چطور باید بفهمد که اطلاعات باب مورد اعتماد است در حالی که منبع اطلاعات را نمیشناسد؟ یک سیستم غیرمتمرکز بر اساس دادههای متمرکز، دیگر غیرمتمرکز نیست.
در حال حاضر، این مشکل را میتوان از طریق نودهای ناظر حل کرد. به این طریق که آلیس نه تنها از باب برای اطلاعاتش سؤال خواهد کرد، بلکه نظر چارلی، دنیل، الی و چند نفر دیگر را هم در مورد این اطلاعات خواهد پرسید. با این حال، این روش فقط برای حالت تصمیمگیری واقعگرایانه امکانپذیر خواهد بود. نودهای ناظر در تصمیمگیری احساسی قابلاعتماد نخواهند بود. فرض کنیم بلاک چین باید بداند که کدام تیم، برنده مسابقه فوتبال بوده تا شرط بندیهای پیش از بازی را به پاداشهای خود برساند. بلاک چین میتواند به تمام شرکتکنندگان، یا یک گروه خاصی از شرکتکنندگان، اجازه دهد تا اطلاعات خود از نتیجه بازی را ارائه دهند. پس باب، چارلی، دنیل، الی و سایرین، دانستههای خود را از نتیجه آخرین بازی، به اشتراک خواهند گذاشت. ممکن است آلیس، پاسخهای متفاوتی را دریافت کند (چون دنیل روز بدی داشته و با دادن اطلاعات غلط، و بدون توجه به نتیجه واقعی، میخواهد که برنده شرطبندی باشد). پس هرچه آلیس پاسخهای بیشتری دریافت کند، بیشتر به پاسخهای میانگین و پاسخهایی که بهدفعات زیادتر تکرار میشوند، اعتماد خواهد کرد. فرض بر این است که هر چه تعداد افرادی که نتایج خود را ارائه میدهند افزایش یابد، نتیجه بازی دقیقتر خواهد بود.
در این سناریو، بدون توجه به اینکه تیم X برنده شده است یا خیر، نتیجه هنوز میتواند سیاهوسفید باشد. اعتقادات افراد درباره تصور آنها از نتیجه صحیح بازی، مهم نیست. اما اگر باب و آلیس خواهان حل اختلاف هستند، ادراک فردی چارلی، دنیل، الی و سایرین از مشکل موجود، مهم است. باب خواهد گفت که حق با اوست و آلیس خواهان حل اختلاف به نفع خود خواهد شد. با این حال، اگر جزئیات اختلاف در زنجیره وجود نداشته باشد، هیچ راهی برای حلوفصل قاطعانه اختلافات بین آلیس و باب وجود ندارد. درواقع آنها نمیدانند که آیا باب یا آلیس اطلاعات درستی ارائه دادهاند یا خیر. به همین سبب، نتیجه همیشه جانبدارانه خواهد بود. از این رو، این سیستم فقط برای تصمیمگیری واقعگرایانه مناسب خواهد بود.
بهعنوان مثال برای تعیین مکان یک بسته، اطلاعات مورد نظر حتی اگر از یک دستگاه گرفته شود، نودهای بلاک چین نخواهند فهمید که این دستگاه، قبل از ثبت اطلاعات، دستکاری شده است.
نکته اصلی: هر نود باید قادر به بررسی و تأیید اطلاعات موجود بر بستر بلاک چین باشد. در حالی که یک شبکه غیرمتمرکز میتواند به نودها یا یک زیرمجموعه مشخص از نودها اجازه فراهم نمودن اطلاعات برای بلاک چین را بدهد، اطلاعات فقط در مورد دادههای واقعگرایانه صادق خواهد بود. اطلاعات احساسی ارائهشده توسط نودهای جداگانه، بر روی زنجیره تأیید نخواهند شد.
مدیریت (governance)
مدیریت میتواند بهعنوان اصول موجود در تصمیمگیری برای مدیریت انگیزههای مشترک تعریف شود. من قصد دارم ادعایی بحثبرانگیز مطرح کنم. اگر بلاک چین، متکی به تصمیمگیری خارج از زنجیره بوده و یا با رویکرد ترکیبی از تصمیمگیری داخل و خارج زنجیرهای عمل کند، هیچ بلاک چینی بهطور کامل غیرمتمرکز نیست.
مدیریت درون زنجیرهای، هر تصمیمی است که بر اساس رأی گیری داخل زنجیرهای اتخاذ شده است. به این ترتیب هر نود یا زیرمجموعهای از نودهایی که ثابت کردهاند قابلاعتمادند، میتوانند در مورد نتیجهای از نودهای دیگر، تصمیمگیری کرده و رأی دهند. بهطور کلی، نودهایی در سیستم که بیشترین چیز را برای از دست دادن دارند، قابل اعتماد تر هستند. بهعنوان مثال، این مسئله میتواند با تعریف ارائه سهام در شبکه، و ریسک از دست دادن اعتماد و یا منابع دیگر سرمایهگذاری شده، مانند قدرت محاسباتی در شبکه اجماع اثبات کار (PoW)، حاصل شود. در مقایسه با مدیریت درون زنجیرهای، مدیریت برون زنجیرهای، هر تصمیمی که در یک فرم یا خارج از زنجیره دیگری گرفته شده باشد، را خلاصه خواهد نمود. این قضیه، اغلب شامل جامعه توسعهدهندگان و تمام کسانی است که در مناظرهها شرکت میکنند. البته در این پست، به جزئیات، مزایا و معایب هر دوی این موارد، پرداخته نخواهد شد. کسانی که علاقهمند به این مورد باشند، میتوانند نظرات Vlad Zamfir و ویتالیک بوترین را در مورد مدیریت بلاک چین، مطالعه کنند.
همچنین بخوانید: چرا بلاک چین با دموکراسی در تضاد است؟
در حالی که من در مورد اثربخشی تصمیمگیری خارج زنجیرهای یا داخل زنجیرهای یا مدل ترکیبی این دو، جانبدارانه سخن نخواهم گفت، ولی معتقدم این مسئله، تمرکززدایی را محدود خواهد ساخت. در محیطی که واقعاً غیرمتمرکز است، همه باید بتوانند در تصمیمگیری شرکت کرده و خود را برای رسیدن به اهداف مشترک سازماندهی کنند. مدیریت، مکانیزمهایی را برای تشکیل گروهها فراهم کرده و بدین ترتیب قدرت را در سیستم به دست میآورد. اغلب سیستمهای غیرمتمرکز امروزی توسط توسعهدهندگان ساخته شده و تحت مدیریت قرار میگیرند. Vlad Zamfir در این باره میگوید:
توسعهدهندگان بلاک چین، نمیخواهند مستقیماً مسئولیت مدیریت بلاک چین را بر عهده بگیرند. درواقع آنها توسعهدهندگان مفاهیم ساختاری و غیرقابل مشاهده، در سرورهای غیرمتمرکز هستند. آنان مهندسانی هستند که مسئولیت قضاوت را نمیخواهند. و نباید هم داشته باشند.
بنا بر گفتهٔ Vlad، مدیریت نباید در حیطهٔ مهندسان، متمرکز شود. مشاهده گروه خودمختاری که تصمیم به بسط دادن طراحی مدیریت غیرمتمرکز بهکل یک جامعه را دارند، مرا میترساند.
نقاط ضعف دموکراسی زنجیرهای
در حال حاضر، پروتکل dPoS، احتمالاً نزدیکترین نمونه به یک پروتکل دموکراسی زنجیرهای است. این پروتکل اجازه میدهد که نودها بتوانند با اختصاص سهام خود، نودهای دیگر را حمایت مالی کنند و نودهایی که بیشترین سهام شبکه را در اختیار دارند، تصمیمگیری در شبکه را بر عهده گیرند. dPoS به نودها اجازه میدهد تا مقادیر زیادی از سهام را دریافت کنند. هیچ راهی وجود ندارد که یک نود انفرادی با رأی خود، نود منتخبی را از سیستم اجماع بیرون کند (سناریوی اول). با این حال، اگر یکی از نودها، تصمیمات مدیریت محلی را قبول نداشته باشد، میتواند پارتیشنی ایجاد کرده و امور را بهدلخواه خود، پیش ببرد. در مدیریت درون زنجیرهای، اینگونه فعالیتها مجاز نیستند.
برخلاف dPoS، اثبات سهام به نودهای مجزا اجازه می دهد که سهام بیشتری را به خود اختصاص داده و خودشان بخشی از فرایند نودهای منتخب باشند. این روش، بهمراتب ساده تر از متقاعد ساختن گروهی از نودها بهمنظور اختصاص سهام برای دستیابی به نتیجه ای دیگر است (سناریوی دوم).
درنهایت، تنها بهشرطی که هر کاربر، یک رأی داشته باشد، رأی گیری داخل زنجیرهای ممکن خواهد شد. ولی از آنجایی که هر کاربر میتواند با ایجاد چندین آدرس، حق رأی بیشتری داشته باشد، این حالت مدنظر نخواهد بود. درنتیجه، مدیریت درون زنجیرهای، رأی ها را با میزان ثروت ارزیابی خواهد نمود. ولی این مسئله، پلوتاکراسی را قوت خواهد بخشید که فقط ثروتمندان قادر به ادارهٔ سیستم خواهند بود. بنابراین، مدیریت درون زنجیرهای در حال حاضر مفید واقع نشده و احتمالاً باید از آن اجتناب شود.
نکتهٔ اصلی: زمانی یک بلاک چین بهطور کامل غیرمتمرکز خواهد شد که مدیریت درون زنجیرهای را در کل شبکه پیادهسازی کند. با این حال، مدیریت زنجیرهای بهطور کامل محقق نخواهد شد زیرا کاربران قادر به ثبت هویت خود نیستند. درنتیجه، آرا با مقیاس ثروت سنجش خواهند شد که این موضوع، برابری در سیستم را کمرنگ خواهد ساخت.
فاکتورهای جمعی
در صورتی که در وهله اول باید از مدیریت درون زنجیرهای، به خاطر دلایل مختلفی اجتناب شود، پس احتمالاً محدودیتهای قطعی برای تمرکززدایی، غیرقابل اجتناب بوده و همچنین، برای کاربران داخلی سیستم هم اهمیت چندانی نخواهد داشت. البته این شرایط، در همه موارد صادق نیست. سناریوهای خاصی وجود دارند که در آنها، برای کاربران اهمیت خاصی ندارد که چه کسی تصمیمگیرنده باشد. در حالی که سناریوهای دیگری نیز وجود دارد که تصمیمگیری شفاف و بینقص، حائز اهمیت بسیاری است. تصور کنید صاحبخانهٔ شما میتواند قراردادتان را هر زمان که دوست دارد، تغییر دهد. این مسئله، احتمالاً تغییرات مخربی را بر وضعیت مالی و احساسی شما خواهد گذاشت. بنابراین برای شما مهم است که مثلاً در قوانین و قراردادها، تصمیمات اتخاذ شده، قبلاً در چارچوب از پیش تعیین شدهای، موردبحث قرار گرفته باشد. در مقابل، برای شما مهم نیست که چه کسی قهوهٔ شما را برایتان خواهد آورد. چون از آنجایی که هزینهٔ قهوه را پرداخت کردهاید، به هر حال قهوه را دریافت خواهید کرد.
نتیجه میگیریم که کاربران عادی، به خاطر خدماتی که استفاده میکنند، ممکن است حتی نخواهند در تصمیمگیری روزمره دخالتی داشته باشند. همانطور که پلتفرمهای بلاک چین و برنامههای غیرمتمرکز، در حال تحسین خود، بر اساس میزان تمرکززدایی هستند، ممکن است برای کاربر نهایی، تنها کافی باشد تا در تصمیمگیری فرآیندهای انتخابی گنجانده شود. بهعنوان مثال، در حالی که وجود مردم یک کشور برای رأی دادن به رییسجمهور یا حزبشان مورد نیازند، تصمیم گیریهای زیستمحیطی و اقتصادی کشور، نیازی به همان مردم، ندارد. برای تحقق تصمیمگیری انتخابی، سیستم یا پلتفرم موردنظر باید تصمیم بگیرد که کدامیک از فرایندها نیازمند شرکت عموم بوده و کدامیک نیستند. و درواقع، این حالت، بیشتر از اینکه تصمیمگیری واقعگرایانه باشد، گونهای از تصمیمگیری احساسی میباشد که باید در پستی مجزا، بهطور مفصل مورد بحث و گفتگو قرار گیرد.
بهطور کلی، از کاربران برای تأثیرگذاری در تصمیم گیریهای مربوط به برنامهها، استفاده نمیشود. بهطور مشابه، آشنایی کافی به کاربران در زمینهٔ مسئولیتپذیری در قبال اطلاعات و رمزهایشان، داده نمیشود. در حالی که برنامههای متمرکز، دارای شبکههای امنیتی هستند تا در مواقع بحرانی که برای پلتفرم یا کاربر، مشکلی به وجود آمده، این مشکلات را حل نمایند، پلتفرمهای بلاک چین، از کاربران خود انتظار دارند که برای اکثر موارد موجود، مسئولیت را بر عهده گرفته و مراقب اطلاعات و رمزهای خود باشند. این حالت ممکن است برای عدهای محبوب باشد، ولی قطعاً برای همه اینطور نیست. ایجاد تغییرات در رفتار دلخواه کاربران، قدم بزرگی بوده و چیزی نیست که در یک سال یا سالهای نزدیک بتوان به آن دست یافت. این مسئله، نیازمند محتوای آموزشی قابلفهم و پلتفرمهای نیمهمتمرکز زیادی خواهد بود.
نکته اصلی: تمرکززدایی برای همه سودمند نیست. اگر برنامههای غیرمتمرکز بخواهند که مورد استفاده وسیع کاربران قرار بگیرند، باید خودشان را در چارچوب طرحهای موجود «کاربردی بودن» و «تایید اعتماد» بگنجانند.
چرا باید برای شما اهمیتی داشته باشد؟
بلاک چینها باید از میان گزینههای تمرکززدایی، امنیت و مقیاسپذیری، اولویتبندی خود را انجام دهند. در حالیکه بهینهسازی میتواند از طریق اجرای طرحهای مختلف انجام پذیرد، تمرکززدایی، دارای محدودیتهای بنیادینی است که باید راه حلهای مناسب آن را بیابیم.
محدودیتهای تمرکززدایی، از اوراکل بلاک چین، مدیریت زنجیرهای و انتظارات اجتماعی سرچشمه میگیرند. اوراکلهای بلاک چین، میتوانند اطلاعات را برای بلاک چین، فراهم کنند. برای مثال، مانند نودهای ناظر، در شکل دروازههایی عمل میکنند ولی نودهای دیگر در بلاک چین، قادر به تأیید منبع این اطلاعات نیستند. این مسئله، یک مشکل فنی است که آسانتر از غلبه بر محدودیتهای مدیریتی یا محدودیتهای اجتماعی است. ممکن است بتوانیم دادههای خارج از زنجیره را، بر روی زنجیره و به وسیلهٔ دستگاههایی که مستقیماً به بلاک چین متصل شدهاند، بهتر تأیید کنیم. در مقابل، مدیریت و محدودیتهای اجتماعی با ذهنیت افراد مرتبط است، که تغییر آن بهصورت بحث بر انگیزی دشوار است. در حال حاضر انتظار نمیرود که مردم در تصمیمگیری روزمره شرکت کنند. بنابراین، انتظار مشارکت فعال کاربران، غیرمعقول به نظر میرسد. ادامه استدلال در امتداد این خطوط، بر نگرانیها و مشکلات، میافزاید. بهعنوان مثال، چه کسی مجاز است تصمیم بگیرد که چه اطلاعاتی باید توسط همه تأیید شود و چه میزان تصمیمگیری باید به یک گروه انتخاب شده از افراد ماهر، اختصاص یابد.
محدودیتهای تمرکززدایی که در این پست مورد بحث قرار گرفتند، انعکاسی از پروژهها و سیستمهای غیر متمرکزی است که قبلاً با آنها مواجه شدهام. احتمالاً دامنه گستردهای از مسائل قابلبحث آمادهاند که نیاز به تحقیق و بررسی بیشتری دارند.
سلام اقای جعفری.چندین مقاله از شما خوانده ام و استفاده کرده ام.بسیار متشکرم بابت تلاشتان اما بنطرم این مقاله تان ترجمه نامفهوم و خشکی داشت و برخی جاهایش را متوجه نشدم.
موفق باشید.