بهبود تشخیص قرارداد طرح Ponzi با استفاده از TextCNN چند کانال و ترانسفورماتور

ساخت وبلاگ

با توسعه فن آوری های blockchain ، بسیاری از طرح های پونزی خود را تحت حجاب قراردادهای هوشمند مبدل می کنند. قراردادهای طرح Ponzi باعث خسارات مالی جدی می شود که تأثیر بدی بر روی blockchain دارد. مطالعات تشخیص قرارداد پونزی موجود عمدتا بر استخراج ویژگی های دست ساز و آموزش طبقه بندی کننده یادگیری ماشین برای تشخیص قراردادهای طرح Ponzi متمرکز شده است. با این حال ، ویژگی های دست ساز نمی توانند ویژگی ساختاری و معنایی کد منبع را ضبط کنند. بنابراین ، در این مطالعه ، ما یک روش تشخیص قرارداد طرح Ponzi به نام MTCformer (شبکه های عصبی حلقوی چند کانال و Transofrmer) پیشنهاد می کنیم. به منظور رزرو اطلاعات ساختاری کد منبع ، MTCformer ابتدا درخت نحوی انتزاعی (AST) کد قرارداد هوشمند را به دنباله توکن کد مخصوص فرمت شده از طریق روش Traversal مبتنی بر ساختار (SBT) تبدیل می کند. سپس ، MTCformer از TextCNN چند کانال (شبکه های عصبی Convolutional متن) برای یادگیری ویژگی های ساختاری و معنایی محلی از دنباله کد کد استفاده می کند. در مرحله بعد ، mtcformer از ترانسفورماتور برای ضبط وابستگی های دوربرد نشانه های کد استفاده می کند. سرانجام ، از یک شبکه عصبی کاملاً متصل با عملکرد ضرر حساس به هزینه در MTCformer برای طبقه بندی استفاده می شود. نتایج تجربی نشان می دهد که mtcformer نسبت به روشهای پیشرفته و انواع آن در تشخیص قرارداد طرح پونزی برتر است.

کلید واژه ها:

1. معرفی

blockchain یک فناوری در حال ظهور است که نقش مهمی در فن آوری ها و برنامه های غیر متمرکز مانند ذخیره سازی ، محاسبه ، امنیت ، تعامل و معاملات ایفا می کند. از سال 2008 ، همراه با محبوبیت روزافزون ارزهای رمزنگاری (به عنوان مثال ، بیت کوین و اتر) در بازار مالی ، فناوری مربوط به blockchain نیز در حال بلوغ و توسعه است و به یکی از امیدوار کننده ترین فن آوری های اطلاعات شبکه برای اطمینان از امنیت و حریم خصوصی تبدیل شده است [1، 2]بر خلاف طرح های امنیتی متعارف که بر مسیر عبور از داده ها متمرکز شده است ، blockchain در اصل یک دفترچه مشترک غیر متمرکز است که بر محافظت از داده ها و ارائه ناپذیری و تأیید اعتبار متمرکز است.

قراردادهای هوشمند ، به عنوان برنامه هایی که در Blockchain اجرا می شوند ، در زمینه های مختلف تجاری برای دستیابی به معاملات قابل اعتماد به صورت خودکار به نقطه اعمال شده اند [3،4،5].

تعدادی از سیستم عامل های blockchain ، مانند Ethereum ، برخی از رابط های برنامه کاربردی (API) را برای توسعه قراردادهای هوشمند ارائه می دهند. هنگامی که یک توسعه دهنده یک قرارداد هوشمند را به سیستم عامل های blockchain مستقر می کند ، کد منبع قرارداد هوشمند به صورت بایت تهیه می شود و در سیستم عامل های blockchain ساکن می شود [3،4،6،7]. سپس ، هر گره روی blockchain می تواند کد بایت قرارداد هوشمند را دریافت کند و همه می توانند با ارسال معامله به آدرس قرارداد هوشمند مربوطه ، با قرارداد هوشمند تماس بگیرند.

