這篇文章將為大家詳細(xì)講解有關(guān)如何進(jìn)行NEO匿名交易合約可行性探索,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
桃城網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。成都創(chuàng)新互聯(lián)從2013年開(kāi)始到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)。
0x00 前言
我試著去研究了一下在NEO上部署匿名交易合約的可行性。
0x01 不可能完成的任務(wù)
和我之前研究NEO上的任意數(shù)量安全隨機(jī)數(shù)的可能性一樣,我對(duì)于在NEO上部署匿名交易合約的結(jié)論也是不可行。先把結(jié)論掛出來(lái),只需要結(jié)果的就可以不用往下看分析了。
為了親民考慮,我們完全拋開(kāi)什么零知識(shí)證明之類高大上的東西(其實(shí)是沒(méi)看懂)。有感興趣的可以參考零知識(shí)證明。但是哇,參考是可以的,但是不建議深入研究。這個(gè)東西技術(shù)細(xì)節(jié)需要很強(qiáng)的密碼學(xué)功底,筆者反正是撤了。
0x02 匿名設(shè)計(jì)
這里我用到的東西是偷的一部分門(mén)羅幣里CryptoNight構(gòu)造交易時(shí)隱藏用戶信息的方法,但是由于這只是博客而已,所以具體用了多少我也不去深究了。
我們先不考慮這些幣怎么來(lái)的,就說(shuō)已經(jīng)存在了。幣采用UTXO的形式設(shè)計(jì),每個(gè)UTXO的結(jié)構(gòu)如下:
對(duì)于這個(gè)系統(tǒng)里的每一個(gè)UTXO來(lái)說(shuō),Coin記錄著幣本身的信息,這個(gè)信息由用戶的公鑰進(jìn)行加密,也就是說(shuō),假如這個(gè)幣是李總的,那么這個(gè)Coin里的信息就是由李總的公鑰來(lái)加密的。每一個(gè)Coin本身有一個(gè)私鑰,這個(gè)私鑰可以在每次交易的時(shí)候重新生成,在交易構(gòu)造完成后,與通常的使用用戶自己的私鑰進(jìn)行簽名不同,這里使用目標(biāo)用戶的公鑰進(jìn)行簽名,之后再用Coin本身私鑰對(duì)應(yīng)的公鑰進(jìn)行簽名。在交易發(fā)布之后,系統(tǒng)只需要對(duì)Coin本身的合法性進(jìn)行驗(yàn)證即可,不需要關(guān)心究竟轉(zhuǎn)賬或者傳遞的數(shù)據(jù)的內(nèi)容是多少。
也就是說(shuō),假如A轉(zhuǎn)賬給B,那么交易構(gòu)造的流程應(yīng)該是這樣的:
首先A從自己的Coin里拿出一個(gè)Coin,然后用自己的私鑰解密獲取Coin本身的key1,生成新的key2并用這個(gè)key2替換key1構(gòu)造新的Coin,構(gòu)造完成后用B的公鑰來(lái)對(duì)Coin進(jìn)行加密,之后再用key1添加簽名。
交易發(fā)出后,系統(tǒng)會(huì)驗(yàn)證key1是否和這個(gè)UTXO之前的版本相關(guān)聯(lián)。
0x03 雙花導(dǎo)致的不可能性 在上面的設(shè)計(jì)中有一個(gè)很嚴(yán)重的bug,就是雙花問(wèn)題,A知道UTXO,而且可以解密UTXO,那么A就可能構(gòu)造許多許多的交易,而系統(tǒng)又要求匿名性,那么就不能引入對(duì)已有交易的直接判斷,那如何即知道這筆錢(qián)已經(jīng)被消費(fèi)了,而又不知道是花的哪筆錢(qián)呢?這里就需要用到零知識(shí)證明,在零知識(shí)證明中,最簡(jiǎn)單的解釋就是公式:f(x)+f(y)=f(x+y),就是說(shuō),我們只知道f(x),f(y)而不知道x和y,但是我們就可以判斷出f(x+y)的結(jié)果是正確的。在這個(gè)系統(tǒng)中,我們可以認(rèn)為Coin就是x,用戶就是y,我們把Coin和用戶都通過(guò)算法隱藏起來(lái),但是提供兩者交互的結(jié)果,那么系統(tǒng)就可以驗(yàn)證這個(gè)交互的正確性而不需要知道具體的Coin和用戶。這樣就達(dá)到了匿名而又避免了雙花問(wèn)題。然而,在NEO中,NEO并沒(méi)有對(duì)合約開(kāi)放驗(yàn)證零知識(shí)證明需要的密碼學(xué)計(jì)算接口。沒(méi)有接口也就意味著無(wú)法進(jìn)行零知識(shí)證明。因此,至少以目前的分析來(lái)看,在NEO合約中部署匿名交易合約是不可能的,除非官方開(kāi)放相關(guān)密碼學(xué)接口。但是話說(shuō)回來(lái),零知識(shí)證明本身需要的計(jì)算量比較大,如果NEO中開(kāi)放零知識(shí)證明的算法接口,那么節(jié)點(diǎn)的計(jì)算壓力將會(huì)暴增。
關(guān)于如何進(jìn)行NEO匿名交易合約可行性探索就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。
名稱欄目:如何進(jìn)行NEO匿名交易合約可行性探索
新聞來(lái)源:http://jinyejixie.com/article24/jjhsje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營(yíng)銷型網(wǎng)站建設(shè)、定制開(kāi)發(fā)、小程序開(kāi)發(fā)、Google、微信公眾號(hào)、移動(dòng)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)