دو تراکنش ممکن است تقریباً همزمان ارسال شوند، اما فقط یکی از آنها در بلوک بعدی تأیید شود.
از بیرون ممکن است این اتفاق تصادفی به نظر برسد. تراکنشها ممکن است معتبر و در شبکه قابل مشاهده باشند و همزمان در ممپول منتظر بمانند. بااینحال، ترتیب تراکنش تعیین میکند چرا یکی زودتر پیش میرود و دیگری مدت بیشتری در حالت انتظار باقی میماند.
دلیل این تفاوت، ترتیب تراکنش است.
ترتیب تراکنش فرایندی است که طی آن ماینرها، اعتبارسنجها یا سازندگان بلوک تصمیم میگیرند کدام تراکنشها وارد یک بلوک شوند و با چه ترتیبی قرار بگیرند. این یکی از سازوکارهای اصلی پشت تأیید بلاکچینی ، رقابت کارمزد و گنجاندن پرداخت در بلوک است.
درک این فرایند توضیح میدهد چرا زمان تأیید همیشه ثابت نیست، چرا برخی تراکنشها در اولویت قرار میگیرند و چرا یک تراکنش قابل مشاهده الزاماً بلافاصله تأیید نمیشود.
برای سیستمهای پرداخت، این موضوع توضیح میدهد چرا بعضی پرداختهای کریپتویی با وجود معتبر بودن، با تأخیر به نظر میرسند.

گنجاندن تراکنشها بر اساس ترتیب ورود نیست
یک تصور رایج این است که بلاکچین به همان ترتیبی که میرسند تأیید میشوند.
بیشتر بلاکچینها اینگونه کار نمیکنند.
وقتی یک بلوک جدید ایجاد میشود، تولیدکننده بلوک تراکنشها را از ممپولانتخاب میکند. ممپول فضای انتظاری است که تراکنشهای معتبر اما تأییدنشده پیش از قرار گرفتن در یک بلوک در آن باقی میمانند.
بااینحال، تولیدکنندگان بلوک صرفاً قدیمیترین تراکنشها را انتخاب نمیکنند. آنها معمولاً بر اساس مشوقها و محدودیتها تراکنشها را انتخاب میکنند.
مهمترین محدودیت، فضای بلوکاست. ظرفیت هر بلوک محدود است. ازآنجاکه همیشه همه تراکنشهای در انتظار در بلوک بعدی جا نمیشوند، تولیدکننده بلوک باید تصمیم بگیرد کدام تراکنشها زودتر گنجانده شوند.
بنابراین، گنجاندن تراکنشها انتخابی است.
درک عمیقتر از نحوه ایجاد و انتشار تراکنشهای کریپتویی کمک میکند دلیل ضرورت این فرایند انتخاب روشنتر شود.
یک تراکنش که دیرتر ارسال شده میتواند زودتر تأیید شود، اگر کارمزد بالاتری پیشنهاد دهد، فضای بلوک را کارآمدتر مصرف کند یا بهتر با سایر تراکنشهای انتخابشده برای بلوک هماهنگ شود.
چه چیزی اولویت تراکنش را تعیین میکند؟
اولویت تراکنش تحت کنترل یک عامل واحد نیست و معمولاً حاصل چند شرط است که همزمان با یکدیگر عمل میکنند.
واضحترین عامل، کارمزد است.
در Bitcoin، این مقدار معمولاً بر حسب ساتوشی بهازای هر بایت مجازی سنجیده میشود. در Ethereum و بسیاری از شبکههای مبتنی بر EVM، این موضوع با کارمزد گس و کارمزدهای اولویت ارتباط دارد. به بیان ساده، تراکنشهایی که پاداش بیشتری برای تولیدکننده بلوک فراهم میکنند معمولاً جذابتر هستند.
اما کارمزد تنها عامل نیست.
اندازه تراکنش هم اهمیت دارد. یک تراکنش کوچکتر ممکن است راحتتر گنجانده شود، چون فضای کمتری از بلوک مصرف میکند. در برخی موارد، تولیدکننده بلوک ممکن است تراکنشهایی را ترجیح دهد که به استفاده کارآمدتر از ظرفیت باقیمانده بلوک کمک میکنند.
وابستگیها نیز میتوانند بر ترتیب اثر بگذارند. بعضی تراکنشها به تراکنشهای قبلی وابستهاند. برای مثال، یک تراکنش ممکن است وجوهی را خرج کند که از یک تراکنش تأییدنشده دیگر آمدهاند. در چنین شرایطی، شبکه ممکن است تراکنشهای مرتبط را با هم ارزیابی کند، نه اینکه هرکدام را کاملاً جداگانه در نظر بگیرد.
زمان همچنان مهم است، اما فقط در چارچوب شرایط موجود. زودتر بودن میتواند کمک کند، اما اگر تراکنشهای بعدی مشوق قویتری ارائه دهند، اولویت را تضمین نمیکند.
بنابراین، ترتیب تراکنش فقط به زمان رسیدن تراکنش مربوط نیست؛ بلکه به این بستگی دارد که هنگام ساختهشدن بلوک، آن تراکنش چگونه با دیگر تراکنشها رقابت میکند.
برای درک بهتر این رقابت، مفید است بررسی کنیم کارمزدهای بلاکچین چگونه بر اولویت و انتخاب تراکنش اثر میگذارند.

