Insights on Crypto Payments, Infrastructure, and Operations
بینش‌های عمیقدرک بلاکچین

تحلیل تخصصی / OxaPay Deep Insights

تراکنش‌های بلاکچین چگونه کار می‌کنند؟ از ساخت تا تغییر وضعیت

بررسی ساخت تراکنش در کیف پول، مجوزدهی با امضا، انتشار و اعتبارسنجی در شبکه و تغییر وضعیت دفترکل پس از اجرای پذیرفته‌شده.

درک بلاکچین16 فصلشروع مطالعه

تراکنش بلاکچین، درخواستِ مجوزدار برای تغییر وضعیت شبکه است

تراکنش بلاکچین به معنای عبور ارزش از یک مسیر نامرئی نیست؛ بلکه مجموعه‌ای ساختاریافته از داده‌هاست که از شبکه می‌خواهد تغییری مشخص را اعمال کند. این درخواست ممکن است انتقال کوین بومی، فراخوانی یک قرارداد هوشمند، جابه‌جایی توکن، ایجاد دارایی یا تغییر بخش دیگری از دفترکل باشد.

ابتدا کیف پول، شیء تراکنش را مطابق قواعد شبکه می‌سازد. سپس امضاکنندگان لازم با امضای دیجیتال به آن مجوز می‌دهند. داده امضاشده به گره‌های شبکه ارسال می‌شود، گره‌ها مستقل از هم انطباق آن را با قواعد پروتکل بررسی می‌کنند و ممکن است آن را برای درج در بلوک یا دسته‌ای مرتب‌شده انتخاب کنند.

تنها اجرای پذیرفته‌شده می‌تواند وضعیت مشترک شبکه را تغییر دهد. پیش از آن، تراکنش فقط یک پیشنهاد است؛ حتی اگر قابل مشاهده، معتبر و میان گره‌های زیادی منتشر شده باشد، هنوز الزاماً تغییری در مانده‌ها، مالکیت یا داده‌های قرارداد در تاریخچه معتبر شبکه ایجاد نکرده است.

در بیت‌کوین، تراکنش خروجی‌های قبلی را مصرف و خروجی‌های تازه ایجاد می‌کند. در اتریوم، تراکنش دستور امضاشده‌ای است که از حساب آغاز می‌شود. سولانا امضاها و یک یا چند دستور را در قالب تراکنش قرار می‌دهد؛ در TON نیز پردازش پیام توسط یک حساب می‌تواند تراکنش و تغییر وضعیت ایجاد کند. ساختارها متفاوت‌اند، اما الگوی اصلی یکی است.

مدل اصلی: تراکنش = تغییر وضعیت پیشنهادی + مجوز + زمینه پروتکل. پذیرش و اجرای شبکه مشخص می‌کند این درخواست به بخشی از وضعیت مشترک دفترکل تبدیل می‌شود یا نه.
چرخه عمر تراکنش بلاکچین از ساخت و امضا تا انتشار، اعتبارسنجی، ممپول، درج در بلوک و تأییدها
تراکنش از درخواست امضاشده محلی تا تغییر وضعیت پذیرفته‌شده اعتبار بیشتری پیدا می‌کند. صرف مشاهده آن دفترکل را تغییر نمی‌دهد.

کاربر هدف را بیان می‌کند، اما کیف پول شیء تراکنش را می‌سازد

کاربر معمولاً با دستور ساده‌ای فکر می‌کند: «۰٫۰۱ بیت‌کوین بفرست»، «۵۰ تتر انتقال بده»، «توکنی را معاوضه کن» یا «با قرارداد تعامل کن». بلاکچین این خواسته انسانی را مستقیم پردازش نمی‌کند. کیف پول یا برنامه باید آن را به داده‌ای دقیق و سازگار با شبکه انتخاب‌شده تبدیل کند.

