Ë¢ÆÁµÄÇø¿éÁ´ ÏëÖªÏþµÄ¶¼ÔÚÕâÀ ¡ª¡ªÇø¿éÁ´ÖÇÄܺÏÔ¼½ÚÖÆÁ÷ʶ´ËÍâ´ó¹æÄ£³¢ÊÔ×êÑÐ
°ä²¼¹¦·ò 2019-11-01¶àÄêÀ´£¬£¬OG¶«·½Ìü³ÖÐø¹Ø×¢Çø¿éÁ´¼¼Êõ°²È«ÎÊÌ⣬£¬ÔÚÇø¿éÁ´×ÔÉí°²È«ÒÔ¼°Çø¿éÁ´ÀûÓð²È«·½Ã棬£¬¶¼ÓÐÏàÓ¦µÄ×êÑкÍʵ¼ÊË÷Ç󡣡£¡£
OG¶«·½Ìü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Äܹ»ÌáÉýµ±Ç°Ö÷Á÷µÄÖÇÄܺÏÔ¼·ÖÎö¹¤¾ßµÄ½ÚÖÆÁ÷¼ø±ðÄÜÁ¦£¬£¬¸Ã·¢ÏÖ½«ÓÐÖúÓÚÒÔÌ«·»Óû§¡¢¡¢¿ª·¢ÕߺÍ×êÑзÖÎöÈËÔ±·¢Õ¹¸üÉî¿ÌµÄÖÇÄܺÏÔ¼×êÑС£¡£¡£
×÷ΪÐÅÏ¢°²È«ÐÐÒµÁì¾üÆóÒµ£¬£¬OG¶«·½Ìü¼áÊØ³õÐļ°×ÔÖ÷´´ÐµÄÐÄÁ飬£¬Ê¼ÖÕÆ÷ÖØ¶ÔÇø¿éÁ´¼¼Êõ°²È«ÎÊÌâµÄ×êÑÐÓëË÷Ç󣬣¬È«Á¦±£ÏÕÓû§¶ÔÇø¿éÁ´µÄ°²È«ÐèÒª¡£¡£¡£


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