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

Ðû²¼Ê±¼ä 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«!

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

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

×ðÁú¿­Ê±¡¤(ÖйúÇø)ÈËÉú¾ÍÊDz«!

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

×ðÁú¿­Ê±¡¤(ÖйúÇø)ÈËÉú¾ÍÊDz«!

Ñо¿Ð§¹ûÊÇʲô £¿

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

×ðÁú¿­Ê±¡¤(ÖйúÇø)ÈËÉú¾ÍÊDz«!

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

×ðÁú¿­Ê±¡¤(ÖйúÇø)ÈËÉú¾ÍÊDz«!

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

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