blockchain و قراردادهای هوشمند در زمینه های مختلفی مانند اینترنت اشیاء (IoT) اعمال شده است. به عنوان مثال ، بانک مشترک المنافع استرالیا ، ولز فارگو ، و بریگان پنبه اولین معامله تجاری بین بانکی را در جهان انجام دادند ، که IoT ، فناوری های blockchain و قراردادهای هوشمند را با هم ترکیب کرده است (https://www. gtreview. com/news/global/در 31 ژوئیه 2021)-حرکت-حرکت-حرکت-بلوکچین-مارت-کنفرانس و عذاب/ دسترسی/ دسترسی به آن). آنها از فناوری های IoT با دستگاه GPS استفاده کردند تا موقعیت جغرافیایی کالاها را در ترانزیت ردیابی کنند. هنگامی که کالاها به مقصد نهایی خود رسیدند ، انتشار وجوه به طور خودکار توسط قراردادهای هوشمند انجام شد. با کمک قراردادهای هوشمند ، مستنداتی که چند روز با استفاده از فرآیندهای دستی طول می کشد می تواند در عرض چند دقیقه به اتمام برسد که این امر تا حد زیادی هزینه زمان را کاهش می دهد و باعث افزایش کارایی تجارت می شود. علاوه بر این ، قراردادهای هوشمند معاملات را شفاف تر می کنند ، زیرا داده های معامله در زمان واقعی در همان سیستم به روز می شوند. در همین حال ، قراردادهای هوشمند پس از استقرار نمی توانند دستکاری شوند. بنابراین ، امنیت بسیار افزایش می یابد و خطر کلاهبرداری کاهش می یابد.

با این حال ، با توجه به پیچیدگی بالای فن آوری های مرتبط با blockchain ، به طور کلی درک منطق تجارت قراردادهای هوشمند به عمق برای سرمایه گذاران دشوار است و آنها فقط می توانند از طریق برخی از اطلاعات توصیفی در مورد قراردادهای هوشمند ، مکانیسم عملکرد تجارت را درک کنند. در نتیجه ، برخی از دلالان شکل کلاسیک کلاهبرداری سرمایه گذاری مالی - طرح پونزی - را به معاملات blockchain معرفی کرده و ضررهای بسیار پرهزینه ای را برای سرمایه گذاران به ارمغان آورده اند. برنامه بسیار پیچیده قرارداد هوشمند باعث می شود طرح های پونزی گیج کننده تر شود. برای جریان بی پایان طرح های پونزی مبتنی بر قرارداد هوشمند ، پستی در یک انجمن محبوب بیت کوین (BitCointalk. org) نشان داد که بیش از 1800 قرارداد طرح پونزی بین ژوئن 2011 و نوامبر 2016 پدید آمده است ، جایی که ضررهای مالی ایجاد شده حتی سخت تر است[8]از آنجا که طرح های پونزی در معاملات blockchain شیوع بیشتری پیدا می کنند ، محققان باید راهی برای تشخیص خودکار قراردادهای طرح پونزی پیدا کنند.

برخی از آثار موجود در ادبیات [7،9] بر استخراج دستی ویژگی ها از کد قرارداد هوشمند و سابقه معاملات قراردادهای هوشمند متمرکز شده است. به طور خاص ، چن و همکاران.[7،9] کد قرارداد هوشمند را برای تولید Bytecode گردآوری کرد و سپس آن را با استفاده از ابزارهای خارجی برای استخراج ویژگی های Opcode ، آن را در کد عامل (OPCODE) تجزیه کرد. علاوه بر این ، آنها ویژگی های حساب آماری را از سابقه معامله قراردادهای هوشمند استخراج کردند. سرانجام ، از الگوریتم جنگلی تصادفی به عنوان مدل طبقه بندی بر اساس ویژگی های آهنگسازی برای تشخیص قراردادهای طرح پونزی استفاده شد. با این حال ، کد منبع قراردادهای هوشمند دارای ساختار و اطلاعات معنایی به خوبی تعریف شده است ، که ویژگی های دست ساز نمی توانند به خوبی ضبط شوند. بنابراین ، عملکرد تشخیص آثار موجود به اندازه کافی رضایت بخش نیست.

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

(1) نحوه استخراج ویژگی های ساختاری کد قرارداد هوشمند به خوبی.

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

(2) نحوه ضبط وابستگی های دوربرد بین نشانه های کد قراردادهای هوشمند.

کد منبع قرارداد هوشمند در مجموعه داده های تجربی ما بسیار طولانی است. برای آموزش توالی طولانی ، مدلهای یادگیری عمیق سنتی (به عنوان مثال ، LSTM [10] و GRU [11]) مشکل ناپدید شدن شیب را دارند. هرچه خروجی مرحله آخرین بار مهمتر باشد ، ورودی بعدی است. علاوه بر این ، ورودی قبلی باعث می شود که اطلاعات بیشتری در فرآیند انتقال از بین برود. بدیهی است که چنین منطقی در زمینه درک معنایی معنی ندارد. این پدیده در مدل به عنوان ناپدید شدن شیب آشکار می شود. بنابراین ، در آموزش دنباله طولانی ، ما به مدلی احتیاج داریم که بتواند وابستگی های دوربرد را به طور کارآمد و بدون ناپدید شدن شیب ضبط کند.

برای رفع این مشکلات ، ما یک روش تشخیص قرارداد طرح Ponzi به نام MTCformer را بر اساس TextCNN چند کانال (MTC) و ترانسفورماتور پیشنهاد می کنیم. MTCformer ابتدا کد قرارداد هوشمند را در یک درخت نحوی انتزاعی (AST) تجزیه می کند. سپس ، به منظور رزرو اطلاعات ساختاری ، MTCformer از روش Traversal (SBT) مبتنی بر ساختار ارائه شده توسط هو و همکاران استفاده می کند.[12] برای تبدیل AST به دنباله SBT. پس از آن ، MTCformer از TextCNN چند کانال استفاده می کند تا بازنمایی های ویژگی را بر اساس کلمات همسایه (نشانه ها) بیاموزد تا ویژگی ساختاری و معنایی محلی کد منبع را بدست آورد. TextCNN چند کانال حاوی چندین فیلتر با اندازه های مختلف است که می تواند چندین بعد مختلف از اطلاعات را بیاموزد و ویژگی های محلی کامل تری را در همان پنجره ضبط کند. در مرحله بعد ، MTCformer از ترانسفورماتور برای ضبط وابستگی های دوربرد بین نشانه های کد استفاده می کند. سرانجام ، یک شبکه عصبی کاملاً متصل با عملکرد از دست دادن حساس به هزینه برای طبقه بندی استفاده می شود.

ما آزمایشاتی را در مورد مجموعه داده های تشخیص قرارداد طرح پونزی انجام می دهیم ، که شامل 200 قرارداد طرح پونزی و 3588 قرارداد طرح غیر پونزی است. ما به طور گسترده عملکرد MTCformer را در برابر سه روش پیشنهادی اخیراً (به عنوان مثال ، حساب ، Opcode ، حساب + opcode) مقایسه می کنیم. نتایج تجربی نشان می دهد که (1) MTCformer از نظر دقت ، از نظر فراخوان 315 ٪ و 297 ٪ از نظر نمره F 51. 56 ٪ بهتر است.(2) MTCformer از نظر سه معیار بهتر از Opcode با 3. 19 ٪ ، 13. 7 ٪ و 8. 54 ٪ عمل می کند. و (3) MTCformer همچنین از نظر دقت ، فراخوان و F-نمره به ترتیب 2. 1 ٪ ، 20. 29 ٪ و 12. 66 ٪ از Account + Opcode بهتر است. ما همچنین mtcformer را در برابر انواع ارزیابی می کنیم ، و نتایج تجربی نشان می دهد که mtcformer از نظر سه معیار از انواع خود بهتر است.

به طور خلاصه ، سهم اصلی این مقاله به شرح زیر است:

(1) ما یک روش mtcformer را با ترکیب TextCNN و ترانسفورماتور چند کانال برای تشخیص قرارداد طرح Ponzi پیشنهاد می کنیم. mtcformer هم می تواند ویژگی های ساختاری و معنایی محلی را استخراج کند و وابستگی های دوربرد بین نشانه های کد را ضبط کند.

(2) ما mtcformer را با روش های پیشرفته و انواع آنها مقایسه می کنیم. نتایج تجربی نشان می دهد که mtcformer نسبت به روشهای مقایسه شده به نتایج دلگرم کننده تر می رسد.

باقیمانده این مقاله به شرح زیر سازماندهی شده است. بخش 2 کار و پیشینه مربوطه را معرفی می کند. بخش 3 روش MTCformer ما را برای تشخیص قراردادهای طرح Ponzi پیشنهاد می کند. بخش 4 تنظیم و نتایج آزمایشی را ارائه می دهد. بخش 5 در مورد تأثیر پارامترها بحث می کند. سرانجام ، بخش 6 مقاله را نتیجه می گیرد و ایده هایی را برای مطالعات آینده ذکر می کند.

2. کار و پیش زمینه مرتبط

در این بخش اطلاعات پیش زمینه در مورد موضوعات مربوط به این مقاله ارائه شده است. بخش 2. 1 کاربرد blockchain در اینترنت اشیاء (IOTS) را شرح می دهد. بخش 2. 2 به طور خلاصه مفاهیم اساسی اتریوم و قراردادهای هوشمند را توضیح می دهد. بخش 2. 3 کار مربوط به تشخیص قرارداد طرح پونزی را معرفی می کند. بخش 2. 4 به طور خلاصه درخت نحوی انتزاعی و تراورس مبتنی بر ساختار را که برای ساختار کد منبع قرارداد هوشمند استفاده می شود ، معرفی می کند. بخش 2. 6 به طور خلاصه شبکه عصبی و ترانسفورماتور مبتنی بر متن را معرفی می کند.

2. 1blockchain و IoT

Blockchain به یک سری از دفترچه های غیر متمرکز و ضد دستکاری شده در یک شبکه اشاره دارد. این سرویس با هزینه های معاملاتی پایین تر و بدون مداخله غیر ضروری ، به کاربران نهایی خدمات ارائه می دهد. blockchain به دلیل منحصر به فرد بودن ، مزایای بسیاری را به تجارت و مدیریت ارائه داده است ، مانند عدم تمرکز ، قابلیت تحریک و کاربردهای استراتژیک ، امنیت و رفتار و عملیات و تصمیم گیری استراتژیک [13]. در حال حاضر ، blockchain در حال حاضر به طور گسترده در اینترنت اشیاء (IoT) مورد استفاده قرار می گیرد. سینگ و همکاران.[14] از blockchain و هوش مصنوعی برای طراحی و توسعه معماری های IoT برای پشتیبانی از تجزیه و تحلیل مؤثر داده های بزرگ استفاده کرد. Tsang و همکاران.[15] هسته های فکری blockchai n-inteet چیزها (BIOT) را مورد بررسی قرار داد. ژانگ و همکاران.[16] یک مدل تجارت الکترونیکی را برای تجارت الکترونیکی IoT برای تحقق معامله املاک هوشمند پیشنهاد کرد. پوری و همکاران.[17] یک استراتژی را بر اساس قراردادهای هوشمند برای رسیدگی به مسائل امنیتی و حریم خصوصی در یک شبکه IoT طراحی کرد. ژانگ و همکاران.[18] مسائل مربوط به کنترل دسترسی کلیدی را در IoT مورد مطالعه قرار داد و یک مدل مبتنی بر قرارداد هوشمند را پیشنهاد کرد تا کنترل دسترسی قابل اعتماد را برای سیستم های IoT فعال کند. با ادغام IoT با سیستم های blockchain و قراردادهای هوشمند ، Ellul et al.[19] تأیید خودکار فرآیندهای فیزیکی را که شامل احزاب مختلف است ، ارائه داد.

2. 2قراردادهای Ethereum و Smart

Ethereum یک بستر blockchain است که یک زبان برنامه نویسی تورینگ (استحکام) و یک محیط زمان اجرا مربوطه (یعنی EVM) را فراهم می کند [20]. این پلتفرم به کاربران امکان می دهد تا با استفاده از کد کوتاه ، برنامه های blockchain را توسعه دهند [21]. در حال حاضر ، Ethereum بزرگترین بستر است که محیط اجرای قراردادهای هوشمند را فراهم می کند [22]. قراردادهای هوشمند که در اتریوم اجرا می شود ، مجموعه ای از Bytecodes EVM است که بر روی blockchain ساکن هستند که می تواند برای اجرای آن ایجاد شود. این bytecodes توسط کامپایلر EVM از کد منبع قرارداد هوشمند گردآوری شده است. استقرار با بارگذاری بایت کد به blockchain از طریق یک مشتری اتریوم انجام می شود. این کدها برخی از قوانین از پیش تعریف شده را اجرا می کنند و "عوامل خودمختار" هستند که در محیط اجرای اتریوم وجود دارند. پس از استقرار ، قراردادهای هوشمند قابل تغییر نیست و اجرای توابع برنامه نویسی آنها نتیجه مشابهی را برای هر کسی که آنها را اداره می کند ، تولید می کند.

در اتریوم ، دو نوع حساب وجود دارد. یکی یک حساب کاربری خارجی (EOA) و دیگری یک حساب قرارداد است [23،24]. EOA ها یک کلید خصوصی دارند که دسترسی به اتریوم یا قرارداد مربوطه را فراهم می کند. از طرف دیگر ، حساب های قرارداد دارای کدهای قرارداد هوشمند هستند. حساب های قرارداد نمی توانند قراردادهای هوشمند خود را اجرا کنند. اجرای یک قرارداد هوشمند به یک حساب خارجی نیاز دارد تا معامله را به حساب قرارداد آغاز کند ، که شروع به اجرای کد در آن می کند.

2. 3قرارداد طرح پونزی

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

در دوره blockchain ، بسیاری از طرح های پونزی در قراردادهای هوشمند مبدل می شوند. ما به این طرح های پونزی به عنوان طرح های هوشمند پونزی اشاره می کنیم و به قراردادهای هوشمند مربوطه به عنوان قراردادهای طرح پونزی مراجعه می کنیم [9]. با توجه به ویژگی های خود اجرایی و غیر آشکار ، قراردادهای هوشمند به ابزاری قدرتمند برای طرح های پونزی برای جذب قربانیان تبدیل شده اند. مهمتر از همه ، مبدأ طرح های پونزی ناشناس است.

از فن آوری های یادگیری ماشین و داده کاوی برای تشخیص قراردادهای طرح پونزی استفاده شده است. نگای و همکاران.[25] یک فناوری را بر اساس داده کاوی برای تشخیص کلاهبرداری مالی پیشنهاد کرد و از آن برای تشخیص طرح های بیت کوین پونزی استفاده می شود [26]. چن و همکاران.[7،9] از تاریخچه معاملات قراردادهای هوشمند در اتریوم و Opcode قراردادهای هوشمند به عنوان ویژگی های دست ساز برای شناسایی طرح های هوشمند پونزی استفاده کرد. متفاوت از مطالعات آنها ، مقاله ما بر یادگیری خودکار ویژگی های معنایی غنی پنهان از کد منبع برای تشخیص قراردادهای طرح پونزی با استفاده از فناوری های عمیق یادگیری و پردازش زبان طبیعی متمرکز است.

2. 4درخت نحوی انتزاعی و گذرگاه مبتنی بر ساختار

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

درخت نحو انتزاعی (AST) نمایشی درخت مانند از ساختار نحوی انتزاعی کد منبع است، که در آن هر گره ساختاری است که در کد وجود دارد [27،28،29]. دلیل انتزاع این است که درخت نحو انتزاعی تمام جزئیات ظاهر نحو واقعی را نشان نمی دهد. به عنوان مثال، براکت های تو در تو در ساختار درخت وجود دارند و به صورت گره ارائه نمی شوند. به طور خلاصه، تبدیل کد بدون ساختار به ساختار درختی طبق قوانین خاصی است.

روش پیمایش مبتنی بر ساختار (SBT) پیشنهاد شده توسط Hu و همکاران.[12] درخت های نحو انتزاعی را از طریق پیمایش سراسری درخت ها به دنباله های فرمت بندی شده خاص تبدیل می کند. کارهای نمایش کد موجود [30،31،32] ثابت کرده است که روش SBT توانایی قوی در حفظ ساختار کد و اطلاعات واژگانی دارد. بنابراین، ما همچنین از روش SBT برای ساختار کد منبع استفاده می کنیم.

2. 5. شبکه عصبی کانولوشن مبتنی بر متن

شبکه های عصبی کانولوشنال (CNN) در ابتدا در زمینه بینایی کامپیوتری به کار گرفته شدند. متعاقباً، ثابت شده است که آنها به نتایج عالی در زمینه پردازش زبان طبیعی سنتی دست می یابند، مانند تحلیل معنایی [33،34،35،36]، پرس و جوی جستجو [37]، مدل سازی جمله [38] و غیره. TextCNN یک ابزار عمیق است. الگوریتم یادگیری با عملکرد بالا در یادگیری ویژگی [39].

هدف اصلی textc گرفتن ویژگی های محلی است. تمام کلمات باید به بردارهای متراکم کم بعدی تبدیل شوند. در طی فرایند آموزش ، اگر این بردارهای کلمه ای ثابت باشند ، به آن CNN-Static گفته می شود. در غیر این صورت ، همانطور که کلمه تعبیه شده به روز می شود ، مدل مربوطه CNN-Non-Static نامیده می شود [40]. به طور کلی ، کلمه i-th می تواند به عنوان یک بردار کلمه k-dimensional x i ∈ R k در جمله نمایش داده شود. جمله ای از طول n به صورت x 1 بیان شده است: n = [x 1 t ، x 2 t ،… ، x n t] t. در این روش ، x 1: n شبیه به تصویری است که می تواند به عنوان ورودی به CNN استفاده شود. در لایه Convolution ، بسیاری از فیلترها با اندازه پنجره های مختلف روی X I در حال حرکت هستند. هر فیلتر x 1: n را برای تولید نقشه برداری از ویژگی های مختلف جمع می کند. به همین ترتیب ، برای متن ، ویژگی های محلی ویندوزهای کشویی متشکل از چندین کلمه ، مشابه N-Grams هستند. مزیت شبکه های عصبی حلقوی این است که آنها می توانند به طور خودکار ویژگی های N-GRAM را برای به دست آوردن اطلاعات معنایی محلی در سطوح مختلف انتزاع ترکیب و فیلتر کنند [41،42،43،44،45،46]. سپس ، حداکثر عملکرد استخر برای نقشه برداری از ویژگی ها اعمال می شود تا حداکثر مقدار را به عنوان ورودی به لایه ترانسفورماتور بدست آورد. به طور کلی ، برخی از تکنیک های منظم مانند ترکیبی و عادی سازی دسته ای می توانند بعد از لایه استخر استفاده شوند تا از استفاده بیش از حد مدل جلوگیری شود.

2. 6ساختارهای مرتبط با ترانسفورماتور

با استفاده از مدلهای سنتی مبتنی بر RNN (به عنوان مثال ، LSTM ، GRU و غیره) ، محاسبه فقط می تواند از چپ به راست یا از راست به چپ انجام شود که از متن به عنوان ورودی استفاده می شود. با این مکانیسم دو مشکل وجود دارد:

محاسبه مرحله T زمان T به نتایج محاسبه در لحظه t - 1 متکی است. این قابلیت محاسبات موازی مدل را محدود می کند.

LSTM و GRU می توانند مشکل وابستگی به عقب و جلو از توالی های طولانی را تا حدی حل کنند ، اما عملکرد هنگام مواجهه با توالی های طولانی به شدت کاهش می یابد.

هر دو مشکل تا حدودی توسط مدل ترانسفورماتور [47] ارائه شده توسط Google در سال 2017 مورد بررسی قرار گرفته است. برخلاف CNN و RNN ، کل ساختار شبکه ترانسفورماتور کاملاً از مکانیسم توجه تشکیل شده است. به طور دقیق تر ، ترانسفورماتور فقط از خود استقبال و یک شبکه عصبی به جلو تشکیل شده است. یک شبکه عصبی قابل آموزش مبتنی بر ترانسفورماتور می تواند با انباشت ترانسفورماتور ساخته شود.

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

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

3. مدل تشخیص طرح پونزی هوشمند

3. 1روند کلی

همانطور که در شکل 1 نشان داده شده است ، روند کلی تشخیص قرارداد طرح پونزی شامل چهار مرحله است:

پیش پردازش داده ها: کد منبع قرارداد هوشمند ابتدا طبق قوانین نحوی ANTLR در یک درخت نحوی انتزاعی (AST) تجزیه می شود. سپس ، ما از روش SBT برای تبدیل AST به دنباله SBT برای رزرو اطلاعات ساختار استفاده می کنیم.

جاسازی کلمه: توالی های SBT از پیش پردازش شده برای تعبیه کلمه در لایه جاسازی شده تغذیه می شوند و کلمات (نشانه ها) در هر دنباله به بردارهای کلمه ای بعدی ثابت تبدیل می شوند. سپس ، یک توالی SBT به ماتریس های تعبیه شده کلمه تبدیل می شود.

یادگیری ویژگی: ما از TextCNN و ترانسفورماتور چند کانال استفاده می کنیم تا به طور خودکار ویژگی های ساختاری و معنایی کد قرارداد هوشمند را از ماتریس های تعبیه شده کلمه ورودی تولید کنیم. فرایند یادگیری ویژگی در شکل 2 نشان داده شده است.

تشخیص قرارداد Ponzi Scheme: ما از یک شبکه عصبی کاملاً متصل برای انجام طبقه بندی نهایی و انجام محاسبه در برچسب واقعی (حضور یک طرح پونزی هوشمند) برای بهینه سازی عملکرد ضرر استفاده می کنیم.

3. 2داده های قبل از پردازش

کد منبع قرارداد هوشمند به شکل بدون ساختار است. بنابراین، ما باید ویژگی های ساختار کد قرارداد هوشمند را برای تشخیص بهتر قرارداد طرح پونزی بیاموزیم [48،49،50]. بنابراین، به جای استفاده از کد منبع ساده به عنوان ورودی مدل، کد منبع را طبق قوانین نحوی ANTLR [51] به یک درخت نحو انتزاعی (AST) تجزیه می کنیم و سپس یک پیمایش مبتنی بر ساختار (SBT) ایجاد می کنیم. توالی از AST با استفاده از روش SBT [12].

روند دقیق روش SBT به شرح زیر است:

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

سپس، روش زیر درخت گره ریشه را طی می کند و تمام گره های ریشه زیردرخت را در پرانتز قرار می دهد.

در نهایت، این روش به صورت بازگشتی هر زیردرخت را تا زمانی که تمام گره ها پیموده شوند تا دنباله نهایی را به دست آورند، پیمایش می کند.

همانطور که در شکل 3 نشان داده شده است، ابتدا از ابزار تجزیه solidity-parser-antlr (https://github. com/federicobond/solidity-parser-antlr در 31 ژوئیه 2021) برای تجزیه کد منبع به AST و سپس تبدیل استفاده می کنیم. AST به دنباله SBT. قرارداد StockExchange تابعی به نام "خروج" را تعریف می کند، که در آن گره های غیر برگ بر اساس نوع نمایش داده می شوند (به عنوان مثال، گره ریشه قرارداد FunctionDefinition است، و متغیر، نام تابع، نام مقدار بازگشتی و غیره با "نمایش داده می شود.#"). گره های برگ نشان دهنده ارزش هر نوع هستند.

3. 3. لایه جاسازی

ماتریس جاسازی کلمه را می توان با استفاده از مقداردهی اولیه تصادفی یا با استفاده از بردارهای از پیش آموزش دیده شده توسط مدل هایی مانند CodeBert [52]، Word2Vec [53]، GloVe [54]، FastText [55]، ELMo [56] و غیره مقداردهی اولیه کرد.- جاسازی کلمات آموزش دیده می تواند از دیگر مجموعه ها برای به دست آوردن دانش قبلی بیشتر استفاده کند، در حالی که بردارهای کلمه آموزش دیده توسط شبکه فعلی می توانند ویژگی های مرتبط با کار فعلی را بهتر به تصویر بکشند. در این مقاله از مقداردهی اولیه تصادفی به دلیل عدم وجود مدل از پیش آموزش داده شده کد قرارداد هوشمند استفاده شده است.

e i ∈ R k بردار کلمه k بعدی مربوط به کلمه i در جمله SBT است. دنباله ای به طول n را می توان به عنوان یک ماتریس E 1 بیان کرد: n = (e 1 T , e 2 T , ... , e n T ) T ∈ R n × k . سپس، ماتریس E 1 : n به عنوان ورودی لایه کانولوشن گرفته می شود.

3. 4. لایه کانولوشنال

در لایه کانولوشن، به منظور استخراج ویژگی های محلی، فیلترهای J با اندازه های مختلف بر روی E 1 : n به هم می پیچند. عرض هر پنجره فیلتر برابر است با E 1 : n ; فقط ارتفاعش متفاوتهبه این ترتیب فیلترهای مختلف می توانند رابطه کلمات را در محدوده های مختلف به دست آورند. هر فیلتر دارای هسته های پیچشی S ( s ∈ S ) است. شبکه های عصبی کانولوشن پارامترها را در هسته کانولوشنال یاد می گیرند و هر فیلتر تمرکز خاص خود را دارد، به طوری که فیلترهای متعدد می توانند چندین قطعه مختلف اطلاعات را بیاموزند. چندین هسته کانولوشنال با اندازه یکسان برای یادگیری ویژگی هایی که مکمل یکدیگر هستند از یک پنجره طراحی شده اند. فرمول تفصیلی به شرح زیر است:

C i j = f ( W j · E i : i + h − 1 + b ) ,

در جایی که W j ∈ R h × k وزن فیلتر j-th ( j ∈ J ) عملیات پیچیدگی را نشان می دهد، C i j ویژگی جدید حاصل از عملیات کانولوشن است، b ∈ R یک بایاس و f است. یک تابع غیر خطی است. بسیاری از فیلترها با اندازه های مختلف پنجره روی ردیف های کامل E 1: n می لغزند و یک نقشه ویژگی [C 1 j , C 2 j , … , C n − h + 1 j ] ایجاد می کنند . مهمترین مقدار ویژگی C ^ s j با ادغام 1-max برای یک اسکالر به دست آمد و به صورت ریاضی به صورت زیر نوشته شد:

C ^ s j = M a x ( [ C 1 j , C 2 j , … , C n − h + 1 j ] ) .

هسته های کانولوشن S برای به دست آوردن مقادیر ویژگی S محاسبه می شوند، که برای به دست آوردن یک بردار ویژگی Pj به هم متصل می شوند:

P j = [ C ^ 1 j , C ^ 2 j , … , C ^ S j ] .

در نهایت، بردار ویژگی همه فیلترها در یک ماتریس نگاشت ویژگی کامل M ∈ R J × S انباشته می شود:

M = [ P 1 , P 2 , … , P j ]

که به عنوان ورودی لایه Transformer استفاده می شود. به طور کلی، برخی از تکنیک های منظم سازی مانند حذف و عادی سازی دسته ای را می توان پس از لایه ادغام اعمال کرد تا از برازش بیش از حد مدل جلوگیری شود [40].

3. 5. تبدیل کننده

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

P E ( p o s , 2 i ) = s i n ( p o s 10, 000 2 i d ) , P E ( p o s , 2 i + 1 ) = c o s ( p o s 10, 000 2 i + 1 d ) ,

که در آن p o s موقعیت نشانه در دنباله است، i شاخص بعد، d ابعاد نگاشت کامل ویژگی M است، و P E موقعیت رمزگذاری ماتریس هم شکل به M است.

ماتریس P E + M برای گرفتن وابستگی های دوربرد به توجه چند سر وارد می شود. جزئیات با معادلات زیر ارائه می شود:

فارکس به زبان ساده...
ما را در سایت فارکس به زبان ساده دنبال می کنید

برچسب : نویسنده : طاهره ایرانی بازدید : <-PostHit-> تاريخ : دوشنبه 13 شهريور 1402 ساعت: 16:30