چرا تراکنشهای مشابه ممکن است در زمانهای متفاوت تأیید شوند
فرض کنید دو تراکنش Ethereum در فاصله چند ثانیه منتشر شوند:
تراکنش A کارمزد 30 gwei پیشنهاد میدهد.
تراکنش B کارمزد 45 gwei پیشنهاد میدهد.
هر دو تراکنش معتبرند و به شبکه میرسند و در ممپول منتظر گنجاندهشدن میمانند.
وقتی بلوک بعدی ساخته میشود، تراکنش B بهدلیل پیشنهاد کارمزد بالاتر جذابتر است. احتمالاً ابتدا گنجانده میشود، درحالیکه تراکنش A ممکن است در ممپول باقی بماند.
حالا فرض کنید فعالیت شبکه افزایش یابد. تراکنشهای جدیدی با کارمزد 60 gwei یا بیشتر وارد میشوند. تراکنش A دیگر فقط پشت تراکنش B نیست؛ اکنون پشت تعداد زیادی تراکنش جدیدتر با مشوقهای قویتر قرار گرفته است.
از دید کاربر، ممکن است تراکنش A گیر کرده به نظر برسد.
از دید شبکه، این تراکنش در شرایط فعلی اولویت خود را از دست داده است.
برای مثال، ممکن است مشتری پرداختی ارسال کند که فقط به این دلیل در حالت انتظار باقی بماند که تراکنشهای با کارمزد بالاتر برای همان فضای بلوک در اولویت قرار گرفتهاند.
به همین دلیل دو تراکنش مشابه حتی اگر در فاصله زمانی کوتاهی ارسال شوند، میتوانند رفتار متفاوتی داشته باشند. زمان تأیید به موقعیت تراکنش نسبت به سایر تراکنشهای در انتظار بستگی دارد.
چرا ترتیب تراکنش برای پرداختهای واقعی اهمیت دارد
برای بیشتر کاربران، ترتیب تراکنش تا زمانی که یک پرداخت بیشتر از حد انتظار طول نکشد، قابل مشاهده نیست.
برای پذیرندگان، این موضوع مهم است چون زمانبندی پرداخت بر تجربه مشتری اثر میگذارد.
تراکنشی که اولویت خود را از دست میدهد ممکن است:
دیرتر تأیید شود
برای مشتری گیر کرده به نظر برسد
در زمان تسویهحساب ابهام ایجاد کند
باعث ایجاد پرسش برای تیم پشتیبانی شود
منجر به تلاشهای تکراری برای پرداخت شود
این وضعیت همیشه به معنی شکست پرداخت نیست. در بسیاری از موارد، تراکنش همچنان معتبر و قابل مشاهده است، اما هنوز در یک بلوک گنجانده نشده است.
این تفاوت مهم است.
یک تراکنش در انتظار، لزوماً تراکنش ناموفق نیست. ممکن است فقط پشت تراکنشهای رقابتیتر منتظر مانده باشد. درک ترتیب تراکنش به پذیرندگان، توسعهدهندگان و تیمهای پرداخت کمک میکند تأخیرها را دقیقتر تفسیر کنند.
ترتیب تراکنش محلی است، نه سراسری
نکته مهم دیگر این است که ترتیب تراکنش بر اساس یک دید واحد و سراسری از شبکه تعیین نمیشود.
هر ماینر، اعتبارسنج یا سازنده بلوک ممکن است دید کمی متفاوتی از ممپول داشته باشد. تراکنشها دقیقاً در یک زمان به همه نودها نمیرسند. نودهای مختلف ممکن است سیاستهای متفاوتی نیز برای نگهداری یا بازپخش تراکنشها داشته باشند.
این یعنی دو تولیدکننده بلوک ممکن است تراکنشهای مشابهی ببینند، اما نه دقیقاً به یک شکل.
ترتیب نهایی به تولیدکننده بلوکی بستگی دارد که بلوک بعدی را ایجاد میکند. آن تولیدکننده تراکنشها را بر اساس دید خود از ممپول، مشوقها، قواعد و راهبرد ساخت بلوک انتخاب میکند.
به همین دلیل، ترتیب محلی است نه سراسری.
هیچ صف سراسری واحدی وجود ندارد که همه تراکنشها با ترتیب کامل وارد آن شوند. در عوض، هر بلوک بازتاب دید یک تولیدکننده مشخص از شبکه در یک لحظه مشخص است.

