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

در این مطلب قصد داریم در مورد چگونگی ساخت یک توکن شخصی (Custom Token) ملقب به سکه‌‌ برنامه‌‌نویسی‌‌شده به زبان پایتون‌‌ صحبت کنیم. قبل از اینکه به بحث کد آن وارد شویم، در مورد توکن‌‌ها و پیشینه آنان، تفاوت آنان با آلتکوین‌‌ها و برخی از مفاهیم شبکه استلار بحث خواهیم کرد. این مطلب طولانی است، پس وقتی آن را بخوانید که زمان کافی داشته باشید.

0 228

توکن‌‌ چیست؟

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

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

من به‌عنوان یک فرد اهل کراچی، یا جنوب آسیایی، یکی از طرفداران پر و پا قرص گوشت بریانی هستم. فرض کنید من قصد دارم بریانی بخورم و به چند مغازه خاص بریانی در شهرم (رستوران Madni Biryani) سر می‌‌زنم. وقتی بریانی سفارش می‌‌دهم، گوشت مرغ یا گاو، در پیشخوان مغازه پول را پرداخت می‌‌کنم و فروشنده به من یک توکن یا ژتون می‌‌دهد. رنگ توکن بسته به نوع بریانی‌‌ که من می‌‌خواهم فرق می‌‌کند. سپس پیش آن نفری می‌‌روم که بریانی‌‌ها را به مردم می‌‌دهد، توکن را به او می‌‌دهم و او هم یک تیکه بریانی به من می‌‌دهد. این خیلی آشنا به نظر می‌‌رسد، نه؟ چیزی که تعریف کردم در دنیای کریپتو هم رخ می‌‌دهد.

توکن کریپتو چیست؟

توکن‌‌های کریپتو نوع خاصی از توکن ارز مجازی هستند که در بلاکچین‌‌های مختص خود قرار دارند و نماینده‌‌ی یک دارایی یا ابزار هستند.

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

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

استلار چیست؟

استلار یک پروتکل متن‌‌باز برای تبادل پول با استفاده از تکنولوژی بلاکچین است. کد منبع این پلتفرم روی گیت‌‌هاب میزبانی شده است. شبکه استلار می‌‌تواند ارزهای مبتنی بر دولت را ظرف 2 تا 5 ثانیه مبادله کند. این پلتفرم یک دفترکل توزیع شده است و توسط الگوریتم اجماع نگه‌‌داری می‌‌شود که امکان کنترل غیرمتمرکز، اعتماد منعطف، تأخیر کم و امنیت تقریبی را فراهم می‌‌کند.

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

اصطلاحات استلار

دارایی‌‌ها

یک دارایی در دنیای استلار چیزی است که می‌‌تواند ردگیری، نگه‌‌داری و در بلاکچین مبادله شود. یک دارایی می‌‌تواند هر چیزی باشد: ارزی مثل دلار آمریکا یا ریال ایران، رمز ارز بیت‌‌کوین، یک کالا مثل طلا، نقره، آهن، یا میوه‌‌ای مثل پرتقال. در مورد ما، این توکن نمایانگر 1 بشقاب بریانی است. شاید برایتان جای سؤال باشد که چطور ممکن است که شبکه استلار هم بیت کوین و هم بریانی را در شبکه خود داشته باشد؛ دلیل آن این است که همه دارایی‌ها یا توکن‌‌ها در استلار برای کسی که آن را صادر می‌‌کند اعتبار می‌‌آورد. هیچ بیت‌‌کوین یا بریانی واقعی‌‌ وجود ندارد که به شبکه ارسال شود. این مفهوم ساده باعث شده استلار به‌خوبی موارد استفاده در دنیای واقعی را پوشش دهد. مثلاً فرض کنید شما مدیر یک صرافی ارز محلی هستید و به دلار آمریکا (USD) یا روپیه پاکستان (PKR) معامله می‌‌کنید. می‌‌توانید سه نوع توکن مختلف به نام‌‌های USD_COOL ،EURO_COOL و  PKR_COOL به مشتریانتان پیشنهاد کنید. مشتریانی که USD_COOL دارند، وقتی آن X مقدار از توکن‌‌های USD_COOL را به شما برگردانند، اسکناس دلار دریافت می‌‌کنند.

صادرکننده‌‌ها

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

خطوط اعتماد

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

خب حالا بیایید توکن خودمان را با خودکار کردن کل فرایند ساخت آن در پایتون‌‌ با کمک SDK استلار بسازیم.

استفاده تجاری

