Ë¢ÆÁµÄÇø¿éÁ´ Ïë֪·µÄ¶¼ÔÚÕâÀ ¡ª¡ªÇø¿éÁ´ÖÇÄܺÏÔ¼½ÚÔìÁ÷ʶ´ËÍâ´ó¹æÄ£³¢ÊÔ×êÑÐ
°ä²¼¹¦·ò 2019-11-01¶àÄêÀ´£¬GA»Æ½ð¼×³ÖÐø¹Ø×¢Çø¿éÁ´¼¼Êõ°²È«ÎÊÌ⣬ÔÚÇø¿éÁ´×ÔÉí°²È«ÒÔ¼°Çø¿éÁ´ÀûÓð²È«·½Ã棬¶¼ÓÐÏàÓ¦µÄ×êÑкÍʵ¼ÊË÷Çó¡£
GA»Æ½ð¼×ADLab½áºÏµç×ӿƼ¼´óÑ§ÍÆËã»úѧԺ£¨ÍøÂç¿Õ¼ä°²È«Ñ§Ôº£©³ÂÌü¸±½ÌÊÚ³õ´Î¶ÔÒÔÌ«·»Çø¿éÁ´ÖÇÄܺÏÔ¼½ÚÔìÁ÷µÄ¼ø±ð½øÐÐÁË´ó¹æÄ£×êÑС£¸Ã³É¾Í¡¶A Large-Scale Empirical Study on Control FlowIdentification of Smart Contracts¡·ÓÚ2019Äê°ä·¢ÔÚÖйúÍÆËã»úѧ»á£¨CCF£©ÍƼöµÄBÀàѧÊõ»áÒéInternational Symposium on Empirical SoftwareEngineering and Measurement¡£
¸Ã×êÑзÖÎöÁ˵±Ç°6¸öÖ÷Á÷µÄÖÇÄܺÏÔ¼¾²Ì¬·ÖÎö¹¤¾ß£¬Í¨¹ý¶ÔÒÔÌ«·»Çø¿éÁ´ÉÏÒѲ¿ÊðµÄÈ«ÊýºÏÔ¼£¨Ô¼500Íò£©Ö´ÐÐÖ´Ðиú×ÙÀ´ÆÀ¹ÀËûÃǵľ²Ì¬½ÚÔìÁ÷¼ø±ðÄÜÁ¦¡£³¢ÊÔÖ¤Ã÷£¬Ò»Ð©µäÐ͵ÄÎÊÌâ»áµ¼ÖÂÉÏÊöÊ¢Ðй¤¾ß¶¼ÎÞ·¨¼ø±ðÈ«ÊýµÄ½ÚÔìÁ÷£¨Èç²»ÍêÕûµÄ´úÂëģʽ£©¡£Í¬Ê±£¬³¢ÊÔ·¢ÏÖͨ¹ýÖ´Ðиú×ÙÄܹ»ÓÐЧ¼ÓÇ¿ÕâЩ¹¤¾ß¶Ô½ÚÔìÁ÷µÄ¼ø±ð¡£Í¨¹ýÔÚOYENTEÖÐÒýÈëÖ´Ðиú×Ù£¬ÊµÏÖÁ˰Ѿ²Ì¬½ÚÔìÁ÷·ÖÎöÎó±¨ÂʽµµÍ°Ù·ÖÖ®ÈýÊ®¡£Í¬Ê±£¬¸Ã×êÑлñµÃÁË×î¼ÑÂÛÎÄÌáÃû½±¡£
×êÑÐÄÚÈÝÓÐÄÄЩ£¿
×êÑÐÑ¡ÔñÁËÒÔϵÄÁù¿îÖ÷Á÷ÃæÏò×Ö½ÚÂëÖÇÄܺÏÔ¼µÄ·ÖÎö¹¤¾ß£º
ÉÏÊöÁù¿î¹¤¾ßÖУ¬õè¾¼ûô¸ÐµÄ¹¤¾ß¿ÉÄܱÈõè¾¶²»Ãô¸ÐµÄ¹¤¾ß·¢ÏÖ¸ü¶àµÄ½ÚÔì×ªÒÆõè¾¶£¬ÓÉÓÚËüÃDz»»á²é³ÔÚÏÖʵǰÌáϵÄõè¾¶¿É´ïÐÔ¡£ÆäÖÐOYENTEºÍMAIANÔÚ´¦ÖÃijЩºÏԼʱ»á´¥·¢Òì³££¬Í¨¹ý¶ÈÎö·¢ÏÖ¹²ÓÐÈýÀàÔÒò£º¶ñÒâÎÞЧ×Ö½ÚÂë¡¢²»Ö§³ÖµÄ²Ù×÷ºÍÇó½âÆ÷Òì³£¡£ÎªÁËÉî¿Ì±ÈÁ¦£¬½¨¸´ÁËÕâÈýÀർÖÂÒì³£µÄÈí¼þȱµã¡£
ͨ¹ý¶Ôÿ¸ö¹¤¾ß½øÐÐÈ«ÊýÒÔÌ«·»Çø¿éÁ´ÖÇÄܺÏÔ¼µÄ³¢ÊÔ£¬µÃ³öÒÔϽáÂÛ£º
£¨1£©ÓÉÓÚѡȡµÄ¼¼Êõ»òÕßÅäÖÃ·ÖÆç£¬ËùÒÔµ±Ç°Ö÷Á÷¹¤¾ßʶ´ËÍâÖÇÄܺÏÔ¼½ÚÔìÁ÷ÊýÁ¿²î¾à¼Ó´ó£»ÏßÐÔ·´»ã±à±ÈµÝ¹é·´»ã±àÄܼø±ð¸ü¶à½ÚÔìÁ÷£¬ÓÉÓڵݹé·ÖÎöÔÚ¼ø±ðµ½·¸·¨×ªÒÆÖ¸±êʱ¾ÍÖÕ³¡¹¤×÷¡£
£¨2£©·ÖÆç·ÖÎö¹¤¾ßÔÚ·ÖÎö¸´ÔÓÖÇÄܺÏÔ¼½ÚÔìÁ÷ʱÄÜÁ¦²î¾à½Ï´ó£¬µäÐÍÔÒòÓÐõè¾¶±¬Õ¨¡¢ÌáǰʵÏÖǰÌáºÍ²»ÍêÕûµÄ´úÂëģʽ¡£
£¨3£©ÉÏÊöµÄ6¿îÖ÷Á÷·ÖÎö¹¤¾ß½öÕë¶Ô1.7%µÄÖÇÄܺÏÔ¼ÄÜÁ¦¼ø±ð³öÒ»ÑùµÄ½ÚÔìÁ÷×ªÒÆ¡£
ΪÁËÌáÉýºÏÔ¼·ÖÎö¹¤¾ßµÄ½ÚÔìÁ÷·ÖÎöÄÜÁ¦£¬Ìá³öÁË»ùÓÚÖ´ÐÐtraceµÄ½ÚÔìÁ÷¼ø±ð¼ÓÇ¿¡£ÖÇÄܺÏÔ¼Ö´ÐÐtraceµÄÒ»ÖÖ»ñÈ¡·½Ê½ÊÇͨ¹ý³ß¶È±à³Ì½Ó¿Ú web3.debug.traceTransaction()£¬µ«¸Ã½Ó¿Ú±ØÒªÌṩºÏÔ¼Ö´ÐеÄÂòÂô¹þÏ£Öµ¡£Í¬Ê±£¬¸Ã½Ó¿ÚµÄÔËÐÐЧÄܺܵͣ¬Í¨¹ý¶ÈÎöÔ´Âë·¢ÏÔìäÔÚ»ñÈ¡trace֮ǰ±ØÒª×öÔËÐл·¾³³õʼ»¯¡¢¹¹½¨Õýȷ״̬ºÍ³Á·ÅÂòÂô¼Í¼£¬¼ÓÉÏweb3±à³Ì½Ó¿ÚÊÇRPCŲÓùý³Ì£¬Òò¶øÐ§ÄÜÄÑÒÔÌáÉý£¬×îÖÕÑ¡ÔñÁ˶ÔÒÔÌ«·»Çø¿éÁ´Öն˽øÐвå×®£¬ÓÉÓÚ¸ÃÖÕ¶ËÄÜÖ´ÐÐÈ«ÊýµÄº¹ÇàºÏÔ¼²Ù×÷¡£¾ßÌåÀ´Ëµ£¬Í¨¹ý¶ÔJUMPºÍJUMPI²Ù×÷½øÐÐÁ˲å×®£¬×îÖյõ½ÁË6300ÍòµÄÖ´ÐÐtrace¡£Í¬Ê±£¬Ò²¶ÔÕâЩtrace½øÐÐÁËÇиÓÉÓÚºÏÔ¼µÄÖ´ÐÐtrace¼Í¼»áÔ̺¬ºÏÔ¼ÄڵĽÚÔì×ªÒÆºÍºÏÔ¼¼äµÄ½ÚÔì×ªÒÆ¡£Í¨¹ý¶ÔÉÏÊö¹¤¾ßʶ´ËÍâ½ÚÔìÁ÷ºÍÖ´ÐÐtrace»ñµÃµÄ½ÚÔìÁ÷½øÐÐÁË·ÖÎö£¬·¢ÏÖÖ´ÐÐtraceÄܹ»ÌáÉýÉÏÊö¹¤¾ßµÄ½ÚÔìÁ÷¼ø±ðÄÜÁ¦£¬ÓÈÆäÊǶÔÓÚMAIANºÍMiasm¹¤¾ß£¬ÌáÉýÄÜÁ¦½Ô³¬¹ý°Ù·ÖÖ®°ËÊ®£»¼´±ãÊÇ×îÓÅÁ¼µÄ½ÚÔìÁ÷·¢ÏÖ¹¤¾ßPorosity£¬ÌáÉýÄÜÁ¦Ò²ÓаٷÖ֮ʮ¡£
ΪÁËÑéÖ¤»ùÓÚÖ´ÐÐtraceµÄÓÐЧÐÔ£¬Ñ¡ÔñÁËOYENTE¹¤¾ß½øÐмÓǿʵÏÖºÍÑéÖ¤£¬¼ÓÇ¿µÄ¾ßÌåËã·¨ÈçÏÂͼËùʾ¡£
×êÑÐÁ˾ÖÊÇʲô£¿
³¢ÊÔÁ˾ÖÅú×¢£¬Ö´ÐÐtraceÄܹ»ÓÐЧÌáÉýÉÏÊö¹¤¾ßµÄÖÇÄܺÏÔ¼½ÚÔìÁ÷¼ø±ðÄÜÁ¦£¬ÄÜ·¢ÏÖÕâЩ¹¤¾ß²»ÄÜ·¢ÏֵĽÚÔì×ªÒÆ¡£
ͨ¹ý¶ÔOYENTEµÄÔ´Âë½øÐÐÁËÅú¸ÄÒÔǶÈë¼ÓÇ¿Ëã·¨£¬¼°¶ÔOYENTEÄÜʶ´ËÍâËÄÖÖºÏÔ¼·ì϶½øÐÐÁ˳¢ÊÔ£¬½áÂÛ¼ûÏÂ±í¡£Õë¶ÔÂòÂô°¤´ÎÒÀÀµ¡¢¹¦·òÒÀÀµºÍ³ÁÈëÀàÐ͵ķì϶£¬¼ÓÇ¿OYENTEÄܼì²â¸ü¶àµÄ·ì϶¡£Õë¶Ôδ´¦ÖÃÒì³£·ì϶£¬¼ÓÇ¿OYENTEδÄÜÌáÉý¼ì²âÄÜÁ¦£»¶ÔOYENTE½øÐÐÔ´Âë·ÖÎö·¢ÏÖ£¬ÕâÊÇÓÉÓÚÕâÀà·ì϶ÊÇÖ±½ÓÓúÏÔ¼×Ö½ÚÂëɨÃèÀ´¼ì²âµÄ£¬Óë½ÚÔìÁ÷·ÖÎöÎ޹ء£
Õâ´ÎÕë¶ÔÒÔÌ«·»Çø¿éÁ´ÖÇÄܺÏÔ¼½ÚÔìÁ÷ʶ´ËÍâ´ó¹æÄ£Éî¶È×êÑУ¬»ñµÃÁ˶àÏîеķ¢ÏÖ¡£Í¨¹ý²å×®ÒÔÌ«·»¿Í»§¶Ë£¬ÍøÂçÁËÈ«ÊýµÄÖÇÄܺÏÔ¼²¢»¹ÔÁËÈ«ÊýµÄÖ´ÐÐtrace¡£³¢ÊÔÖ¤Ã÷£¬Ö´ÐÐtraceÄܹ»ÌáÉýµ±Ç°Ö÷Á÷µÄÖÇÄܺÏÔ¼·ÖÎö¹¤¾ßµÄ½ÚÔìÁ÷¼ø±ðÄÜÁ¦£¬¸Ã·¢ÏÖ½«ÓÐÖúÓÚÒÔÌ«·»Óû§¡¢¿ª·¢ÕߺÍ×êÑзÖÎöÈËÔ±·¢Õ¹¸üÉî¿ÌµÄÖÇÄܺÏÔ¼×êÑС£
×÷ΪÐÅÏ¢°²È«ÐÐÒµÁì¾üÆóÒµ£¬GA»Æ½ð¼×¼áÊØ³õÐļ°×ÔÖ÷´´ÐµÄÐÄÁ飬ʼÖÕÆ÷³Á¶ÔÇø¿éÁ´¼¼Êõ°²È«ÎÊÌâµÄ×êÑÐÓëË÷Çó£¬È«Á¦±£ÏÕÓû§¶ÔÇø¿éÁ´µÄ°²È«ÐèÒª¡£


¾©¹«Íø°²±¸11010802024551ºÅ