最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

互助模式FDF循環(huán)游戲智能合約開(kāi)發(fā)系統(tǒng)技術(shù)

2023-03-23 14:03 作者:vv_punk2558  | 我要投稿

  實(shí)現(xiàn)智能合約就需要“圖靈完備”的計(jì)算機(jī)編程語(yǔ)言?!皥D靈完備”這個(gè)詞大家似乎了解的不多,可以簡(jiǎn)單地理解為能把世間一切可以計(jì)算解決的問(wèn)題都計(jì)算出來(lái)的,這樣的一種虛擬機(jī)或者編程語(yǔ)言就叫圖靈完備。


  智能合約之所以可以在以太坊上完美應(yīng)用,就是因?yàn)橐蕴辉谄鋮^(qū)塊鏈上提供了一種近乎圖靈完備的計(jì)算環(huán)境。只要是編程語(yǔ)言能夠?qū)崿F(xiàn)的計(jì)算,其都能支持,這也為智能合約在更加廣泛的環(huán)境中得以應(yīng)用堅(jiān)實(shí)了基礎(chǔ)。


  對(duì)比智能合約和傳統(tǒng)合約,F(xiàn)DF循環(huán)互助系統(tǒng)13z開(kāi)4z77發(fā)z558,我們就能知道智能合約為什么會(huì)出現(xiàn)了。隨著科技的進(jìn)步,我們都會(huì)有一些通過(guò)雙方簽訂合同來(lái)約束彼此經(jīng)濟(jì)活動(dòng)的經(jīng)歷,但即使簽訂合同,我們也無(wú)法保證雙方都能在規(guī)定期限內(nèi)完整的履行合同規(guī)定的內(nèi)容。


  傳統(tǒng)合約受到諸如主客觀、經(jīng)濟(jì)成本、適用范圍、執(zhí)行力度和執(zhí)行時(shí)間等因素的影響,而智能合約便可以在很大程度上解決這些因素的影響。智能合約的主要特點(diǎn)可以簡(jiǎn)單地概括為:去中心化、智能高效(自動(dòng)執(zhí)行、無(wú)人為干預(yù))、準(zhǔn)確、低成本。


  眾所周知,區(qū)塊鏈最大的特質(zhì)就是去中心化,在不信任中創(chuàng)造出信任?;趨^(qū)塊鏈的智能合約是將合約以數(shù)字化的形式寫入到區(qū)塊鏈中,在區(qū)塊鏈優(yōu)秀特性的加持下自然的具備了去中心化的特點(diǎn),合約內(nèi)容公開(kāi)透明、條理清晰且不可篡改,編程語(yǔ)言就是規(guī)束合約的法律條文,交易雙方可完全放心的進(jìn)行交易。


  智能合約的整個(gè)產(chǎn)生和執(zhí)行過(guò)程都是可追溯、不可篡改的。一旦觸發(fā)合約就會(huì)立即執(zhí)行,自動(dòng)按照合約規(guī)范進(jìn)行操作。整個(gè)過(guò)程智能高效,短時(shí)間快速完成更是體現(xiàn)了它的準(zhǔn)確和經(jīng)濟(jì)。


  在solidity中合約之間的相互調(diào)用有兩種方式:


  使用封裝的方式,將合約地址封裝成一個(gè)合約對(duì)象來(lái)調(diào)用它的函數(shù)


  直接使用函數(shù)來(lái)調(diào)用其他合約


  solidity提供了call()、delegatecall()、callcode()三個(gè)函數(shù)來(lái)實(shí)現(xiàn)合約直接的調(diào)用及交互,這些函數(shù)的濫用導(dǎo)致了各種安全風(fēng)險(xiǎn)和漏洞。在使用第二種方式時(shí),如果處理不當(dāng)很可能產(chǎn)生致命的漏洞——跨合約調(diào)用漏洞,主要就是call()注入函數(shù)導(dǎo)致的


  call()函數(shù)對(duì)某個(gè)合約或者本地合約的某個(gè)方法的調(diào)用方式:


  <address>.call(方法選擇器,arg1,arg2,...)


  <address>.call(bytes)


  通過(guò)傳遞參數(shù)的方式,將方法選擇器、參數(shù)進(jìn)行傳遞,也可以直接傳入一個(gè)字節(jié)數(shù)組(bytes要自己構(gòu)造)


  舉一個(gè)簡(jiǎn)單的例子


  contract sample_1{


  function info(bytes data){


  this.call(data);


  }


  function secret()public{


  require(this==msg.sender);


  //secret operations


  }


  }


  合約的兩個(gè)函數(shù)中secret函數(shù)必須是合約自身調(diào)用的,然而有個(gè)info函數(shù),調(diào)用了call(),并且外界是可以直接控制call函數(shù)的字節(jié)數(shù)組的


  this.call(bytes4(keccak256("secret()")));這樣就調(diào)用了secret


  第二個(gè)例子


  contract sample2{


  ...


  function logAndCall(address _to,uint _value,bytes data,string _fallback){


  ...


  assert(_to.call(bytes4(keccak256(_fallback)),msg.sender,_value,_data));


  ...


  ...


  }


  在logAndCall函數(shù)中,我們的_falback參數(shù)可以控制,所以我們可以控制_to的任何方法。另外assert有三個(gè)參數(shù),我們沒(méi)必要調(diào)用完全符合三個(gè)參數(shù)類型的合約,因?yàn)樵贓VM中,只要找到了方法需要的參數(shù),就會(huì)去執(zhí)行,其他參數(shù)就會(huì)被忽略,不會(huì)產(chǎn)生任何影響


互助模式FDF循環(huán)游戲智能合約開(kāi)發(fā)系統(tǒng)技術(shù)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
郯城县| 郁南县| 濮阳市| 伊通| 克拉玛依市| 禹城市| 城口县| 清涧县| 靖安县| 平乐县| 威宁| 苍梧县| 民勤县| 浑源县| 内丘县| 新津县| 洪洞县| 平昌县| 白银市| 岳阳县| 永福县| 栾川县| 鹤壁市| 焦作市| 博客| 广汉市| 漠河县| 鄂伦春自治旗| 遵化市| 巢湖市| 牙克石市| 正阳县| 邛崃市| 北辰区| 盐津县| 石城县| 思茅市| 稻城县| 金乡县| 沙河市| 喀什市|