فرض کنید مدیریت رستوران Madni Biryani با من تماس گرفته است، آنان درباره بلاکچین و توکن‌‌ها چیزهایی شنیده‌‌اند و حالا مایل‌‌اند توکن شخصی خود را ایجاد کنند. هدف این کار ایجاد یک خدمت ارزش افزوده به مشتریان و همچنین شفافیت است. یک مشتری می‌‌تواند با انتقال بانکی، کارت اعتباری یا easyPasia پرداخت خود را انجام دهد و به‌محض تائید، کیف پول آنان ساخته شده و توکن‌‌های مشخصی برایشان فرستاده می‌‌شود که می‌‌توانند از آنان برای خرید بریانی یا انتقال آن به دوستان و خانواده خود استفاده کنند. پس از یک گفتگوی طولانی سر میز شام (البته با یک تکه تند بریانی مرغ و ریتا)، تصمیم بر آن شد که نام توکن/سکه BIRYANI (بریانی) شود. هر 1 بریانی معادل یک بشقاب بریانی مرغ است. تعداد کل توکن‌‌ها 10 هزار خواهد بود (این محدودیت منطقی خواهد بود. حتی فردی که در پیشخوان مغازه است عرضه توکن محدودی دارد که بین مشتریان توزیع کند). مشتریان این امکان را دارند که توکن‌‌های خود را به صورت آنلاین با استفاده از وب با اپلیکیشن موبایل انتقال دهند و بریانی‌‌شان را در منزل دریافت کنند یا از نوعی تنظیمات برای انتقال توکن به رستوران و دریافت بریانی استفاده کنند. از آنجایی که این امکانات دیجیتالی هستند، فرد می‌‌تواند سکه بریانی را برای دوستش که کمبود سکه دارد ارسال کند تا از غذایش لذت ببرد. قرارداد امضا می‌‌شود و من به‌عنوان مشاور ارائه‌‌کننده خدمت باید بلاکچین مبتنی بر استلار و رابط کاربری برنامه که با بلاکچین استلار تعامل دارد را برای آنان نصب کنم (این بخش از نرم‌‌افزار در حیطه تمرکز این مقاله قرار ندارد. اگر امکان داشته باشد در یک مطلب جداگانه به آن می‌‌پردازم).

حالا بیایید برای خودکار کردن کل جریان کار ساخت توکن مقداری کد بنویسیم. من برای این مطلب از نسخه آزمایشی استفاده می‌‌کنم و از طریق سرور Horizon به آن وصل می‌‌شوم که APIهای خوبی را برای ارتباط با استلار ارائه می‌‌کند.

توسعه

اولین کاری که باید بکنم نصب SDK استلار برای پایتون‌‌ است. برای نصب از pip بهره می‌‌گیرم.

                                                                                                                                       

 

به‌محض نصب، برای انجام کار باید چند مرحله انجام دهیم.

ساخت حساب‌‌ها

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

 

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

 

حالا چند ثابت داریم. سپس باید این حساب را در نسخه آزمایشی ثبت کنیم تا این حساب‌‌ها ساخته شوند. می‌‌توانید با ارسال اعتبار به این حساب این کار را انجام دهید. در نسخه آزمایشی این کار توسط زبان دوستی انجام می‌‌شود که 1000 لومن به‌حساب ارسال می‌‌کند. اگر سعی در دسترسی به جزییات حساب توسط حساب API Horizon داشته باشید، چیزی شبیه این کد به شما می‌‌دهد:

 

 

حالا بیایید مقادیری به صادرکننده اختصاص دهیم.

 

 

استلار ابزار بسیار خوبی برای رفع باگ خروجی‌‌های عملیات ارائه کرده است که XDR Viewer نام دارد. من قصد دارم محتوای envelope_xdr را چک کنم. با قرار دادن مقدار envelope_xdr، یک URL عمومی منحصر به خود ایجاد می‌‌کند. اگر حساب رمزگشایی شده را بررسی کنید، چیزی شبیه تصویر زیر می‌‌بینید:

transactionEnvelope

ابزار XDR Viewer در حال انجام کار

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

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

سعی کنید دوباره به‌حساب اعتبار واریز کنید و این بار ربات دوست به شما یادآوری می‌‌کند که:

 

نکته اخلاقی این است که: دوست رباتتان را فقط به خاطر اینکه آزمایشش کرده باشید، آزمایش نکنید.

پس حساب صادرکننده ساخته و تأمین مالی شده است. حالا وقت ساختن دارایی خودمان یعنی همان بریانی (BIRYANI) است.

ساختن دارایی

ساختن یک دارایی در استلار سخت نیست، تنها روش‌‌های مربوط به آن را دنبال می‌‌کنید و تمام!

 

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

برقراری Trustline

گام بعدی برقراری Trustline یا توافق بین صادرکننده دارایی‌‌هاست. یعنی توافقی بین حساب صادرکننده و حساب توزیع‌‌کننده، حسابی که در نهایت سکه‌‌های تازه ایجادشده‌ BIRYANI را نگه می‌‌دارد. برای انجام این مرحله باید یک حساب توزیع‌‌کننده داشته باشیم. ما فرایند ()get_address و () fund_accountرا برای ساخت یک کیف پول جدید استلار تکرار می‌‌کنیم و سپس توافق از طریق کد برقرار می‌‌شود. پس از تکرار فرایند جزییات حساب مشتری که در پایین آمده است را دریافت کردم.