این تبدیل اهمیت دارد، چون پشت دستور ظاهراً ساده چند تصمیم فنی پنهان است. کیف پول بیت‌کوین خروجی‌های خرج‌نشده را انتخاب می‌کند و مبلغ برگشتی را محاسبه می‌کند؛ کیف پول اتریوم nonce را تعیین و گس را برآورد می‌کند؛ سولانا و TON نیز حساب‌ها، ارجاع‌های بلوک یا پیام‌های موردنیاز خود را آماده می‌کنند.

هدف انسانی

نتیجه‌ای که کاربر می‌خواهد؛ مثلاً پرداخت به یک آدرس یا فراخوانی برنامه.

شیء تراکنش

ساختار داده ویژه شبکه که تغییر درخواستی را تعریف می‌کند.

مجوز

مدرکی که نشان می‌دهد کلیدهای لازم، دقیقاً همین داده را تأیید کرده‌اند.

نتیجه اجرا

تغییر وضعیتی که پس از پردازش تراکنش پذیرفته‌شده به وجود می‌آید.

بنابراین تراکنش فقط دستور پرداخت نیست؛ توصیفی ماشین‌خوان است از اینکه چه چیزی باید تغییر کند، چه کسی آن را مجاز کرده، چه منابعی قابل استفاده‌اند و کدام قواعد شبکه باید رعایت شوند.

شبکه‌ها فیلدهای متفاوتی دارند، اما هر تراکنش باید اطلاعات کافی برای اعتبارسنجی ارائه کند

یک فرمت جهانی و یکسان برای تراکنش همه بلاکچین‌ها وجود ندارد. با این حال، بیشتر آن‌ها مفاهیم پایه مشترکی دارند: منبع قابل خرج‌کردن، نتیجه درخواستی، مجوز لازم، محافظت در برابر اجرای دوباره یا ترتیب نامعتبر، و هزینه پردازشی که فرستنده پذیرفته است.

جزءکارکردنمونه‌های رایج
منابع مبدأمشخص می‌کند چه چیزی قابل خرج است یا کدام حساب درخواست را آغاز می‌کند.ورودی‌های بیت‌کوین؛ فرستنده اتریوم؛ فهرست حساب‌های سولانا
نتیجه درخواستیانتقال، دستور یا فراخوانی قرارداد را توصیف می‌کند.خروجی‌ها، گیرنده و مبلغ، دستورهای برنامه، بدنه پیام
محافظت ترتیباز بازپخش ناخواسته جلوگیری می‌کند یا توالی معتبر را تعیین می‌کند.Outpoint، nonce، هش بلوک اخیر، شماره توالی
محدودیت منابع و کارمزدمحاسبات را محدود می‌کند یا هزینه پردازش شبکه را می‌پردازد.نرخ کارمزد، سقف گس، کارمزد اولویت، بودجه محاسباتی
امضاهابدون آشکارکردن کلید خصوصی، تأیید دارنده کلید لازم را اثبات می‌کنند.ECDSA، Schnorr، Ed25519، اعتبارسنجی سطح قرارداد

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

امضای دیجیتال به داده دقیق تراکنش مجوز می‌دهد؛ به‌تنهایی پول را منتقل نمی‌کند

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

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

دامنه امضا نیز مهم است. تغییر مبلغ، مقصد، دستور یا هر فیلد مشمول امضا، اعتبار آن را از بین می‌برد. برای همین یک واسطه معمولاً نمی‌تواند انتقال امضاشده را ویرایش کند و در عین حال مجوز اولیه فرستنده را حفظ کند.

تمایز مهم: امضا نشان‌دهنده تأیید داده تراکنش است؛ اعتبارسنجی مشخص می‌کند درخواست در وضعیت کنونی مجاز است یا نه؛ درج در تاریخچه و اجرا تعیین می‌کنند وضعیت دفترکل تغییر کند یا نه.

مدل UTXO و مدل حساب‌محور، وضعیت قابل خرج‌کردن را به شیوه‌های متفاوتی تعریف می‌کنند

