Ë¢ÆÁµÄÇø¿éÁ´ ÏëÖªµÀµÄ¶¼ÔÚÕâÀ ¡ª¡ªÇø¿éÁ´ÖÇÄܺÏÔ¼¿ØÖÆÁ÷ʶ´ËÍâ´ó¹æģʵÑéÑо¿

Ðû²¼Ê±¼ä 2019-11-01
Öй²ÖÐÑëÕþÖξÖ10ÔÂ24ÈÕÏÂÎç¾ÍÇø¿éÁ´¼¼ÊõÉú³¤ÏÖ×´ºÍÇ÷ÊƽøÐеÚÊ®°Ë´Î¼¯Ìåѧϰ£¬»áÒéÇ¿µ÷Çø¿éÁ´¼¼ÊõµÄ¼¯³ÉÓ¦ÓÃÔÚеļ¼Êõ¸ïк͹¤ÒµÀå¸ïÖÐÆð×ÅÖØÒª×÷Óã¬Òª°ÑÇø¿éÁ´×÷ΪºËÐļ¼Êõ×ÔÖ÷´´ÐµÄÖØҪͻÆÆ¿Ú£¬Ã÷È·Ö÷¹¥Æ«Ïò£¬¼Ó´óͶÈëÁ¦¶È£¬×ÅÁ¦¹¥¿ËÒ»ÅúÒªº¦ºËÐļ¼Êõ£¬¼Ó¿ìÍƶ¯Çø¿éÁ´¼¼ÊõºÍ¹¤Òµ´´ÐÂÉú³¤¡£


¶àÄêÀ´£¬¶«É­Æ½Ì¨Á¬Ðø¹Ø×¢Çø¿éÁ´¼¼ÊõÄþ¾²ÎÊÌ⣬ÔÚÇø¿éÁ´×ÔÉíÄþ¾²ÒÔ¼°Çø¿éÁ´Ó¦ÓÃÄþ¾²·½Ã棬¶¼ÓÐÏàÓ¦µÄÑо¿ºÍʵ¼ù̽Ë÷¡£

¶«É­Æ½Ì¨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%µÄÖÇÄܺÏÔ¼²ÅÆøʶ±ð³öÏàͬµÄ¿ØÖÆÁ÷תÒÆ¡£


£¨4£©ºÏÔ¼µÄÅÓ´ó¶ÈÔ½¸ß£¬²îÒì·ÖÎö¹¤¾ßµÃµ½Ò»Ö½á¹ûÔ½À§ÄÑ¡£


ΪÁËÌáÉýºÏÔ¼·ÖÎö¹¤¾ßµÄ¿ØÖÆÁ÷·ÖÎöÄÜÁ¦£¬Ìá³öÁË»ùÓÚÖ´ÐÐ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¿ÉÒÔÌáÉýµ±Ç°Ö÷Á÷µÄÖÇÄܺÏÔ¼·ÖÎö¹¤¾ßµÄ¿ØÖÆÁ÷ʶ±ðÄÜÁ¦£¬¸Ã·¢ÏÖ½«ÓÐÖúÓÚÒÔÌ«·»Óû§¡¢¿ª·¢ÕߺÍÑо¿·ÖÎöÈËÔ±¿ªÕ¹¸üÉîÈëµÄÖÇÄܺÏÔ¼Ñо¿¡£

×÷ΪÐÅÏ¢Äþ¾²ÐÐÒµÁì¾üÆóÒµ£¬¶«É­Æ½Ì¨¼áÊسõÐļ°×ÔÖ÷´´Ðµľ«Éñ£¬Ê¼ÖÕÖØÊÓ¶ÔÇø¿éÁ´¼¼ÊõÄþ¾²ÎÊÌâµÄÑо¿Óë̽Ë÷£¬È«Á¦±£ÕÏÓû§¶ÔÇø¿éÁ´µÄÄþ¾²ÐèÇó¡£