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

Ðû²¼Ê±¼ä 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ÔÚ´¦Öóͷ£Ä³Ð©ºÏԼʱ»á´¥·¢Òì³£ £¬Í¨Ì«¹ýÎö·¢Ã÷¹²ÓÐÈýÀàÔµ¹ÊÔ­ÓÉ£º¶ñÒâÎÞЧ×Ö½ÚÂë¡¢²»Ö§³ÖµÄ²Ù×÷ºÍÇó½âÆ÷Òì³£¡£ÎªÁËÉîÈë½ÏÁ¿ £¬ÐÞ¸´ÁËÕâÈýÀർÖÂÒì³£µÄÈí¼þȱÏÝ¡£

ͨ¹ý¶Ôÿ¸ö¹¤¾ß¾ÙÐÐËùÓÐÒÔÌ«·»Çø¿éÁ´ÖÇÄܺÏÔ¼µÄʵÑé £¬µÃ³öÒÔϽáÂÛ£º


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

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