ساختار تراکنش از مدل دفترکل پیروی می‌کند. بیت‌کوین از مدل خروجی تراکنش خرج‌نشده یا UTXO استفاده می‌کند. هر تراکنش خروجی‌های مشخصی از گذشته را مصرف و خروجی‌های جدید تولید می‌کند. شبکه موجودی یک «حساب جهانی بیت‌کوین» را به‌روزرسانی نمی‌کند؛ کیف پول با یافتن خروجی‌هایی که کلیدهایش اجازه خرج‌کردن آن‌ها را دارند، موجودی قابل استفاده را حساب می‌کند.

اتریوم حساب‌محور است. حساب دارای کلید خارجی، موجودی و nonce دارد. تراکنش‌ها با ترتیب nonce اعمال می‌شوند و اجرای آن‌ها می‌تواند موجودی، کد قرارداد و فضای ذخیره قرارداد را تغییر دهد. مستندات حساب اتریوم توضیح می‌دهد nonce چگونه جلوی اجرای مجدد همان تراکنش امضاشده را می‌گیرد.

تراکنش سولانا حساب‌هایی را مشخص می‌کند که یک دستور باید از آن‌ها بخواند یا در آن‌ها بنویسد. برنامه‌ها دستور را اجرا می‌کنند و حساب‌های قابل نوشتن را تغییر می‌دهند. هش بلوک اخیر، زمان معتبرماندن تراکنش را محدود می‌کند. راهنمای رسمی تراکنش‌های سولانا امضاها، دستورها، کلیدهای حساب و هش بلوک اخیر را شرح می‌دهد.

TON بر مبنای پیام عمل می‌کند. پیام ورودی ممکن است پردازش یک حساب و ایجاد تراکنشی را آغاز کند که وضعیت همان حساب را تغییر می‌دهد و پیام‌های خروجی به حساب‌های دیگر می‌فرستد. این ارتباط در مستندات پیام‌ها و تراکنش‌های TON توضیح داده شده است.

مدل UTXO

مصرف خروجی‌های مستقل قابل خرج و ایجاد خروجی‌های تازه.

مدل حساب

اعمال تغییرهای مرتب‌شده روی موجودی، nonce و داده حساب.

مدل حساب برنامه

اجرای دستورهایی که حساب‌های مشخص را می‌خوانند یا تغییر می‌دهند.

مدل پیام‌محور

پردازش پیام در هر حساب و تولید پیام برای پردازش‌های بعدی.

انتشار، یک تراکنش پیشنهادی را توزیع می‌کند؛ اما به معنای توافق شبکه نیست

پس از امضا، کیف پول داده سریال‌شده تراکنش را به یک گره یا سرویس می‌فرستد. گره دریافت‌کننده شرایط اولیه را بررسی می‌کند تا تصمیم بگیرد داده را بپذیرد و برای همتایان دیگر ارسال کند یا نه. با تکرار این روند، تراکنش در شبکه پخش می‌شود.

انتشار نه آنی است و نه برای همه گره‌ها یکسان. ارتباطات همتاها، سیاست نرم‌افزار، محدودیت منابع و نمای محلی دفترکل متفاوت است. ممکن است یک مرورگر بلاکچین تراکنشی را معلق نشان دهد ولی سرویس دیگری هنوز آن را ندیده باشد؛ حتی ممکن است بعضی گره‌ها تراکنشی را رد و برخی دیگر نگهداری کنند.

راهنمای شبکه همتابه‌همتای بیت‌کوین تبادل تراکنش میان گره‌های کامل را توضیح می‌دهد. بنابراین «Broadcast» یعنی کیف پول توزیع را آغاز کرده است، نه اینکه همه اعضای شبکه نتیجه واحد و قطعی را پذیرفته‌اند.

سیگنال شبکه: هش تراکنش و اولین مشاهده در شبکه فقط نشان می‌دهند پیشنهادی وجود دارد؛ نه درج در بلوک، اجرای موفق، تأیید، نهایی‌شدن یا تکمیل پرداخت تجاری را.