CUSTOMER_ADDRESS = ‘GCDBCPDOTXTJMJVKPUBJO7Y7WF6RLT275INXSYAFSLGKRC5H66FYC25I’
CUSTOMER_SEED = ‘SCKO6DZU3FHF4DDOVL6ZXNHGDII5GXWA5VHIFKYBPOBJGPU35Y2MHZO3’

حساب توزیع‌‌کننده/مشتری آماده است و مرحله بعدی برقراری توافق است و برای رسیدن به آن هم باید عملیات Change Trust را انجام دهیم. از آنجایی که این عملیات روی سرور Horizon اجرا می‌‌شود، باید برای انجام کار به سرور Horizon وصل شویم.

 

از آنجایی که روی سرور Testnet هستم، پس تنها ()horizon_testnet را وارد سرور کردم. گزینه‌‌ دیگر horizon_livenet است که برای تولید مورداستفاده قرار می‌‌گیرد. برای عملیات Change Trust به یک سوژه دارایی، حساب دریافت‌‌کننده برای برقراری توافق و محدودیت نیاز خواهید داشت. همه تراکنش‌‌های استلار به یک شماره مسلسل نیاز دارند. شماره مسلسل نوعی از AUTO_INCREENT است که از قابل‌‌شناسایی بودن هر تراکنش توسط یک id منحصربه‌فرد اطمینان حاصل می‌‌کند. وقتی شماره مسلسل را درخواست می‌‌کنید، همیشه 1+ آخرین شماره خواهد بود.

 

اگر این کد را اجرا کنم، شماره مسلسل 38912811723653120 را دریافت می‌‌کنم.

مهم نیست چند بار این کد را اجرا کنم، تا زمانی که تراکنش‌‌های دیگری روی این حساب اجرا نشوند، شماره تغییر پیدا نمی‌‌کند. این درست مثل گرفتن ()max یک ID در MySQL و اضافه کردن 1 به آن است. حتی اگر به جزییات حساب از طریق REST API دست پیدا کنید، همان شماره مسلسل را در آنجا خواهید یافت.

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

(‘msg = TextMemo(‘Change Trust Operatio

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

خب جلوتر برویم.

 

خب حالا باید یک پاکت نامه (envelope) از تراکنش‌‌ها بسازیم، توسط دریافت‌‌کننده امضایش کنیم و سپس آن را در سرور Horizon ثبت کنیم. همچنین به ارجاع موضوع دریافت‌‌کننده نیاز داریم و آن را با ارسال مقدار اسمی مقدار ارزش کلید در روش ()from_seed در Keypair انجام می‌‌دهیم.

 

خب حالا اینجا چه خبر است؟ شما موضوع حسابی را دریافت کرده‌‌اید که این تراکنش را امضا می‌‌کند. شما باید همه تراکنش‌‌ها را امضا کنید و برای این کار به کلید خصوصی آن حساب احتیاج خواهید داشت.

حالا وقت ثبت این تراکنش در سرور Horizon است.

 

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

 

بله! می‌‌توانم ورودی‌‌های سکه BIRYANI را ببینم. همه چیز واضح است، نه؟ شاید با اجرای ]=[‘horizon.account(receiver_address)[‘balances آن را از نظر برنامه‌‌نویسی چک کنید و فهرستی از تمام موجودی‌‌ها به شما برمی‌‌گرداند. در مورد من به شکل زیر نمایش داده می‌‌شود:

 

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

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

 

اگر برایتان سؤال بود که چرا ارزهای مختلفی در یک کیف پول قرار دارند، جواب آن ساده است، فقط کافی‌‌ست از خود بپرسید چرا ارزهای مختلفی در کیف پول چرمی‌تان می‌‌گذارید؟

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

خب توکن برگشته است و من جنس مورد نظرم را دریافت کرده‌‌ام.

مدیریت Madni Biryani از دید اینکه کل جریان کار تحویل بریانی توسط بلاکچین (که در اینجا استلار است) دیجیتالی شده است بسیار خشنود خواهد شد. آن‌‌ها آن‌قدر خوشحال شدند که در کنار صورتحسابم یک درجه بریانی به من دادند. زندگی زیباست!

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

نتیجه

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

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

تصور کنید یک صرافی در ایالات متحده، یکی در آسیا و یکی در اروپا دارید. شما 3 گره دارید و مشتریان می‌‌توانند در بازه زمانی کوتاهی پول ردوبدل کنند. این هم برای مشتریان و هم برای کسب‌‌وکار صرفه‌‌جویی زیادی در هزینه دارد. همه باید از شعبه A تراکنش انجام دهند و در شعبه B انجام می‌‌شود. به‌محض تائید تراکنش، فرد حاضر در صرافی به شما دلار می‌‌دهد و خوشحال به خانه برمی‌‌گردید. احتمالات بی‌‌شمارند.

منبع: hackernoon.com

شاید از این مطالب هم خوشتان بیاید.

ارسال پاسخ

آدرس ایمیل شما منتشر نخواهد شد.