چه زمانی ترتیب تراکنش پیچیدهتر میشود
ترتیب پایه تراکنش معمولاً تحت تأثیر کارمزدها، فضای بلوک و شرایط ممپول است. اما در برخی شبکهها، این ترتیب میتواند پیچیدهتر شود.
برای مثال، در Ethereum سازندگان بلوک ممکن است تراکنشها را طوری سازماندهی کنند که از ترتیب آنها ارزش بیشتری استخراج شود. این موضوع اغلب در ارتباط با MEV یا Maximal Extractable Value مطرح میشود. در چنین مواردی، ترتیب دقیق تراکنشها داخل یک بلوک میتواند معنای اقتصادی فراتر از اولویت ساده کارمزد داشته باشد.
در Bitcoin، روشهایی مانند Child-Pays-For-Parent میتوانند بر اولویت اثر بگذارند. اگر یک تراکنش والد با کارمزد پایین با یک تراکنش فرزند با کارمزد بالا همراه شود، ماینرها ممکن است بسته ترکیبی را ارزیابی کنند، زیرا گنجاندن هر دو میتواند از بررسی تراکنش والد بهتنهایی سودآورتر باشد.
این سازوکارها به معنی خراببودن سیستم نیستند. آنها نشان میدهند گنجاندن تراکنش چیزی فراتر از یک صف ساده است.
بلاکچینها سیستمهایی مبتنی بر مشوق هستند و ترتیب تراکنش بازتاب همین مشوقهاست.
زمان تأیید وابسته به شرایط است
وقتی ترتیب تراکنش را درک کنید، تفسیر زمان تأیید سادهتر میشود.
یک تراکنش صرفاً به این دلیل که ارسال شده تأیید نمیشود؛ زمانی تأیید میشود که برای گنجاندن در یک بلوک انتخاب شود.
این انتخاب به شرایط فعلی شبکه، رقابت کارمزد، ظرفیت بلوک، ساختار تراکنش و دید تولیدکننده بلوک از ممپول بستگی دارد.
به همین دلیل، زمان تأیید را باید وابسته به شرایط دانست، نه یک مقدار ثابت.
ممکن است یک تراکنش در لحظه انتشار رقابتی باشد، اما اگر کمی بعد فعالیت شبکه افزایش یابد، جایگاه خود را از دست بدهد. تراکنشهای جدید با کارمزدهای بالاتر میتوانند وارد ممپول شوند و تراکنش اولیه بیشتر از انتظار منتظر بماند.
این موضوع بهویژه در سیستمهای پرداخت مهم است، جایی که کاربران اغلب انتظار دارند پس از ارسال وجه، تأیید فوراً انجام شود.
شبکه تراکنشها را بر اساس انتظار کاربر ارزیابی نمیکند؛ بلکه آنها را بر اساس قواعد گنجاندن، مشوقها و فضای بلوک موجود ارزیابی میکند.
طراحی سیستمهای پرداخت با در نظر گرفتن ترتیب تراکنش
برای زیرساخت پرداخت، درک ترتیب تراکنش به جلوگیری از فرضهای نادرست کمک میکند.
اگر یک تراکنش قابل مشاهده اما تأییدنشده باشد، سیستم نباید بهصورت خودکار آن را ناموفق در نظر بگیرد. ممکن است تراکنش هنوز منتظر گنجاندهشدن باشد.
برای درک روشنتر جریانهای پرداخت مبتنی بر بلاکچین، مهم است ببینیم پرداختهای بلاکچینی از ابتدا تا انتها چگونه پردازش میشوند.
برای سیستمهای پرداخت، این موضوع توضیح میدهد چرا بعضی پرداختهای کریپتویی با وجود معتبر بودن، با تأخیر به نظر میرسند.
این موضوع تفسیر وضعیت پرداخت را در سیستمهای واقعی بهبود میدهد.
نتیجهگیری
ترتیب تراکنش فرایندی است که تعیین میکند کدام تراکنشهای بلاکچین زودتر وارد یک بلوک شوند.
این فرایند فقط بر اساس زمان ورود نیست؛ کارمزدها، فضای بلوک، ساختار تراکنش، شرایط ممپول و دید محلی تولیدکننده بلوک بر آن اثر میگذارند.
برای کاربران بلاکچین، این موضوع توضیح میدهد چرا زمان تأیید میتواند متفاوت باشد. برای پذیرندگان و تیمهای پرداخت، زمینه مهمی برای زمانی فراهم میکند که پرداختها بیشتر از انتظار طول میکشند.
تراکنش با تأخیر لزوماً تراکنش ناموفق نیست. در بسیاری از موارد، تراکنش همچنان در شرایط فعلی شبکه برای گنجاندهشدن رقابت میکند.
وقتی ترتیب تراکنش را درک کنیم، زمان تأیید کمتر مرموز به نظر میرسد و میتوان آن را نتیجه اولویت، موقعیت و نحوه تخصیص فضای محدود بلوک توسط بلاکچین دانست.
اگر با پرداختهای بلاکچینی کار میکنید یا تراکنشهای کریپتویی کسبوکار خود را مدیریت میکنید، یک زیرساخت پرداخت کریپتویی قابلاعتماد مانند درگاه پرداخت کریپتویی OxaPay میتواند به شما کمک کند تأییدها، تأخیرها و تسویه را مؤثرتر مدیریت کنید.