گره‌ها هم داده تراکنش و هم وضعیت دفترکل هنگام اجرا را ارزیابی می‌کنند

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

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

در اتریوم، امضا باید فرستنده را به‌درستی مشخص کند؛ nonce باید با ترتیب حساب سازگار باشد و اجرای آن به توالی معتبر نیاز دارد. حساب باید ارزش انتقال و حداکثر هزینه اجرا را تأمین کند و نوع تراکنش با قواعد فعال سازگار باشد. اجرای قرارداد هم بررسی‌های دیگری انجام می‌دهد و ممکن است برگشت بخورد.

سولانا امضاهای لازم، هش بلوک اخیر، قفل حساب‌ها، ساختار دستور، منابع کارمزد و قواعد زمان اجرا را بررسی می‌کند. TON پیام ورودی را اعتبارسنجی می‌کند و عملیات حساب را در فازهای تعریف‌شده پروتکل اجرا می‌کند.

تراکنش پیشنهادی
├─ ساختار معتبر است؟
├─ امضاهای لازم معتبرند؟
├─ ورودی‌ها یا وضعیت حساب در دسترس است؟
├─ توالی / nonce / هش بلوک قابل قبول است؟
├─ کارمزد و منابع کافی هستند؟
└─ عملیات طبق پروتکل مجاز است؟
   ├─ خیر ← رد یا عدم انتشار
   └─ بله ← نگهداری به‌عنوان نامزد درج

اعتبارسنجی به وضعیت وابسته است. تراکنشی ممکن است زمان امضا معتبر باشد ولی پیش از درج دیگر قابل استفاده نباشد؛ برای نمونه، تراکنش دیگری خروجی بیت‌کوین را مصرف کرده باشد، تراکنش اتریوم با nonce پایین‌تر هنوز نرسیده باشد یا هش بلوک سولانا منقضی شده باشد.

تراکنش معتبرِ معلق به‌صورت محلی پذیرفته شده، اما در دفترکل قطعی ثبت نشده است

بسیاری از شبکه‌ها فهرست‌های محلی از تراکنش‌هایی دارند که کنترل‌های اولیه را گذرانده‌اند اما هنوز درج نشده‌اند. اصطلاح «ممپول» راحت است، ولی معمولاً یک استخر جهانی واحد وجود ندارد؛ هر گره با توجه به نمای خود و سیاست پذیرش، مجموعه‌ای از نامزدها را نگهداری می‌کند.

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

مقاله OxaPay با عنوان توضیح ممپول بررسی می‌کند چرا تراکنش‌های معلق بر سر ظرفیت پردازش رقابت می‌کنند و چرا زمان درج تغییر می‌کند. اینجا ممپول را در سطح چرخه عمر بررسی می‌کنیم؛ طراحی بازار کارمزد و رقابت برای فضای بلوک موضوع تحلیل جداگانه است.

نمودار ممپول و رقابت تراکنش‌ها برای پردازش، درج در بلوک و تأیید
تراکنش‌های معلق برای ظرفیت محدود شبکه رقابت می‌کنند. معتبر و قابل مشاهده بودن، درج فوری یا تغییر قطعی وضعیت را تضمین نمی‌کند.

درج در بلوک جایگاه اجرای تراکنش را در یک تاریخچه پذیرفته‌شده مشخص می‌کند

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

ترتیب اهمیت دارد، چون نتیجه تراکنش به وضعیت قبلی وابسته است. دو تراکنش ممکن است یک منبع را خرج کنند؛ فراخوانی‌های قرارداد با ترتیب‌های متفاوت نتایج متفاوتی بدهند؛ nonce حساب توالی می‌خواهد؛ و قفل حساب‌ها در سولانا بر اجرای هم‌زمان اثر دارد.

بنابراین درج صرفاً ثبت زمان نیست؛ تراکنش را در نقطه مشخصی از دنباله تغییر وضعیت قرار می‌دهد. درخواست بعد از عملیات پیشین و پیش از عملیات بعدی همان دنباله ارزیابی می‌شود.

