Ë¢ÆÁµÄÇø¿éÁ´ Ïë֪·µÄ¶¼ÔÚÕâÀ ¡ª¡ªÇø¿éÁ´ÖÇÄܺÏÔ¼½ÚÔìÁ÷ʶ´ËÍâ´ó¹æÄ£³¢ÊÔ×êÑÐ

°ä²¼¹¦·ò 2019-11-01
Öй²ÖÐÑëÕþÖξÖ10ÔÂ24ÈÕÏÂÎç¾ÍÇø¿éÁ´¼¼Êõ·¢Õ¹Ê¾×´ºÍÇ÷Ïò½øÐеÚÊ®°Ë´Î¼¯Ìå½ø½¨£¬»áÒéÇ¿µ÷Çø¿éÁ´¼¼ÊõµÄ¼¯³ÉÀûÓÃÔÚеļ¼Êõ¸Ä¸ïºÍ²úҵˢÐÂÖÐÆð×ųÁÒª×÷Óã¬Òª°ÑÇø¿éÁ´×÷ΪÖ÷Ìâ¼¼Êõ×ÔÖ÷´´ÐµijÁÒªÍ»ÆÆ¿Ú£¬Ã÷È·Ö÷¹¥·½Ïò£¬¼Ó´óͶÈëÁ¦¶È£¬×ÅÁ¦¹¥¿ËÒ»Åú¹Ø¼üÖ÷Ìâ¼¼Êõ£¬¼Ó¿ìÍÆ¶¯Çø¿éÁ´¼¼ÊõºÍ²úÒµ´´Ð·¢Õ¹¡£


¶àÄêÀ´£¬É³°Í³ÖÐø¹Ø×¢Çø¿éÁ´¼¼Êõ°²È«ÎÊÌ⣬ÔÚÇø¿éÁ´×ÔÉí°²È«ÒÔ¼°Çø¿éÁ´ÀûÓð²È«·½Ã棬¶¼ÓÐÏàÓ¦µÄ×êÑкÍʵ¼ÊË÷Çó¡£

ɳ°Í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Äܹ»ÌáÉýµ±Ç°Ö÷Á÷µÄÖÇÄܺÏÔ¼·ÖÎö¹¤¾ßµÄ½ÚÔìÁ÷¼ø±ðÄÜÁ¦£¬¸Ã·¢ÏÖ½«ÓÐÖúÓÚÒÔÌ«·»Óû§¡¢¿ª·¢ÕߺÍ×êÑзÖÎöÈËÔ±·¢Õ¹¸üÉî¿ÌµÄÖÇÄܺÏÔ¼×êÑС£

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