• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于代碼注釋調(diào)優(yōu)的智能合約自動生成方法

    2024-06-01 10:24:02陳勇胡德鋒徐超陳楠楠
    計算機應(yīng)用研究 2024年5期

    陳勇 胡德鋒 徐超 陳楠楠

    摘 要:針對智能合約開發(fā)效率不高、安全漏洞頻發(fā)等問題,提出了一種基于代碼注釋調(diào)優(yōu)的智能合約自動生成方法。首先結(jié)合智能合約代碼關(guān)聯(lián)注釋的語義信息,構(gòu)建智能合約聚類分析模型,實現(xiàn)功能類似智能合約的快速精準(zhǔn)聚類;接著劃分注釋關(guān)聯(lián)的合約層、函數(shù)層、接口層等不同層次智能合約知識庫,以聚類后的代碼及注釋信息為基礎(chǔ),構(gòu)造多樣化Prompt特征提示語句數(shù)據(jù)集;最后,以大語言模型ChatGLM2-6B為基礎(chǔ),借助P-Tuning v2微調(diào)技術(shù),實現(xiàn)特定需求智能合約的自動生成。為檢測該方法的有效性,借助雙語互譯質(zhì)量評估輔助工具BLEU和代碼安全檢測工具Mythril與VaaS,同現(xiàn)有方法進行了對比。實驗結(jié)果表明,該方法生成的代碼BLEU平均值提升了13%左右,代碼安全性提高6%左右。此方法將代碼注釋信息融入智能合約的自動生成,有效提升了智能合約的質(zhì)量,為高效開發(fā)安全可靠的智能合約提供了一種新的方法。

    關(guān)鍵詞:智能合約;注釋;大語言模型;微調(diào);自動生成

    中圖分類號:TP183?? 文獻標(biāo)志碼:A??? 文章編號:1001-3695(2024)05-031-1502-06

    doi: 10.19734/j.issn.1001-3695.2023.09.0401

    Research of smart contract automatic generation method based on code annotation optimization

    Abstract:To address the issues of low efficiency and frequent security vulnerabilities in smart contract development, this paper proposed a smart contract auto-generation method based on code comment optimization. Firstly, it constructed a smart contract clustering analysis model based on the semantic information of smart contract code associated annotations to achieve fast and accurate clustering of functions similar to smart contracts. Then,it divided the smart contract knowledge base into different levels such as the contract layer, function layer, and interface layer associated with the annotation. And based on the clustered code and annotation information, it constructed a diversified Prompt feature prompt statement dataset. Finally, it achieved automatic generation of smart contracts with specific needs based on the large language model ChatGLM2-6B and with the help of P-Tuning v2 fine-tuning technology. In order to test the effectiveness of this method, this paper conducted comparative experiments with existing methods using the bilingual translation quality assessment assistant tool BLEU and the code security detection tools Mythril and VaaS. Experimental results show that the average BLEU of the code generated by this method is increased by about 13%, and the code security is improved by about 6%. This method integrates code annotation information into the automatic generation of smart contracts, effectively improves the quality of smart contracts, and provides a new method for the efficient development of safe and reliable smart contracts.

    Key words:smart contract; annotation; big language model; fine-tuning; automatically generate

    0 引言

    隨著智能合約的快速發(fā)展,其應(yīng)用領(lǐng)域越來越廣泛,智能合約的設(shè)計除了保證其本身的安全性之外,還需要了解相關(guān)應(yīng)用領(lǐng)域的知識和技能。因此,在智能合約領(lǐng)域經(jīng)常出現(xiàn)合約開發(fā)者與合約設(shè)計者的分離:合約開發(fā)人員在掌握智能合約編程語言的同時卻缺乏對合約邏輯的認識,設(shè)計人員在熟悉業(yè)務(wù)規(guī)則的同時卻缺乏對智能合約的理解。這無形中降低了智能合約開發(fā)效率,影響智能合約發(fā)展的步伐。其次,據(jù)文獻[1]調(diào)查統(tǒng)計,截至2022年10月,以太坊中部署發(fā)布的智能合約數(shù)量已經(jīng)高達5 100萬,其市場規(guī)模將以每年32%的增長率增加,涉及的金額已經(jīng)超過億級。龐大的市場規(guī)模導(dǎo)致對智能合約的開發(fā)效率以及安全性要求更加嚴格,因此,如何快速開發(fā)出準(zhǔn)確安全的智能合約成為該領(lǐng)域發(fā)展亟待解決的關(guān)鍵問題。

    然而,目前智能合約的研究主要集中在合約的安全性,對智能合約的開發(fā)效率關(guān)注較少。一些研究[2,3]開始嘗試利用RNN等神經(jīng)網(wǎng)絡(luò)實現(xiàn)智能合約的自動生成,但該類研究在代碼語義理解層面仍然存在不足,使得生成的合約存在安全性和正確性不高、人機交互效率低等問題,難以滿足快速發(fā)展的智能合約應(yīng)用場景。近年來,隨著注意力機制[4]的快速發(fā)展,以Chat-GPT[5]為代表的各種大語言模型廣泛應(yīng)用于各類通用場景,在代碼生成領(lǐng)域也表現(xiàn)卓越。微軟的Copilot融合了GPT的強大能力,能夠根據(jù)使用者輸入的信息從而生成相應(yīng)的通用類代碼;MetaAI發(fā)布的Code LLaMA Python可以生成各種高效的Python代碼。因此,大語言模型對于提升代碼生成的質(zhì)量和效率具有極大的促進作用。然而,大語言模型的構(gòu)建離不開高質(zhì)量基礎(chǔ)數(shù)據(jù)的支撐,對于各類常規(guī)代碼的生成,大語言模型可以通過對大量成熟代碼的學(xué)習(xí)獲得出色的表現(xiàn),但對于智能合約這類新型軟件,直接應(yīng)用已有的大語言模型難免出現(xiàn)生成代碼不準(zhǔn)確、安全性不高等問題,有必要進行針對性的訓(xùn)練和調(diào)優(yōu)。

    程序語義信息的提取是代碼自動生成的關(guān)鍵,代碼注釋[6]作為源代碼的輔助信息,標(biāo)注了代碼實現(xiàn)的目的和基本思路,對于提升代碼語義信息提取的準(zhǔn)確率具有極大的幫助,已經(jīng)被開發(fā)者所廣泛使用以提升開發(fā)效率[7]。為此,本文從大語言模型出發(fā),借助于智能合約的代碼注釋,提出了一種基于注釋調(diào)優(yōu)的智能合約自動生成方法,將代碼注釋提供的額外語義信息輔助大語言模型的調(diào)優(yōu),以提高模型學(xué)習(xí)過程中對于代碼語義的理解,從而更快速準(zhǔn)確地生成滿足不同需求的智能合約代碼,提高智能合約相關(guān)應(yīng)用的開發(fā)效率。本文的主要貢獻如下:

    a)設(shè)計了基于注釋輔助聚類分析的智能合約相似性評估。對爬蟲程序獲取的智能合約進行預(yù)處理和劃分代碼層次,從注釋信息和代碼兩個維度出發(fā),分別給予不同的權(quán)重并對各層次的智能合約源代碼進行聚類分析,從而獲取到具有相似特征的層次化智能合約源代碼文檔和注釋,保證智能合約生成模型的準(zhǔn)確性,同時提高代碼的復(fù)用性。

    b)構(gòu)建了代碼注釋組成的Prompt指令數(shù)據(jù)集。設(shè)計了多個Prompt模版,與注釋信息組成數(shù)據(jù)集的輸入部分,同時將智能合約代碼劃分為函數(shù)層、合約層、庫合約層以及接口層四個層次,并以此作為數(shù)據(jù)集的輸出部分。

    c)訓(xùn)練了注釋輔助調(diào)優(yōu)的智能合約自動生成大模型。采用P-Tuning v2微調(diào)方法,在ChatGLM2-6B大模型的基礎(chǔ)上利用智能合約數(shù)據(jù)集進行高效的微調(diào)和訓(xùn)練,并選取調(diào)優(yōu)后的最佳模型,實現(xiàn)注釋信息輔助的智能合約代碼自適應(yīng)匹配。

    1 相關(guān)研究

    目前,大語言模型[8]在醫(yī)療、金融以及教育等領(lǐng)域都得到了廣泛的應(yīng)用,各大公司都發(fā)布了相應(yīng)的大語言模型,例如OpenAI的Chat-GPT、清華大學(xué)發(fā)布的ChatGLM-6B[9]大模型、Meta的LLaMA[10]以及百川等模型,大模型雖然具有強大的學(xué)習(xí)能力,但其參數(shù)量巨大、硬件要求高等特點成為了眾多學(xué)者考慮的問題。另一方面,針對特定領(lǐng)域的問題,其處理能力仍然有待提高,因此研究者們提出了大模型在垂直領(lǐng)域進行下游任務(wù)的進一步微調(diào)的方法。微軟公司提出了一種基于低階自適應(yīng)的大語言模型微調(diào)方法(LoRA)[11],該方法通過修改模型結(jié)構(gòu)實現(xiàn)高效微調(diào)。斯坦福大學(xué)提出的基于提示詞前綴優(yōu)化的方法(Prefix Tuning)[12]在近幾年里也得到了不斷的優(yōu)化和改進,例如Prompt Tuning、P-Tuning[13]、P-Tuning v2[14]等。微調(diào)使得大語言模型的發(fā)展更為廣泛,北京大學(xué)提出了開源的法律大語言模型(ChatLaw)[15],該模型是以LLaMA模型為基礎(chǔ)并采用LoRA方法針對法律領(lǐng)域知識進行精準(zhǔn)微調(diào)而來。Wang等人[16]以LLaMA-7B為基準(zhǔn)模型,融入了大量的結(jié)構(gòu)化和非結(jié)構(gòu)化醫(yī)學(xué)領(lǐng)域的知識進行微調(diào),提出了在醫(yī)療領(lǐng)域表現(xiàn)更佳的HuaTuo大語言模型。

    針對智能合約領(lǐng)域的研究,目前主要以智能合約代碼漏洞檢測為主。文獻[17~19]從區(qū)塊鏈結(jié)構(gòu)中Solidity代碼層、EVM執(zhí)行層、區(qū)塊鏈系統(tǒng)層三個角度分析智能合約漏洞,其中Solidity代碼層包含重入漏洞(The Dao攻擊)、整數(shù)溢出漏洞等十幾個漏洞,EVM執(zhí)行層涉及短地址漏洞、以太丟失漏洞等四個漏洞,區(qū)塊鏈系統(tǒng)層主要包括時間戳依賴漏洞等三個漏洞。針對智能合約漏洞的檢測方法[17]主要分為形式化驗證法、符號執(zhí)行法、模糊檢測法、中間表示法以及深度學(xué)習(xí)的方法,因此VaaS、Oyente[17]、SmartCheck[19]等工具廣泛應(yīng)用于智能合約漏洞的檢測,智能合約的安全性問題得到了有效的改善。此外,在智能合約與開發(fā)人員友好性交互方面,文獻[18,20]提出了一種對于特定領(lǐng)域智能合約自動生成的方法,借助于深度學(xué)習(xí)中長短期記憶遞歸神經(jīng)網(wǎng)絡(luò)(LSTM)構(gòu)建智能合約自動生成模型,采用SmartCheck檢測生成代碼并得到了較好的實驗結(jié)果,最后通過設(shè)計良好的交互界面提高了編程的友好性和高效性。

    代碼注釋作為理解代碼的重要手段,不少研究者[21,22]對其使用方式、質(zhì)量評估和改進等方面進行了研究。王潮等人[23]總結(jié)了代碼注釋質(zhì)量評估相關(guān)的研究成果,從代碼注釋的一致性、重要性等角度指出代碼注釋對于程序語義的理解有著至關(guān)重要的作用。代碼注釋的一致性能夠充分體現(xiàn)出注釋內(nèi)容和對應(yīng)代碼真實運行邏輯是否一致。高質(zhì)量代碼注釋有效減少了大模型理解代碼的代價,尤其是在面臨著較大的代碼數(shù)據(jù)量的情況下,合理的代碼注釋從很大程度上緩解了該問題。

    在利用深度學(xué)習(xí)進行代碼自動生成的研究中,Iqbal等人[2]指出遞歸神經(jīng)網(wǎng)絡(luò)(RNN)、卷積神經(jīng)網(wǎng)絡(luò)(CNN)以及生成的對抗網(wǎng)絡(luò)(GAN)是主要研究方向,其思想是利用各種神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搭建代碼自動生成模型,并通過大量數(shù)據(jù)訓(xùn)練模型生成相應(yīng)的代碼。另一方面,ChatGLM2-6B 是由清華大學(xué)開源的開源中英雙語對話模型,Zheng等人[24]在此基礎(chǔ)上,經(jīng)過了600B代碼數(shù)據(jù)預(yù)訓(xùn)練,提出了CodeGeeX2的多語言代碼生成模型以及LLaMA在多語言代碼微調(diào)后的代碼生成模型Code LLaMA[25]。此外,BigCoder也發(fā)布了編程助手StarCode[26],具有代碼生成、補齊以及解釋等多種功能。

    綜上所述,大模型在智能合約代碼生成領(lǐng)域已經(jīng)展現(xiàn)出良好的趨勢,但如何增強大模型對代碼的語義理解能力仍然是研究者們需要進一步探索的內(nèi)容,而注釋內(nèi)容能夠提供較強的語義信息,對于增強大模型的語義分析能力具有積極意義?;诖?,本文提出了基于代碼注釋和大語言模型微調(diào)技術(shù)相結(jié)合的智能合約自動生成方法,以充分利用注釋的語義信息增強大模型的語義分析能力,提高其生成的智能合約代碼的正確性。

    2 注釋信息輔助調(diào)優(yōu)的智能合約自動生成與匹配方法

    2.1 總體框架

    以上述研究工作作為基礎(chǔ),本文提出了基于注釋信息輔助的智能合約自動生成與匹配方法。首先,本文將從智能合約的注釋信息和代碼體兩個角度出發(fā),采用聚類技術(shù)針對智能合約各類層次的代碼進行分析。然后,通過劃分聚類后的代碼層次并將注釋與之關(guān)聯(lián),構(gòu)建智能合約代碼生成的指令數(shù)據(jù)集,同時利用注釋信息輔助和安全檢測工具分別增強和保證其代碼的易理解性和可靠性。最后,以ChatGLM2-6B為基座模型,采用P-Tuning v2方法結(jié)合構(gòu)建的特定數(shù)據(jù)集對基座模型進行高效微調(diào),開發(fā)人員利用界面輸入自己的功能需求從而匹配目標(biāo)代碼設(shè)計智能合約代碼,提高開發(fā)的高效性和準(zhǔn)確性。

    本節(jié)將介紹整個研究過程的總體框架,具體如圖1所示。

    由框架圖可知,本文研究思路主要分為三部分。首先利用爬蟲程序從以太坊上爬取智能合約源代碼文檔,將代碼和對應(yīng)注釋文檔劃分層次并通過文件序號建立對應(yīng)的映射關(guān)系。在注釋輔助智能合約源代碼聚類階段,本文對聚類的代碼和注釋文檔分別進行預(yù)處理后作為輸入,從注釋和代碼兩個維度出發(fā),采用K-means算法生成各層次代碼簇,從而提取出具有高相似性的層次化代碼和注釋信息作為代碼生成的數(shù)據(jù)集。其次,在大模型微調(diào)數(shù)據(jù)集構(gòu)造部分,為確保篩選出對應(yīng)注釋內(nèi)容較多的代碼體,本文將聚類后的層次化代碼進行二次預(yù)處理,并將代碼體對應(yīng)的注釋與Prompt模版構(gòu)成指令數(shù)據(jù)集的輸入部分,輸出部分為相應(yīng)的層次化智能合約代碼。最后,采用ChatGLM2-6B模型作為基礎(chǔ)模型,結(jié)合構(gòu)建的數(shù)據(jù)集進行P-Tuning v2方式微調(diào),選取訓(xùn)練后智能合約代碼生成效果最優(yōu)的大模型,同時本文設(shè)計了便捷的人機交互界面,用戶在交互界面輸入需求信息,從而實現(xiàn)注釋輔助智能合約自適應(yīng)匹配。

    2.2 注釋指導(dǎo)的智能合約聚類

    就代碼分析而言,大多數(shù)研究僅局限于代碼內(nèi)容本身,往往忽略了注釋為對應(yīng)代碼體所帶來的信息。因此除了代碼體本身這一基礎(chǔ)維度之外,注釋是本次研究的另一個重點。本文結(jié)合注釋信息文本和代碼文本兩個維度進行聚類,從而提取相似的各層次智能合約代碼。聚類具體操作步驟如下:

    注釋中含有較多的源代碼描述信息,能夠幫助開發(fā)者快速理解和閱讀智能合約源代碼。為提高研究的準(zhǔn)確性,本文對于獲取的智能合約源代碼文檔,應(yīng)盡量保證聚類實驗前的智能合約文檔具有較多的注釋內(nèi)容。本文通過統(tǒng)計智能合約源代碼中注釋的行數(shù),從中篩選出注釋行數(shù)在300以上的智能合約代碼,同時文本量較大的智能合約文件含有豐富的注釋信息和代碼,故保留文件大小在50 KB~80 KB的智能合約文檔作為聚類的數(shù)據(jù)集。其次智能合約源程序文檔中含有眾多的JSON格式文本、二進制代碼文本以及不含注釋的智能合約文本,這些源代碼對于實驗沒有參考意義,因此在聚類實驗前要進行預(yù)處理,刪除此類智能合約源代碼文檔。

    智能合約源代碼大體上由“function”“contract”“interface”和“l(fā)ibrary”四個層次代碼組成,對于聚類的數(shù)據(jù)集本文進行了上述層次劃分。劃分過程中,鑒于源代碼結(jié)構(gòu)復(fù)雜,根據(jù)代碼的特殊形式獲取代碼和對應(yīng)的注釋內(nèi)容,例如“l(fā)ibrary”層代碼以“l(fā)ibrary Math {”和單行“}”結(jié)尾,注釋內(nèi)容則一般處于代碼開頭部分上一行并以“/**”開頭和“*/”結(jié)尾,故首先采用正則化表達式提取出注釋內(nèi)容,當(dāng)檢測到下述的代碼時,首先提取出四個層次對應(yīng)的代碼存儲在相應(yīng)的文件中,層次化的代碼可以幫助開發(fā)者快速生成和管理目標(biāo)代碼。其次,注釋作為代碼的信息描述,將含注釋的源代碼中的注釋與源代碼分別進行了不同文件的存儲,有效地避免了聚類過程中這兩類樣本的相互干擾。然后通過文檔序號建立代碼體文檔和對應(yīng)注釋文檔的聯(lián)系,例如在提取過程中,提取出一個“interface”層代碼中一個接口代碼則為interface1文件,相應(yīng)的注釋文檔即對應(yīng)為interface1_note文件,建立序號映射關(guān)系的智能合約代碼體樣本和注釋信息樣本即為本次研究實驗數(shù)據(jù)集。

    K-means是一種基于距離劃分的聚類算法,其認為兩個目標(biāo)的距離越近,相似度越大,故選取該算法為聚類算法。本文所處理的代碼和注釋都為字符和符號組成的文本,且隨著文本長度增加,數(shù)據(jù)向量化的維度也會增大,余弦距離在高維空間中只受其向量夾角影響,而不受文本長度的影響,從而能更好地捕捉數(shù)據(jù)之間的相似性。其次余弦距離的計算相對簡單,這使得它在大規(guī)模數(shù)據(jù)集上的計算效率較高,故選取該算法為聚類算法。本文采用余弦距離(cosine distance)作為計算依據(jù),并分別計算智能合約各層次代碼內(nèi)容的余弦距離值以及對應(yīng)注釋內(nèi)容的余弦距離值,最后給予兩個余弦值一定的權(quán)重后相加即為樣本最終的判斷距離,通過衡量各樣本之間該距離從而實現(xiàn)聚類。

    為提高聚類的準(zhǔn)確性,智能合約數(shù)據(jù)集在聚類前應(yīng)進行預(yù)處理。首先,智能合約代碼中有些詞出現(xiàn)了很多次但不能體現(xiàn)出在代碼中的重要性,比如“public”“return”“internal”等詞并不能作為特征項,因此本文設(shè)置了“public”該類詞作為停用詞。同理,注釋一般則是以“//”“/**/”等形式存在,所以這些詞也不能作為特征項,注釋文檔聚類中應(yīng)設(shè)置“//”等停用詞。其次,鑒于Solidity語言特性,許多標(biāo)識符是含有大小寫的,例如“Contract”、變量名等,因此這里將大小寫視為一致。

    在聚類過程中,需將每個文檔向量化,計算其余弦距離。本文采用空間向量模型(VSM),將代碼和注釋文檔看作由多組不同的特征項與對應(yīng)權(quán)重組成的向量,公式如下:

    Di=Di(t1,w1;t2,w2;…;tn,wn)(1)

    Gi=Gi(t1,w1;t2,w2;…;tn,wn)(2)

    其中:Di和Gi分別表示第i個代碼和注釋文檔;tn為其中每個標(biāo)識符或關(guān)鍵字;wn為對應(yīng)的詞頻。每個代碼文檔中詞頻構(gòu)成代碼文檔向量化表示Ei=[w1;w2;…;wn],注釋文檔向量化表示為Ni=[w1;w2;…;wn],計算每個文檔與中心點的向量內(nèi)積和。實驗中選取多個聚類中心,依次計算各層次智能合約代碼Ei與中心文檔Ecenter的余弦距離值,同時計算該文檔對應(yīng)的注釋文檔Ni與中心文檔Ncenter的余弦距離,分別給予權(quán)重且比例為λ∶(1-λ),加權(quán)計算后進行相加,公式為

    聚類過程如算法1所示,具體如下:

    a)對智能合約數(shù)據(jù)集進行無效文檔去除,避免非合約結(jié)構(gòu)代碼對聚類的干擾,同時分別對代碼和注釋文檔進行停用詞處理。

    b)通過空間向量模型將各文檔向量化,隨機選取K個中心文檔作為聚類中心,循環(huán)開始標(biāo)志flag為true,當(dāng)滿足所有文檔都聚類至最近的聚類中心時,循環(huán)標(biāo)志為false,即結(jié)束聚類。采用式(3)依次計算每段代碼及其注釋文檔與各中心點的距離,并將其分配給距離最近的中心文檔(第5~13行)。

    c)在上一步完成后,重新計算K個簇中各文檔的平均距離并更新聚類中心(第15~17行)。

    d)計算新、舊聚類中心的余弦距離,若中心點沒有發(fā)生變化,則結(jié)束本次聚類,否則返回算法1中第5行重復(fù)上述步驟直至聚類中心不再變化,結(jié)束標(biāo)志為flag=false(第18~23行)。

    經(jīng)過聚類處理后,每個層次的代碼分為多個簇,一個簇中的代碼為相似的智能合約代碼,例如具有相似功能描述的“function”層次代碼則為一個簇。

    算法1 基于注釋指導(dǎo)的智能合約K-means聚類算法

    2.3 基于注釋輔助微調(diào)的多層次智能合約自動生成方法

    大模型是指深度學(xué)習(xí)中具有數(shù)以億計參數(shù)的巨大神經(jīng)網(wǎng)絡(luò)模型,這些模型在過去的幾年中得到了廣泛關(guān)注和發(fā)展,主要是由于它們在各種任務(wù)上取得了令人矚目的性能提升。本文以ChatGLM2-6B 大模型為基座模型,設(shè)計了15個模仿使用者提問方式的Prompt同注釋構(gòu)成指令數(shù)據(jù)集的輸入,注釋信息對應(yīng)的層次化代碼為輸出部分,通過基座模型對微調(diào)指令數(shù)據(jù)集的二次訓(xùn)練生成新的智能合約生成模型,實現(xiàn)智能合約的自動化生成。在上述基礎(chǔ)上,本文采用了目前比較主流的P-Tuning v2微調(diào)方法訓(xùn)練模型,對生成的模型進行評估并選取效果最優(yōu)的模型作為智能合約生成的大語言模型。

    2.3.1 指令數(shù)據(jù)集預(yù)處理

    聚類后的數(shù)據(jù)以代碼簇的形式輸出,每個代碼簇中含有較多高相似功能的智能合約代碼,因此需要對該數(shù)據(jù)進行二次預(yù)處理。首先刪除智能合約注釋中的無關(guān)內(nèi)容,由于在聚類過程中進行了停用詞處理,并沒有進行相關(guān)代碼和注釋內(nèi)容的修改,注釋中仍存在著“/**”“@dev”“@notice”等無意義內(nèi)容,在這里將這些字符替換為空字符,并將注釋內(nèi)容重新寫入從而保證內(nèi)容的連貫性。其次,每個代碼簇中存在高相似度的智能合約代碼,為保證指令數(shù)據(jù)集的質(zhì)量,對每個簇中數(shù)據(jù)進行相似度計算,對于相同的代碼則提取其中一個參與指令數(shù)據(jù)集的構(gòu)建。鑒于對智能合約代碼數(shù)據(jù)集劃分了層次,因此與之相對應(yīng)的單個注釋匹配字符量比較小,可以認為是短文本類型,這恰恰符合Jaccard的計算特性。另一方面,Jaccard是一種常用的相似度計算方法,相比于其他算法,計算量以及效率更為良好,在智能合約自適應(yīng)匹配過程中,較好地降低了開發(fā)時間并且對于開發(fā)環(huán)境的要求更加友好。

    故本文采用Jaccard[27]作為度量標(biāo)準(zhǔn),計算簇中代碼的相似度。對于每個簇中代碼,分別計算注釋和代碼的相似度,當(dāng)其中任意一者相似度高于0.9,則認為這兩段代碼功能重復(fù)。 本文給定兩個集合,如式(4)所示,ui為代碼簇,表示簇中第i個代碼,ci為注釋文本簇,表示簇中對應(yīng)的第i個注釋,N為集合數(shù)量,相似度值為簇中代碼之間Jaccard度量值以及對應(yīng)注釋內(nèi)容Jaccard度量值最大值,當(dāng)最大值>0.9,則認為是功能相同的代碼。

    2.3.2 指令數(shù)據(jù)集構(gòu)建

    在上述預(yù)處理后,如圖2所示,本文中指令數(shù)據(jù)集為JSON格式的數(shù)據(jù),數(shù)據(jù)模式如下:{“instruction”:“value1”,“input”:“value2”,“output”:“value3”},每條數(shù)據(jù)為包含instruction、input以及output三個鍵值對形式的JSON數(shù)據(jù),其中instruction為Prompt模版,該部分設(shè)計了15個模仿使用者提問的方式,例如“請幫我生成{input}的相關(guān)代碼內(nèi)容”“你現(xiàn)在是一個語言模型,幫我生成相關(guān)的智能合約代碼,注釋如下:input”等,盡量最大范圍達到使用者在獲取智能合約代碼的各種提問方式,從而提升大模型的輸出的準(zhǔn)確性。

    注釋是代碼的相關(guān)信息描述,對于代碼的易理解性發(fā)揮著至關(guān)重要的作用,研究者們往往忽略了這兩者的關(guān)聯(lián)性。由于大語言模型在自然處理領(lǐng)域引起了廣泛關(guān)注,如何更有效地提升Prompt指令質(zhì)量也成為了研究熱點之一,智能合約代碼附有的注釋信息能夠為其帶來更加準(zhǔn)確的描述。因此在提示指令工程中,本文加入了注釋信息同時隨機抽取一個模版構(gòu)建微調(diào)數(shù)據(jù)集的指令,這也是本文研究的要點。眾所周知,目前大多數(shù)研究者在提問方式中通過GPT生成、人工構(gòu)造等方式盡可能最大化涉及使用者可能會提問的各類問句,由于智能合約涉及金融、醫(yī)療等多個領(lǐng)域,其代碼和注釋信息中內(nèi)容具有很強的現(xiàn)實含義,例如“token”代表貨幣,“address”代表使用者地址。結(jié)合這一內(nèi)容,本文在智能合約指令的數(shù)據(jù)集的input部分加入了注釋信息來幫助大模型更好地學(xué)習(xí)智能合約領(lǐng)域的知識,如圖2所示,本文設(shè)計了多個提問模版,隨機與注釋信息搭配構(gòu)成大模型學(xué)習(xí)的輸入內(nèi)容,output部分為輸出信息,即大模型在接收使用者的需求信息后所回應(yīng)的內(nèi)容,在這里將注釋對應(yīng)的層次化代碼作為數(shù)據(jù)集的輸出部分。

    2.3.3 模型微調(diào)

    自然語言處理目前存在一個重要范式,即一般領(lǐng)域的大規(guī)模預(yù)訓(xùn)練對特定任務(wù)領(lǐng)域的適應(yīng)。但隨著規(guī)模的變大,當(dāng)進行特定任務(wù)適應(yīng)時,由于訓(xùn)練成本太高,無法重新訓(xùn)練所有模型參數(shù),所以研究者提出在原有模型基礎(chǔ)上進行一些垂直領(lǐng)域的微調(diào),從而達到更優(yōu)的效果。ChatGLM2-6B是由清華大學(xué)團隊發(fā)布的第二代大模型,具有高性能、強大的推理能力等特點。本文以該模型作為微調(diào)的基礎(chǔ)模型,同時采用了目前比較熱門的P-Tuning v2方法。

    P-Tuning v2是P-Tuning的優(yōu)化,利用多層提示(即深度提示優(yōu)化),在每一層都加入了Prompts tokens作為輸入,而不是僅僅加在輸入層,因此具有更多可學(xué)習(xí)的參數(shù)以及對模型的預(yù)測更直接的影響。在本實驗中,學(xué)習(xí)率為1E-4 ,每訓(xùn)練1 000步保存一次模型,梯度累積次數(shù)和GPU設(shè)備上批次大小都為1,詞表大小為1 560,設(shè)定模型接收的最大輸入長度為1 024,采用單卡進行訓(xùn)練。

    在微調(diào)訓(xùn)練后,本文將訓(xùn)練后的模型保存至相應(yīng)文件夾中,ChatGLM2-6B官方源碼中提供了模型測試的可視化界面。因此本文將代碼中模型路徑更改為訓(xùn)練后的模型,在測試界面對微調(diào)訓(xùn)練的智能合約生成大模型進行測試。使用者在界面中輸入自己的需求信息,大模型根據(jù)接收內(nèi)容返回相應(yīng)的智能合約代碼內(nèi)容。

    3 實驗與結(jié)果分析

    3.1 實驗環(huán)境及數(shù)據(jù)集

    本文實驗是在算力服務(wù)器上完成的,顯卡為單卡A100,程序編寫和運行環(huán)境為Python 3.10、PyTorch 2.0以及CUDA 11.6。本文采用的數(shù)據(jù)集由自編爬蟲程序獲取,選取以太坊平臺(Ethereum)并爬取10 437個智能合約源程序,智能合約文檔的大小在1 KB~211 KB。本文將數(shù)據(jù)集進行初步的預(yù)處理,去除一些JSON、ABI等格式的智能合約,保留大小集中在50 KB~80 KB的1 737個智能合約文檔作為本文實驗的數(shù)據(jù)集。最后對數(shù)據(jù)集中智能合約源代碼進行“function”“contract”“interface”和“l(fā)ibrary”層次劃分以及注釋和對應(yīng)代碼體劃分,并定義了聚類分析中所需要的停用詞文檔,同時設(shè)計了15個提示指令的模板。

    本文首要步驟是獲取聚類的智能合約數(shù)據(jù)集,以太坊是目前應(yīng)用最廣泛的區(qū)塊鏈交互平臺,其平臺公布了眾多獲得開源許可的智能合約源代碼,本文通過編寫智能合約源代碼爬蟲程序獲取該平臺最近一年的智能合約作為實驗數(shù)據(jù)集。具體操作流程如下:從以太坊平臺下載智能合約地址文件,借助自動化程序打開以太坊瀏覽器,讀取文件中地址構(gòu)建智能合約源代碼頁面,從第一頁開始,循環(huán)更新內(nèi)容,按照上述方法依次獲取每頁智能合約源代碼存儲至本地文件中,直至智能合約地址文件讀取完畢。

    3.2 結(jié)果及分析

    在完成聚類實驗后,本文獲取了618個智能合約代碼簇,每一個代碼簇包含較多相似的智能合約代碼,因此本文對簇中數(shù)據(jù)進行上述的相似度計算,選取一個代碼以及對應(yīng)的注釋內(nèi)容和指令模板隨機構(gòu)成一條數(shù)據(jù),數(shù)據(jù)量為782條。

    為確保生成代碼的有效性,在微調(diào)后的大模型中,通過指令生成50條各層次智能合約代碼,本文采用BLEU指標(biāo)對其進行評估。BLEU指標(biāo)[28]是一種廣泛應(yīng)用于機器翻譯任務(wù)的評測機制,在這里通過生成代碼文本和參考文本之間共同出現(xiàn)n元詞的次數(shù)(n-gram)衡量生成代碼的質(zhì)量。n元詞中n取值為1~4,BLEU分數(shù)取值為0~1,如果兩個句子完美匹配,那么BLEU為1.0,反之,如果兩個句子完全不匹配, 那么BLEU為0.0。其中,BLEU機制評分如式(5)所示。

    對于生成的代碼文本,為避免符號對評測分數(shù)的影響,本文將“+”“-”等非詞語統(tǒng)一替換為空格,同時根據(jù)Solidity語言特性將代碼文本通過空格進行分詞并得到BLEU分數(shù)。式(6)為提高率計算公式,P(x,y)為x相對于y的提高率。

    本文針對各層次中生成的代碼分別采用BLEU機制測評,實驗后BLEU得分如表1所示,同時與文獻[14]進行了對比,采用式(6)計算提高率,x為本文實驗中合約層(contract)對應(yīng)BLEU1~4得分,y為文獻[14]中BLEU1~4得分。從實驗結(jié)果可以看出,本文方法生成的代碼評分更高,本實驗得分相對于文獻[14],BLEU1~4得分分別提高了6%、3%、9%、7%。

    另外,為驗證生成的智能合約的安全性和正確性,本文分別使用VaaS和Mythril安全檢測工具,對生成的智能合約的正確率進行檢測。在本實驗中,將代碼不完整、代碼編譯錯誤以及檢測不合格統(tǒng)一視為不正確的智能合約,實驗結(jié)果如表2所示。其中,第一列表示檢測的自動生成代碼類型,該實驗主要對比了六種類型:本文方法自動生成的函數(shù)層(function)代碼、合約層(contract)代碼、接口層(interface)代碼以及庫層(library)代碼、無注釋微調(diào)模型生成的合約層代碼、文獻[14]生成的合約層代碼;第二、三列分別表示VaaS和Mythril這兩類智能合約安全檢測工具測得的正確率。

    由該實驗結(jié)果可以看出,在正確率上,合約層因為功能最全,涉及的元素最多,所以其正確率相對較低,但也達到了72%左右。而無注釋微調(diào)的模型,其生成合約代碼的平均正確率僅為65.3%。由于文獻[14]僅利用Vaas檢測了其生成代碼的安全性,所以本文僅比較了Vaas工具的檢測結(jié)果。根據(jù)結(jié)果可以看出,文獻[14]生成的智能合約的正確率為68.27%,根據(jù)式(6)計算可得,本文方法相對于文獻[14],正確率提升了(72.3%-68.27%)/68.27%=6%。

    此外,本文模型同目前比較主流的代碼生成模型進行了對比實驗。本文選取ChatGPT 3.5、Code LLaMA以及ChatGLM2-6B作為評測衡量的模型,通過同樣的口令在各個模型中生成ERC20智能合約代碼,如表3所示,并將生成代碼分別與源代碼進行BLEU評分計算和對比。

    從表3得分來看,各類大模型的低分說明在智能合約生成方面能力很差,無法生成復(fù)雜化的代碼。本文相比其他模型具有明顯的提升,評分貼近ChatGPT,生成代碼與源代碼接近度更高,效果更好。其次,本文生成的代碼提供了相關(guān)的接口代碼、庫合約代碼。整體來看,大多數(shù)通用類模型目前僅局限于單個合約代碼,結(jié)構(gòu)較為簡單,不能滿足當(dāng)前智能合約領(lǐng)域的多元化。另一方面,本文所生成代碼提供了眾多的注釋信息,這也是本文重點之一,注釋信息能夠幫助開發(fā)者快速高效地理解代碼,提高開發(fā)效率。

    4 結(jié)束語

    本文提出一種基于代碼注釋調(diào)優(yōu)的智能合約自動生成方法,該方法通過爬取以太坊上智能合約源代碼作為數(shù)據(jù)集并進行層次化劃分和代碼注釋劃分。在聚類分析中,從注釋和代碼體兩個角度出發(fā),有效地提取出各層次代碼中高相似度的代碼。同時,采用ChatGLM2-6B為基座模型,利用聚類后智能合約源代碼和注釋構(gòu)建提示指令數(shù)據(jù)集,采用P-Tuning v2方式訓(xùn)練智能合約自動生成模型,生成各類應(yīng)用場景下的智能合約代碼。在智能合約的安全方面,本文采用BLEU評分機制和智能合約檢測工具檢測生成代碼的質(zhì)量和安全問題,最后設(shè)計了便捷快速的可視化界面供開發(fā)者使用。實驗結(jié)果表明,本文方法生成的智能合約代碼質(zhì)量和安全指標(biāo)較好,相比于已有方法具有明顯的提高。

    本文方法可有效應(yīng)用于智能合約的自動生成,對于智能合約開發(fā)的效率性、安全性問題具有一定的研究意義,但也存在一定的不足。首先本文沒有針對特定領(lǐng)域智能合約開展研究,目前僅局限于各領(lǐng)域中常用的合約代碼,缺少對各個特定領(lǐng)域代碼的研究。其次,本文所采用的ChatGLM2-6B模型雖有明顯的提高,但后續(xù)可以考慮使用更多的大模型作為基座模型開展研究。最后,在數(shù)據(jù)方面,后續(xù)可以加大數(shù)據(jù)量規(guī)模以及考慮其他微調(diào)方法,并結(jié)合如何構(gòu)建更高效的指令數(shù)據(jù)開展工作。

    參考文獻:

    [1]Tolmach P,Li Yi,Lin Shangwei,et al. A survey of smart contract formal specification and verification [J]. ACM Computing Surveys (CSUR),2021,54(7): 1-38.

    [2]Iqbal T,Qureshi S. The survey: text generation models in deep lear-ning [J]. Journal of King Saud University-Computer and Information Sciences,2022,34(6): 2515-2528.

    [3]Bas A,Topal M O,Duman C,et al. A brief history of deep learning based text generation [C]// Proc of International Conference on Computer and Applications. Piscataway,NJ:IEEE Press,2022: 1-4.

    [4]Ma Tian,Wang Wanwan,Chen Yu. Attention is all you need: an interpretable transformer-based asset allocation approach [J]. International Review of Financial Analysis,2023,90: 102876.

    [5]Sallam M. ChatGPT utility in healthcare education,research,and practice: systematic review on the promising perspectives and valid concerns [J]. Healthcare,2023,11(21):2819.

    [6]潘興祿,劉陳曉,王敏,等. 基于概念傳播的軟件項目代碼注釋生成方法 [J]. 軟件學(xué)報,2023,34(9): 4114-4131. (Pan Xinglu,Liu Chenxiao,Wang Min,et al. Code comment generation based on concept propagation for software projects [J]. Journal of Software,2023,34(9): 4114-4131.)

    [7]Geng Mingyang,Wang Shangwen,Dong Dezun,et al. Fine-grained code-comment semantic interaction analysis [C]// Proc of the 30th International Conference on Program Comprehension. Piscataway,NJ:IEEE Press,2022: 585-596.

    [8]Xin W,Zhou Kun,Li Junyi,et al. A survey of large language models [EB/OL]. (2023) [2023-11-04]. https://doi.org/10.48550/arXiv.2303.18223.

    [9]Zeng Aohan,Wang Zihan,Du Zhengxiao,et al. GLM-130B: an open bilingual pre-trained model [EB/OL]. (2022)[2023-11-04]. https://doi.org/10.48550/arXiv.2210.02414.

    [10]Touvron H,Lavril T,Izacard G,et al. LLaMA: open and efficient foundation language models [EB/OL]. (2023) [2023-11-04]. https://doi.org/10.48550/arXiv.2302.13971.

    [11]Hu E J,Shen Yelong,Wallis P,et al. LoRA: low-rank adaptation of large language models [EB/OL]. (2021) [2023-11-04]. https://doi.org/10.48550/arXiv.2106.09685.

    [12]Li X L,Liang P. Prefix-tuning: optimizing continuous prompts for generation [EB/OL]. (2021) [2023-11-04]. https://doi.org/10.48550/arXiv.2101.00190.

    [13]Liu Xiao,Ji Kaixuan,F(xiàn)u Yicheng,et al. P-Tuning: Prompt tuning can be comparable to fine-tuning across scales and tasks [EB/OL]. (2022)[2023-11-04]. https://aclanthology.org/2022.acl-short.8.

    [14]Liu Xiao,Ji Kaixuan,F(xiàn)u Yicheng,et al. P-Tuning v2: Prompt tuning can be comparable to fine-tuning universally across scales and tasks [EB/OL]. (2021)[2023-11-04]. https://doi.org/10.48550/arXiv.2110.07602.

    [15]Cui Jiaxi,Li Zongjian,Yan Yang,et al. ChatLaw: open-source legal large language model with integrated external knowledge bases [EB/OL]. (2023)[2023-11-04]. https://doi.org/10.48550/arXiv.2306.16092.

    [16]Wang Haochun,Liu Chi,Xi Nuwa,et al. HuaTuo: tuning LLaMA model with Chinese medical knowledge [EB/OL]. (2023) [2023-11-04]. https://doi.org/10.48550/arXiv.2304.06975.

    [17]錢鵬,劉振廣,何欽銘,等. 智能合約安全漏洞檢測技術(shù)研究綜述[J]. 軟件學(xué)報,2022,33(8): 3059-3085. (Qian Peng,Liu Zhenguang,He Qinming,et al. Smart contract vulnerability detection technique: a survey [J]. Journal of Software,2022,33(8): 3059-3085.)

    [18]高一琛,趙斌,張召. 面向以太坊的智能合約自動生成方法研究與實現(xiàn) [J]. 華東師范大學(xué)學(xué)報: 自然科學(xué)版,2020,2020(5): 21-32. (Gao Yichen,Zhao Bin,Zhang Zhao. Research and implementation of a smart automatic contract generation method for Ethe-reum [J]. Journal of East China Normal University: Natural Sciences,2020,2020(5): 21-32.)

    [19]Rani P,Birrer M,Panichella S,et al. What do developers discuss about code comments? [C]// Proc of the 21st IEEE International Working Conference on Source Code Analysis and Manipulation. Piscataway,NJ:IEEE Press,2021: 153-164.

    [20]Mao Dianhui,Wang Fang,Wang Yalei,et al. Visual and user-defined smart contract designing system based on automatic coding [J]. IEEE Access,2019,7: 73131-73143.

    [21]Xing Hu,Xin Xia,Lo D,et al. Practitionersexpectations on automated code comment generation [C]// Proc of the 44th International Conference on Software Engineering. Piscataway,NJ:IEEE Press,2022: 1693-1705.

    [22]Rani P,Panichella S,Leuenberger M,et al. What do class comments tell us?An investigation of comment evolution and practices in Pharo [J]. Empirical Software Engineering,2021,26(6): 112.

    [23]王潮,徐衛(wèi)偉,周明輝. 軟件中代碼注釋質(zhì)量問題研究綜述 [J]. 軟件學(xué)報. 2023,35(2): 513-531. (Wang Chao,Xu Weiwei,Zhou Minghui. Survey on quality of software code comments [J]. Journal of Software,2023,35(2): 513-531.)

    [24]Zheng Qinkai,Xia Xiao,Zou Xu,et al. CodeGeeX: a pre-trained model for code generation with multilingual evaluations on Human-Eval-X [EB/OL].(2023) [2023-11-04]. https://doi.org/10.48550/arXiv.2303.17568

    [25]Roziere B,Gehring J,Gloeckle F,et al. Code LLaMA: open foundation models for code [EB/OL]. (2023) [2023-11-04]. https://doi.org/10.48550/arXiv.2308.12950.

    [26]Li R,Allal L B,Zi Yangtian,et al. StarCoder: may the source be with you! [EB/OL]. (2023) [2023-11-04]. https://doi.org/10.48550/arXiv.2305.06161.

    [27]郭宏,伊亞聰,閆獻國,等. 基于Jaccard 的協(xié)同過濾刀具推薦算法 [J]. 太原科技大學(xué)學(xué)報,2023,44(5): 464-468,475. (Guo Hong,Yi Yacong,Yan Xianguo,et al. Collaborative filter tool recommendation algorithm based on Jaccard [J]. Journal of Taiyuan Uni-versity of Science and Technology,2023,44(5): 464-468,475.)

    [28]Xia Min,Shao Haidong,Ma Xiandong,et al. A stacked GRU-RNN-based approach for predicting renewable energy and electricity load for smart grid operation [J]. IEEE Trans on Industrial Informatics,2021,17(10): 7050-7059.

    av免费在线观看网站| 国产成人av教育| 国产又爽黄色视频| 免费一级毛片在线播放高清视频 | 日韩熟女老妇一区二区性免费视频| 又紧又爽又黄一区二区| 久久久久视频综合| 狠狠婷婷综合久久久久久88av| 久久人人97超碰香蕉20202| 亚洲色图综合在线观看| 午夜精品久久久久久毛片777| 日本黄色日本黄色录像| 亚洲精品中文字幕在线视频| 91老司机精品| 国产精品成人在线| 亚洲第一青青草原| 精品国产超薄肉色丝袜足j| av天堂久久9| 欧美亚洲 丝袜 人妻 在线| 国产又色又爽无遮挡免费看| 高清欧美精品videossex| 最新在线观看一区二区三区| 性高湖久久久久久久久免费观看| 亚洲专区中文字幕在线| 热re99久久国产66热| 操出白浆在线播放| 亚洲成av片中文字幕在线观看| 久久久精品区二区三区| 丰满迷人的少妇在线观看| 日韩大码丰满熟妇| 欧美黑人欧美精品刺激| 国产精品亚洲一级av第二区| 精品一区二区三区av网在线观看 | e午夜精品久久久久久久| 精品国产乱码久久久久久男人| 精品亚洲乱码少妇综合久久| 久久精品亚洲精品国产色婷小说| 桃花免费在线播放| 老司机影院毛片| 丁香欧美五月| 亚洲欧美精品综合一区二区三区| 黄色丝袜av网址大全| 久久精品亚洲av国产电影网| 精品少妇黑人巨大在线播放| 女人被躁到高潮嗷嗷叫费观| 男男h啪啪无遮挡| 国产区一区二久久| 亚洲国产精品一区二区三区在线| 欧美黑人精品巨大| 亚洲欧美激情在线| xxxhd国产人妻xxx| 性少妇av在线| 亚洲精品中文字幕一二三四区 | 高清在线国产一区| 久久久久视频综合| 欧美日韩中文字幕国产精品一区二区三区 | 天堂动漫精品| 成在线人永久免费视频| 欧美变态另类bdsm刘玥| 丁香欧美五月| 天天躁狠狠躁夜夜躁狠狠躁| 一边摸一边做爽爽视频免费| 淫妇啪啪啪对白视频| 国产精品一区二区在线不卡| 丝袜人妻中文字幕| 91老司机精品| 两性夫妻黄色片| 国产精品一区二区在线观看99| 黑丝袜美女国产一区| 美女高潮喷水抽搐中文字幕| av欧美777| 99国产极品粉嫩在线观看| 亚洲色图av天堂| 精品久久蜜臀av无| 中亚洲国语对白在线视频| 高清视频免费观看一区二区| 纯流量卡能插随身wifi吗| 一本综合久久免费| 国产人伦9x9x在线观看| 欧美人与性动交α欧美精品济南到| 国产精品一区二区在线观看99| 成年动漫av网址| 国产精品久久久久久精品古装| 黑人操中国人逼视频| 国产亚洲午夜精品一区二区久久| 国产av又大| 叶爱在线成人免费视频播放| 国产精品国产av在线观看| 12—13女人毛片做爰片一| 一本综合久久免费| 国产日韩一区二区三区精品不卡| 亚洲熟女精品中文字幕| 久久中文字幕一级| 欧美激情 高清一区二区三区| 午夜视频精品福利| 不卡av一区二区三区| 久久人人爽av亚洲精品天堂| 国产欧美日韩综合在线一区二区| 一区福利在线观看| 婷婷成人精品国产| 精品一区二区三区av网在线观看 | 国产在线免费精品| 亚洲精品在线观看二区| 97人妻天天添夜夜摸| 在线观看免费高清a一片| 人妻久久中文字幕网| 国产色视频综合| 一个人免费在线观看的高清视频| 一区二区日韩欧美中文字幕| 不卡一级毛片| 9191精品国产免费久久| 免费av中文字幕在线| 美女主播在线视频| 一夜夜www| 精品人妻熟女毛片av久久网站| videos熟女内射| 又紧又爽又黄一区二区| 中文字幕高清在线视频| 精品欧美一区二区三区在线| 亚洲一区二区三区欧美精品| 岛国毛片在线播放| av在线播放免费不卡| 女人被躁到高潮嗷嗷叫费观| 一边摸一边抽搐一进一出视频| xxxhd国产人妻xxx| 国产精品免费大片| 女警被强在线播放| 亚洲av国产av综合av卡| 老司机影院毛片| 日韩欧美三级三区| 国产一区有黄有色的免费视频| 久久久久久免费高清国产稀缺| 欧美人与性动交α欧美软件| 99精品在免费线老司机午夜| 多毛熟女@视频| 一区二区av电影网| 母亲3免费完整高清在线观看| 欧美日韩中文字幕国产精品一区二区三区 | kizo精华| 人人妻,人人澡人人爽秒播| 热re99久久精品国产66热6| 欧美精品啪啪一区二区三区| 国产成人免费无遮挡视频| 久久ye,这里只有精品| 国产成人免费观看mmmm| 亚洲熟女精品中文字幕| 69av精品久久久久久 | 午夜福利,免费看| 成人国产一区最新在线观看| 老熟妇仑乱视频hdxx| 两性午夜刺激爽爽歪歪视频在线观看 | 国产免费福利视频在线观看| 欧美激情极品国产一区二区三区| 亚洲视频免费观看视频| 欧美黄色片欧美黄色片| 欧美在线黄色| 成人国产一区最新在线观看| 精品国产亚洲在线| 色老头精品视频在线观看| 99久久99久久久精品蜜桃| 人人澡人人妻人| 国产成人啪精品午夜网站| 在线av久久热| 久久这里只有精品19| 成人手机av| 老鸭窝网址在线观看| 免费观看av网站的网址| 久久久水蜜桃国产精品网| 欧美午夜高清在线| 欧美在线黄色| 国产野战对白在线观看| 纯流量卡能插随身wifi吗| 建设人人有责人人尽责人人享有的| 国产成人啪精品午夜网站| 天堂中文最新版在线下载| 黑人巨大精品欧美一区二区蜜桃| 黄色a级毛片大全视频| 视频在线观看一区二区三区| 精品国产一区二区三区四区第35| 在线观看免费高清a一片| 久久久国产成人免费| 1024香蕉在线观看| 两个人免费观看高清视频| 久久狼人影院| 免费少妇av软件| 欧美av亚洲av综合av国产av| 国产男靠女视频免费网站| 99久久人妻综合| 天天躁夜夜躁狠狠躁躁| 每晚都被弄得嗷嗷叫到高潮| 亚洲精品中文字幕在线视频| 黑人巨大精品欧美一区二区mp4| 97人妻天天添夜夜摸| 美女国产高潮福利片在线看| www日本在线高清视频| 美国免费a级毛片| 女人爽到高潮嗷嗷叫在线视频| 王馨瑶露胸无遮挡在线观看| 久久 成人 亚洲| 日日爽夜夜爽网站| 一级毛片女人18水好多| 9色porny在线观看| 中文字幕最新亚洲高清| www.熟女人妻精品国产| www.熟女人妻精品国产| 在线播放国产精品三级| 国产亚洲午夜精品一区二区久久| 熟女少妇亚洲综合色aaa.| 熟女少妇亚洲综合色aaa.| 大码成人一级视频| 两人在一起打扑克的视频| 亚洲成a人片在线一区二区| 99久久精品国产亚洲精品| 欧美日韩福利视频一区二区| 久久香蕉激情| 18禁黄网站禁片午夜丰满| 亚洲人成电影免费在线| 99精品久久久久人妻精品| 成年人黄色毛片网站| 久久精品亚洲av国产电影网| 一边摸一边抽搐一进一小说 | 国产一区二区激情短视频| 国产精品.久久久| 亚洲av日韩精品久久久久久密| 亚洲中文av在线| 大陆偷拍与自拍| 叶爱在线成人免费视频播放| 中文字幕人妻丝袜制服| 久久人妻熟女aⅴ| 欧美精品一区二区大全| 啪啪无遮挡十八禁网站| 啪啪无遮挡十八禁网站| 这个男人来自地球电影免费观看| 亚洲国产欧美一区二区综合| a在线观看视频网站| 波多野结衣一区麻豆| 99热国产这里只有精品6| 久久这里只有精品19| 精品少妇内射三级| av天堂久久9| 怎么达到女性高潮| 美女福利国产在线| 亚洲专区字幕在线| 不卡av一区二区三区| 九色亚洲精品在线播放| 侵犯人妻中文字幕一二三四区| 丝袜喷水一区| 久久久久久久精品吃奶| 大码成人一级视频| 香蕉久久夜色| 日韩免费av在线播放| 国产高清videossex| 午夜成年电影在线免费观看| 黄片播放在线免费| 亚洲精品在线美女| 日本黄色日本黄色录像| 超色免费av| 男女高潮啪啪啪动态图| 国产老妇伦熟女老妇高清| 欧美av亚洲av综合av国产av| 岛国毛片在线播放| 69精品国产乱码久久久| 国产成人精品久久二区二区免费| 大型黄色视频在线免费观看| 国产成人精品在线电影| 国产成人av教育| 看免费av毛片| 亚洲专区中文字幕在线| 性高湖久久久久久久久免费观看| 国产av又大| 亚洲精品国产色婷婷电影| 国产精品亚洲一级av第二区| 国产又色又爽无遮挡免费看| 欧美日本中文国产一区发布| 亚洲七黄色美女视频| 操美女的视频在线观看| 欧美成人免费av一区二区三区 | 午夜福利欧美成人| 亚洲精品美女久久av网站| 黄色视频,在线免费观看| 人成视频在线观看免费观看| 午夜福利在线观看吧| tocl精华| 一本—道久久a久久精品蜜桃钙片| 国产在线精品亚洲第一网站| 真人做人爱边吃奶动态| 午夜福利影视在线免费观看| 国产精品98久久久久久宅男小说| 亚洲国产成人一精品久久久| 美女午夜性视频免费| a级片在线免费高清观看视频| 免费在线观看完整版高清| 亚洲av电影在线进入| 电影成人av| av福利片在线| 一本色道久久久久久精品综合| 亚洲国产中文字幕在线视频| 国产99久久九九免费精品| 亚洲va日本ⅴa欧美va伊人久久| 精品一区二区三区视频在线观看免费 | av天堂久久9| 午夜激情av网站| 宅男免费午夜| 欧美激情极品国产一区二区三区| 亚洲成人免费电影在线观看| 国产又色又爽无遮挡免费看| 久久天躁狠狠躁夜夜2o2o| 50天的宝宝边吃奶边哭怎么回事| 超碰97精品在线观看| 91精品三级在线观看| 女人精品久久久久毛片| 欧美乱码精品一区二区三区| 成人国产一区最新在线观看| 欧美激情极品国产一区二区三区| 两性夫妻黄色片| 久久人妻av系列| 国产视频一区二区在线看| 久久精品aⅴ一区二区三区四区| 亚洲国产精品一区二区三区在线| 桃花免费在线播放| 91九色精品人成在线观看| 成人国产一区最新在线观看| 一二三四社区在线视频社区8| 日本一区二区免费在线视频| 夜夜骑夜夜射夜夜干| 天天躁狠狠躁夜夜躁狠狠躁| 啦啦啦 在线观看视频| 国产日韩欧美亚洲二区| 国产欧美亚洲国产| 日本wwww免费看| av网站在线播放免费| 99九九在线精品视频| 不卡一级毛片| 国产xxxxx性猛交| 十八禁网站免费在线| 汤姆久久久久久久影院中文字幕| 最新在线观看一区二区三区| 9色porny在线观看| 香蕉久久夜色| 成人国产一区最新在线观看| 99精品欧美一区二区三区四区| 免费女性裸体啪啪无遮挡网站| 99riav亚洲国产免费| 欧美另类亚洲清纯唯美| av电影中文网址| 亚洲精品中文字幕在线视频| 日本欧美视频一区| 99国产综合亚洲精品| 国产极品粉嫩免费观看在线| 丰满人妻熟妇乱又伦精品不卡| 成人精品一区二区免费| 黑人欧美特级aaaaaa片| 女同久久另类99精品国产91| 日韩视频在线欧美| 男人操女人黄网站| 亚洲国产av影院在线观看| 国产成人影院久久av| 国产麻豆69| 国产av国产精品国产| 建设人人有责人人尽责人人享有的| 天天躁狠狠躁夜夜躁狠狠躁| 日韩欧美三级三区| 一级,二级,三级黄色视频| 欧美日韩亚洲国产一区二区在线观看 | 亚洲欧洲精品一区二区精品久久久| 亚洲午夜理论影院| 老司机靠b影院| 男人舔女人的私密视频| 好男人电影高清在线观看| 中文字幕人妻丝袜一区二区| 在线看a的网站| 亚洲人成伊人成综合网2020| 日日爽夜夜爽网站| 欧美亚洲日本最大视频资源| 99re在线观看精品视频| 女人久久www免费人成看片| 精品熟女少妇八av免费久了| 精品少妇久久久久久888优播| 97人妻天天添夜夜摸| 涩涩av久久男人的天堂| 露出奶头的视频| 在线观看免费午夜福利视频| av天堂久久9| 曰老女人黄片| 日韩欧美一区视频在线观看| 精品国产乱码久久久久久男人| 精品熟女少妇八av免费久了| 久久国产精品人妻蜜桃| 在线观看66精品国产| 午夜福利乱码中文字幕| 亚洲av第一区精品v没综合| 日本wwww免费看| 亚洲成人手机| 日韩制服丝袜自拍偷拍| 国产欧美日韩精品亚洲av| 高清毛片免费观看视频网站 | 9色porny在线观看| 亚洲熟女毛片儿| 久久狼人影院| 亚洲一码二码三码区别大吗| 欧美成人免费av一区二区三区 | 嫁个100分男人电影在线观看| 一级毛片电影观看| 激情在线观看视频在线高清 | 亚洲熟女毛片儿| 99精品欧美一区二区三区四区| tocl精华| 我的亚洲天堂| 日韩中文字幕欧美一区二区| www.999成人在线观看| 香蕉国产在线看| 久久人妻av系列| 欧美日韩亚洲高清精品| 19禁男女啪啪无遮挡网站| 香蕉国产在线看| 精品第一国产精品| 飞空精品影院首页| 国产欧美亚洲国产| 亚洲天堂av无毛| 黄色毛片三级朝国网站| 久久精品国产a三级三级三级| 性高湖久久久久久久久免费观看| 波多野结衣一区麻豆| 一级毛片精品| 亚洲伊人色综图| 日韩视频一区二区在线观看| 在线观看免费午夜福利视频| netflix在线观看网站| 丝袜喷水一区| 国产有黄有色有爽视频| 国产激情久久老熟女| 国产亚洲av高清不卡| 亚洲精品一二三| 欧美日韩成人在线一区二区| 中文字幕av电影在线播放| 嫩草影视91久久| 久久精品人人爽人人爽视色| 18禁裸乳无遮挡动漫免费视频| 岛国在线观看网站| 在线观看免费视频网站a站| 亚洲av第一区精品v没综合| 欧美国产精品一级二级三级| 亚洲三区欧美一区| 最近最新中文字幕大全免费视频| 99久久精品国产亚洲精品| 亚洲欧美精品综合一区二区三区| 在线永久观看黄色视频| 99国产精品免费福利视频| 1024视频免费在线观看| 精品第一国产精品| 在线观看www视频免费| 人人妻人人澡人人爽人人夜夜| 一本色道久久久久久精品综合| 日韩免费高清中文字幕av| 无遮挡黄片免费观看| 亚洲精华国产精华精| 黄片播放在线免费| 美女视频免费永久观看网站| 日本黄色日本黄色录像| 中文字幕人妻熟女乱码| 久久精品国产综合久久久| 国产男靠女视频免费网站| 日韩人妻精品一区2区三区| 精品第一国产精品| 每晚都被弄得嗷嗷叫到高潮| 人人妻人人澡人人爽人人夜夜| 午夜成年电影在线免费观看| 亚洲三区欧美一区| 精品少妇黑人巨大在线播放| 桃花免费在线播放| 国产精品99久久99久久久不卡| 国产免费av片在线观看野外av| 丝袜人妻中文字幕| 午夜91福利影院| 一个人免费看片子| 久久精品国产亚洲av高清一级| 人人妻人人添人人爽欧美一区卜| 精品亚洲乱码少妇综合久久| 91av网站免费观看| 伦理电影免费视频| 精品亚洲成a人片在线观看| 免费女性裸体啪啪无遮挡网站| 色综合欧美亚洲国产小说| 精品国产亚洲在线| 国产一区二区三区在线臀色熟女 | 99国产精品一区二区三区| 免费在线观看完整版高清| 日本wwww免费看| 热99国产精品久久久久久7| 天堂动漫精品| 18禁裸乳无遮挡动漫免费视频| 下体分泌物呈黄色| 国产精品九九99| 91麻豆av在线| 亚洲欧美激情在线| 国产在线免费精品| 亚洲国产中文字幕在线视频| 亚洲熟女毛片儿| 露出奶头的视频| 黄片播放在线免费| av天堂在线播放| 中亚洲国语对白在线视频| 大片免费播放器 马上看| 美女午夜性视频免费| 久久精品亚洲av国产电影网| 搡老熟女国产l中国老女人| 另类亚洲欧美激情| 黄片大片在线免费观看| 咕卡用的链子| 国产精品免费一区二区三区在线 | 丝瓜视频免费看黄片| 日韩人妻精品一区2区三区| 免费在线观看日本一区| 日韩视频在线欧美| 人人妻人人澡人人看| 免费日韩欧美在线观看| 欧美黄色片欧美黄色片| 国产97色在线日韩免费| 日韩一区二区三区影片| 黑丝袜美女国产一区| 欧美国产精品一级二级三级| 亚洲 国产 在线| 18禁美女被吸乳视频| 久久99热这里只频精品6学生| 精品国产一区二区三区四区第35| 十八禁人妻一区二区| 国产成+人综合+亚洲专区| 亚洲男人天堂网一区| 女人精品久久久久毛片| 国产无遮挡羞羞视频在线观看| 亚洲国产精品一区二区三区在线| 91老司机精品| 国产免费av片在线观看野外av| 欧美成狂野欧美在线观看| av电影中文网址| 美女高潮到喷水免费观看| 国产精品欧美亚洲77777| 老司机靠b影院| 最近最新免费中文字幕在线| 91九色精品人成在线观看| 国产精品国产av在线观看| e午夜精品久久久久久久| 日韩一区二区三区影片| a级毛片在线看网站| 亚洲欧美精品综合一区二区三区| 亚洲av国产av综合av卡| 黑人巨大精品欧美一区二区mp4| 满18在线观看网站| 在线观看舔阴道视频| 久久久水蜜桃国产精品网| 搡老乐熟女国产| 99国产极品粉嫩在线观看| 亚洲天堂av无毛| 一级a爱视频在线免费观看| 亚洲精品粉嫩美女一区| 91老司机精品| 男女无遮挡免费网站观看| 国产成人免费观看mmmm| 国产欧美日韩一区二区三区在线| 欧美在线一区亚洲| netflix在线观看网站| 国产精品二区激情视频| 欧美另类亚洲清纯唯美| 少妇精品久久久久久久| 国产欧美日韩综合在线一区二区| 九色亚洲精品在线播放| 狠狠婷婷综合久久久久久88av| 高潮久久久久久久久久久不卡| 丁香欧美五月| 最新在线观看一区二区三区| 亚洲精品在线美女| 夜夜爽天天搞| 亚洲色图av天堂| 免费高清在线观看日韩| 日日夜夜操网爽| 人人妻人人爽人人添夜夜欢视频| 成人黄色视频免费在线看| 亚洲欧美激情在线| 亚洲av第一区精品v没综合| 美国免费a级毛片| 岛国毛片在线播放| 国产日韩一区二区三区精品不卡| 久久久欧美国产精品| 久久久久视频综合| videos熟女内射| 视频区图区小说| 亚洲精品国产区一区二| 欧美乱妇无乱码| 精品福利观看| 满18在线观看网站| 欧美性长视频在线观看| 国产精品一区二区在线观看99| 热re99久久国产66热| 国产精品二区激情视频| 久久午夜综合久久蜜桃| 久久久欧美国产精品| 国产激情久久老熟女| 久久亚洲精品不卡| 成人国产av品久久久| 欧美激情 高清一区二区三区| 午夜成年电影在线免费观看| 免费黄频网站在线观看国产| 久久精品国产99精品国产亚洲性色 | 国产在线观看jvid| 国产精品秋霞免费鲁丝片| 在线观看www视频免费| 桃红色精品国产亚洲av| 国产精品98久久久久久宅男小说| 亚洲七黄色美女视频| 色老头精品视频在线观看| 99国产综合亚洲精品| 一本综合久久免费| 99精国产麻豆久久婷婷| 丝袜美足系列| 黄色视频,在线免费观看|