اثر ترتیب: اگر پیش از رسیدن نوبت اجرا وضعیت تغییر کند، همان درخواست امضاشده ممکن است نتیجه دیگری بدهد یا دیگر نتیجه معتبری نداشته باشد.

اجرا طبق قواعد قطعی، وضعیت پیشین را به وضعیت جدید تبدیل می‌کند

وقتی نوبت تراکنش در ترتیب پذیرفته‌شده برسد، شبکه قواعد مربوط را اعمال می‌کند. می‌توان این فرایند را به‌صورت تابع تغییر وضعیت نشان داد:

post_state = transition(pre_state, ordered_transaction, protocol_rules)

در بیت‌کوین، اعتبارسنجی موفق خروجی‌های مصرف‌شده را از مجموعه UTXO حذف و خروجی‌های تازه را اضافه می‌کند. در اتریوم، اجرای موفق می‌تواند موجودی‌ها را تغییر دهد، nonce فرستنده را افزایش دهد، قرارداد مستقر کند، داده قرارداد را تغییر دهد و رویداد ثبت کند. آزمون‌های مشخصات اجرای اتریوم، وضعیت پیش از اجرا را با وضعیت مورد انتظار پس از آن مقایسه می‌کنند.

در سولانا هر دستور برنامه‌ای را با حساب‌های اعلام‌شده فراخوانی می‌کند. تغییر حساب‌ها اتمی است: تراکنش به‌صورت یک واحد موفق می‌شود یا تغییرات آن بازگردانده می‌شود. در TON پردازش پیام می‌تواند یک حساب را تغییر دهد و پیام‌های خروجی بسازد که بعداً تراکنش حساب‌های دیگری را فعال کنند.

انتقال توکن نشان می‌دهد تراکنش و حرکت ارزش مفاهیم یکسانی نیستند. در بسیاری از شبکه‌های قرارداد هوشمند، تراکنش بومی یک قرارداد توکن را فراخوانی می‌کند؛ قرارداد موجودی‌های ثبت‌شده خود را تغییر می‌دهد و احتمالاً رویداد انتقال منتشر می‌کند. شیء فیزیکی یا مستقلی به نام توکن بین دو آدرس حرکت نمی‌کند.

رسیدها، لاگ‌ها، رویدادها و ردگیری اجرا شواهدی درباره اجرا می‌دهند، اما خودِ وضعیت نیستند. برنامه‌ها ممکن است از رویدادها برای شناسایی انتقال توکن استفاده کنند؛ با این حال باید بدانند کدام خروجی، تغییر وضعیت معتبر موردنیازشان را ثابت می‌کند.

تراکنش ردشده، حذف‌شده، جایگزین‌شده، منقضی یا برگشت‌خورده در لایه‌های متفاوت شکست می‌خورد

عبارت «تراکنش ناموفق» برای تحلیل دقیق بیش از حد کلی است. درخواست ناقص یا بدون مجوز ممکن است قبل از انتشار رد شود. تراکنش معتبر ممکن است انتخاب نشود و معلق بماند؛ رقیبی جای آن را بگیرد؛ مهلتش تمام شود؛ یا فراخوانی قرارداد با وجود درج در بلوک هنگام اجرا برگشت بخورد.

نتیجهچه اتفاقی افتاده؟اثر بر وضعیت
ردشدهتراکنش قواعد پذیرش یا اجماع را رعایت نکرده است.بدون تغییر در وضعیت قطعی
معلق یا حذف‌شدهنامزد بوده اما درج یا نگهداری نشده است.بدون تغییر در وضعیت قطعی
جایگزین یا متعارضتراکنش دیگری منبع یا جایگاه توالی را مصرف کرده است.فقط جایگزین پذیرفته‌شده وضعیت را تغییر می‌دهد.
درج‌شده و موفقاجرای تراکنش طبق پروتکل کامل شده است.وضعیت جدیدِ موردنظر ثبت می‌شود.
درج‌شده ولی برگشت‌خوردهاجرای عملیات قراردادی آغاز شده ولی شکست خورده است.تغییرات برنامه بازمی‌گردند؛ کارمزد یا تغییر توالی ممکن است باقی بماند.

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

