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

Ðû²¼Ê±¼ä 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ÖÐÒýÈëÖ´Ðиú×Ù £¬ÊµÏÖÁ˰Ѿ²Ì¬¿ØÖÆÁ÷·ÖÎöÎó±¨ÂʽµµÍ°Ù·ÖÖ®ÈýÊ®¡£Í¬Ê± £¬¸ÃÑо¿»ñµÃÁË×î¼ÑÂÛÎÄÌáÃû½±¡£

×ðÁú¶¶È¦ - Ϊdu¶øÉú

Ñо¿ÄÚÈÝÓÐÄÄЩ£¿

Ñо¿Ñ¡ÔñÁËÒÔϵÄÁù¿îÖ÷Á÷ÃæÏò×Ö½ÚÂëÖÇÄܺÏÔ¼µÄ·ÖÎö¹¤¾ß£º

×ðÁú¶¶È¦ - Ϊdu¶øÉú

ÉÏÊöÁù¿î¹¤¾ßÖÐ £¬Â·¾¶Ãô¸ÐµÄ¹¤¾ß¿ÉÄܱÈ·¾¶²»Ãô¸ÐµÄ¹¤¾ß·¢ÏÖ¸ü¶àµÄ¿ØÖÆ×ªÒÆÂ·¾¶ £¬ÒòΪËüÃ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¹¤¾ß½øÐÐÔöǿʵÏÖºÍÑéÖ¤ £¬ÔöÇ¿µÄ¾ßÌåËã·¨ÈçÏÂͼËùʾ¡£

×ðÁú¶¶È¦ - Ϊdu¶øÉú

Ñо¿½á¹ûÊÇʲô£¿

ʵÑé½á¹û±íÃ÷ £¬Ö´ÐÐtrace¿ÉÒÔÓÐЧÌáÉýÉÏÊö¹¤¾ßµÄÖÇÄܺÏÔ¼¿ØÖÆÁ÷ʶ±ðÄÜÁ¦ £¬ÄÜ·¢ÏÖÕâЩ¹¤¾ß²»ÄÜ·¢ÏֵĿØÖÆ×ªÒÆ¡£ 

×ðÁú¶¶È¦ - Ϊdu¶øÉú

ͨ¹ý¶ÔOYENTEµÄÔ´Âë½øÐÐÁËÐÞ¸ÄÒÔǶÈëÔöÇ¿Ëã·¨ £¬¼°¶ÔOYENTEÄÜʶ´ËÍâËÄÖÖºÏԼ©¶´½øÐÐÁËʵÑé £¬½áÂÛ¼ûÏÂ±í¡£Õë¶Ô½»Ò×˳ÐòÒÀÀµ¡¢Ê±¼äÒÀÀµºÍÖØÈëÀàÐ͵Ä©¶´ £¬ÔöÇ¿OYENTEÄܼì²â¸ü¶àµÄ©¶´¡£Õë¶Ôδ´¦ÖÃÒ쳣©¶´ £¬ÔöÇ¿OYENTEδÄÜÌáÉý¼ì²âÄÜÁ¦ £»¶ÔOYENTE½øÐÐÔ´Âë·ÖÎö·¢ÏÖ £¬ÕâÊÇÒòΪÕâÀà©¶´ÊÇÖ±½ÓÓúÏÔ¼×Ö½ÚÂëɨÃèÀ´¼ì²âµÄ £¬Óë¿ØÖÆÁ÷·ÖÎöÎ޹ء£

×ðÁú¶¶È¦ - Ϊdu¶øÉú

´Ë´ÎÕë¶ÔÒÔÌ«·»Çø¿éÁ´ÖÇÄܺÏÔ¼¿ØÖÆÁ÷ʶ´ËÍâ´ó¹æÄ£Éî¶ÈÑо¿ £¬È¡µÃÁ˶àÏîеķ¢ÏÖ¡£Í¨¹ý²å×®ÒÔÌ«·»¿Í»§¶Ë £¬ÊÕ¼¯ÁËÈ«²¿µÄÖÇÄܺÏÔ¼²¢»¹Ô­ÁËÈ«²¿µÄÖ´ÐÐtrace¡£ÊµÑéÖ¤Ã÷ £¬Ö´ÐÐtrace¿ÉÒÔÌáÉýµ±Ç°Ö÷Á÷µÄÖÇÄܺÏÔ¼·ÖÎö¹¤¾ßµÄ¿ØÖÆÁ÷ʶ±ðÄÜÁ¦ £¬¸Ã·¢ÏÖ½«ÓÐÖúÓÚÒÔÌ«·»Óû§¡¢¿ª·¢ÕߺÍÑо¿·ÖÎöÈËÔ±¿ªÕ¹¸üÉîÈëµÄÖÇÄܺÏÔ¼Ñо¿¡£

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