نمودار حالت‌های تراکنش از انتظار و تأیید تا پرداخت، شکست و انقضا
رابط‌ها اغلب چند وضعیت فنی را در چند برچسب خلاصه می‌کنند. سیستم مطمئن باید مشاهده، درج، اجرا و پذیرش تجاری را از هم جدا کند.

هش تراکنش داده را شناسایی می‌کند، نه معنای کامل آن را

شناسه تراکنش معمولاً از داده سریال‌شده آن مشتق می‌شود تا گره‌ها، مرورگرها، کیف پول‌ها و برنامه‌ها بدون تکرار همه داده‌ها به یک تراکنش اشاره کنند. روش هش‌سازی و قواعد تولید شناسه در شبکه‌ها متفاوت است.

راهنمای OxaPay درباره شناسه تراکنش کریپتویی (TXID) کاربرد آن در تأیید و پشتیبانی پرداخت‌های کسب‌وکار را توضیح می‌دهد. مرورگر بلاکچین نیز می‌تواند آدرس‌ها، مبلغ، کارمزد، جایگاه بلوک، نتیجه اجرا و تعداد تأییدها را نشان دهد.

اما هش نمی‌گوید این تراکنش متعلق به کدام سفارش است. دارایی و شبکه مورد انتظار، مبلغ فاکتور، مهلت پرداخت، هویت مشتری یا سیاست تحویل کالا را نمی‌شناسد. هش، مرجع شبکه است نه سند کامل تجاری.

مرز شناسایی: شناسه تراکنش به پرسش «کدام شیء شبکه؟» پاسخ می‌دهد؛ سیستم کسب‌وکار باید مشخص کند «کدام پرداخت، سفارش، مشتری، تعهد و رویداد حسابداری؟»

چرخه عمر مشترک است، اما معنا و تضمین تراکنش به شبکه بستگی دارد

هر شبکه از یک عملیات پیشنهادی به سمت وضعیت پذیرفته‌شده می‌رود، ولی سازوکار متفاوت است. بیت‌کوین بر مصرف خروجی‌ها تمرکز دارد؛ اتریوم می‌تواند ETH منتقل کند یا قرارداد را فراخوانی کند؛ سولانا دستورها را بر حساب‌های صریح اجرا می‌کند؛ TON بر پیام‌ها و پردازش تراکنش در سطح هر حساب متکی است.

این تفاوت‌ها محاسبه کارمزد، اندازه تراکنش، ترتیب، اجرای موازی، انقضا، شناسایی توکن و معنای موفقیت را تغییر می‌دهد. زیرساخت پرداخت نیز باید داده را متناسب با شبکه تفسیر کند: پرداخت ERC-20 از اجرا و لاگ قرارداد شناسایی می‌شود؛ پرداخت بومی بیت‌کوین از خروجی‌ها؛ انتقال Jetton در TON ممکن است نیازمند دنبال‌کردن زنجیره‌ای از پیام‌ها میان قراردادها باشد.

بنابراین نام دارایی کافی نیست؛ کسب‌وکار باید دارایی و شبکه را توأمان بداند. مستندات ارزهای پشتیبانی‌شده OxaPay اطلاعات ارزها را همراه با جزئیات شبکه ارائه می‌کند. یک نماد یکسان توکن در شبکه‌های مختلف ممکن است تفسیر تراکنش کاملاً متفاوتی بخواهد.

مقایسه رفتار تراکنش و تأیید در شبکه‌های مختلف بلاکچین
چرخه عمر کلی مشابه است، اما ساختار تراکنش، زمان تولید بلوک، اجرا، ظرفیت و نهایی‌شدن در شبکه‌ها تفاوت دارد.

تراکنش بلاکچین تنها یک رکورد در یک سیستم کامل پرداخت است

درخواست پرداخت از زمینه تجاری آغاز می‌شود: سفارش، مبلغ، دارایی انتخابی، شبکه، مقصد، زمان اعتبار و مرجع کسب‌وکار. تراکنش بلاکچینی نشان می‌دهد پرداخت‌کننده واقعاً چه داده‌ای فرستاده است. سیستم پرداخت باید درخواست مورد انتظار را با تراکنش مشاهده‌شده تطبیق دهد.

رابط دریافت اطلاعات پرداخت OxaPay این جدایی را نشان می‌دهد. رکورد پرداخت می‌تواند شناسه پیگیری، اطلاعات سفارش و وضعیت کلی پرداخت داشته باشد؛ داده سطح تراکنش نیز هش، مبلغ، ارز، شبکه، آدرس، وضعیت و تعداد تأییدها را در بر گیرد.

تراکنش شبکه و وضعیت پرداخت با هم مرتبط‌اند ولی یکی نیستند. جدول وضعیت پرداخت OxaPay حالت‌های کسب‌وکاری مانند در انتظار، در حال پرداخت، پرداخت‌شده، کمتر از مبلغ، در حال بازپرداخت، بازپرداخت‌شده و منقضی‌شده را مشخص می‌کند. بلاکچین این معانی تجاری را به‌تنهایی ایجاد نمی‌کند.

درخواست تجاری
سفارش + مبلغ مورد انتظار + دارایی + شبکه + مهلت
           ↓
تراکنش بلاکچین
هش + ورودی/حساب + دستور + امضا + نتیجه اجرا
           ↓
تفسیر پرداخت
تطبیق + سیاست تأیید + قواعد استثنا + وضعیت کسب‌وکار

به همین دلیل شناخت تراکنش برای فروشنده اهمیت دارد، حتی اگر درگاه پرداخت جزئیات پروتکل را مدیریت کند. تیم‌ها می‌توانند شواهد شبکه را از تکمیل پرداخت جدا کنند و خطاهای شبکه اشتباه، مبلغ نادرست، تأخیر در درج، اجرای ناموفق و انتقال بدون تطبیق را تشخیص دهند.

برای شناخت هر تراکنش بلاکچین از یک مدل هفت‌مرحله‌ای استفاده کنید

  1. هدف: کاربر یا برنامه نتیجه مطلوب را مشخص می‌کند.
  2. ساخت: کیف پول آن را به شیء تراکنش مخصوص شبکه تبدیل می‌کند.
  3. مجوز: کلیدهای لازم داده دقیق یا شرایط خرج‌کردن را امضا می‌کنند.
  4. انتشار: همتاها تراکنش پیشنهادی را می‌گیرند، بررسی و بازنشر می‌کنند.
  5. پذیرش و انتخاب: نامزدهای معتبر با محدودیت سیاست محلی، ظرفیت، ترتیب و کارمزد منتظر می‌مانند.
  6. درج و اجرا: تراکنش جایگاهی مرتب می‌گیرد و روی وضعیت پیشین اعمال می‌شود.
  7. وضعیت پذیرفته‌شده: نتیجه به تاریخچه شبکه می‌پیوندد و با گذر زمان تعهد بیشتری می‌گیرد.

بسیاری «ارسال‌شدن» را معادل «تغییر وضعیت» می‌دانند. این مدل مانع آن اشتباه است. تراکنش باید از ساخت، مجوز، اعتبارسنجی، ترتیب و اجرا بگذرد تا نتیجه آن در دفترکل دیده شود.

نتیجه نهایی: تراکنش بلاکچین در اصل درخواست تغییر وضعیت است که از یک سیستم راستی‌آزمایی توزیع‌شده عبور می‌کند. کیف پول پیشنهاد می‌دهد و مجوز صادر می‌کند؛ شبکه اعتبارسنجی، ترتیب‌دهی، اجرا و ثبت را انجام می‌دهد.

مستندات پروتکل که در این تحلیل استفاده شده‌اند