科普智能合約與其ERC標(biāo)準(zhǔn)

比特幣被稱為區(qū)塊鏈1.0钧嘶,以太坊被稱為區(qū)塊鏈2.0,那么作為區(qū)塊鏈2.0時(shí)代的代表以太坊最引人注目的創(chuàng)新就在于它的“智能合約”琳疏,本文為大家講解智能合約有决。

智能合約是什么?

我們都知道傳統(tǒng)的合約或合同是當(dāng)事人之間設(shè)立空盼、變更书幕、終止民事權(quán)利義務(wù)關(guān)系的協(xié)議,那么智能合約有什么區(qū)別呢揽趾?它是一種以信息化方式傳播台汇、驗(yàn)證或執(zhí)行合同的計(jì)算機(jī)協(xié)議。其次它允許在沒(méi)有第三方的情況下進(jìn)行可信交易篱瞎,這些交易可追蹤不可逆轉(zhuǎn)苟呐。智能合約的概念最早是是由密碼學(xué)家和計(jì)算科學(xué)家Nick Szabo在1995年提出。(他當(dāng)初在自己發(fā)表的文章中提到了智能合約的理念:一個(gè)智能合約是一套數(shù)字形式定義的承諾俐筋,包括合約參與方可以在上面執(zhí)行這些承諾的協(xié)議)

智能合約的初衷是提供優(yōu)于傳統(tǒng)合約的安全方法牵素,并減少與合約相關(guān)的交易成本。但是智能合約現(xiàn)在還不算太智能澄者,目前來(lái)說(shuō)和現(xiàn)實(shí)生活中的法律協(xié)議也不一樣笆呆,它只是運(yùn)行在區(qū)塊鏈頂部的計(jì)算機(jī)代碼,或者說(shuō)是程序員編寫(xiě)的一個(gè)軟件程序粱挡,程序里面包含了一些規(guī)則赠幕,只要滿足了預(yù)先制定的規(guī)則,協(xié)議就會(huì)自動(dòng)執(zhí)行抱怔。


智能合約如何執(zhí)行劣坊?

相信大家經(jīng)常面臨著被朋友借錢猶豫到底借不借的問(wèn)題嘀倒,不借怕傷害了朋友的面子屈留,借了呢,又不知道對(duì)方什么時(shí)候能還测蘑。那么用智能合約來(lái)執(zhí)行的話就簡(jiǎn)單多了灌危,比如你借給你朋友王二10000元,并在沒(méi)有第三方在場(chǎng)的情況下與他約好一個(gè)月后還款碳胳,雙方設(shè)置好條款勇蝙,一個(gè)月后合約會(huì)自動(dòng)將10000元從王二的賬戶上劃轉(zhuǎn)至你的賬戶中。

所有的智能合約大多都遵循類似的原則挨约,對(duì)程序進(jìn)行預(yù)先編碼味混,設(shè)置好規(guī)則产雹,根據(jù)規(guī)則自動(dòng)執(zhí)行讲岁。那么智能合約的參與者相比傳統(tǒng)合約的優(yōu)點(diǎn)在于它比手動(dòng)結(jié)算效率高教翩,解決了信任問(wèn)題,執(zhí)行時(shí)減少了交易成本等埠戳。


智能合約的工作流程是怎樣的馆衔?

竟然是一種數(shù)字形式定義的承諾瘟判,那意味著需要寫(xiě)入計(jì)算機(jī)的可讀代碼中。當(dāng)參與方達(dá)成協(xié)定角溃,智能合約建立好權(quán)利和義務(wù)后拷获,剩下的就由計(jì)算機(jī)或其網(wǎng)絡(luò)執(zhí)行。

1.達(dá)成協(xié)定:參與方制定相關(guān)的合約條款减细,比如執(zhí)行條件匆瓜,執(zhí)行日期,相關(guān)的法幣要求等未蝌。

2.事件:指觸發(fā)合約執(zhí)行的事件陕壹,可以是接收到的信息也可以是交易的發(fā)起。如借錢例子中的到期還款树埠。

3.合約執(zhí)行以及價(jià)值轉(zhuǎn)移:合約執(zhí)行滿足條件的價(jià)值轉(zhuǎn)移糠馆。以上面的例子來(lái)說(shuō),從王二的賬戶里轉(zhuǎn)10000元給我怎憋,就是一次價(jià)值轉(zhuǎn)移又碌。

4.結(jié)算:通過(guò)兩種方式實(shí)現(xiàn):一是鏈上資產(chǎn)(數(shù)字),適用于虛擬資產(chǎn)绊袋,賬戶自動(dòng)結(jié)算毕匀。鏈下資產(chǎn),適用于如股票癌别、法幣等現(xiàn)實(shí)中的資產(chǎn)皂岔,賬戶更改將與鏈下結(jié)算指令相匹配。


智能合約的優(yōu)點(diǎn)與缺點(diǎn)有哪些展姐?

優(yōu)點(diǎn):透明躁垛,精確,安全圾笨,快速教馆,效率高,永遠(yuǎn)存儲(chǔ)和備份擂达,信任土铺,降低成本。

由于智能合約是部署在區(qū)塊鏈上,所以合約規(guī)定上的相關(guān)條款對(duì)所有參與者都是可見(jiàn)的悲敷,因?yàn)楹霞s一旦建立就不可隨意篡改究恤,也保證了參與方的利益;智能合約作為一個(gè)數(shù)字形式的承諾后德,其結(jié)果相對(duì)來(lái)說(shuō)是很精確的丁溅;智能合約采用了數(shù)據(jù)加密,它的保護(hù)級(jí)別算是目前互聯(lián)網(wǎng)上最安全的探遵;運(yùn)行在區(qū)塊鏈上的智能合約窟赏,同樣被區(qū)塊鏈上網(wǎng)絡(luò)節(jié)點(diǎn)共同維護(hù),只要區(qū)塊鏈在箱季,智能合約就能永久的運(yùn)行下去涯穷。同樣的,智能合約記錄的資料也將永久保存藏雏,以備將來(lái)參考拷况。此外,如果有數(shù)據(jù)丟失掘殴,也可以很容易地被檢索到赚瘦。

缺點(diǎn):安全問(wèn)題

智能合約是“執(zhí)行合約條款的計(jì)算機(jī)交易協(xié)議”。區(qū)塊鏈上的所有用戶都可以看到基于區(qū)塊鏈的智能合約奏寨。但是起意,這也會(huì)導(dǎo)致包括安全漏洞在內(nèi)的所有漏洞都可見(jiàn),并且可能無(wú)法迅速恢復(fù)病瞳。


智能合約所遵循的ERC標(biāo)準(zhǔn)有哪些揽咕?

你可能會(huì)經(jīng)常聽(tīng)到有人說(shuō)ERC-20代幣,但自己卻聽(tīng)得云里霧里不知如何接話套菜,那么接下來(lái)就帶大家了解一下亲善。ERC標(biāo)準(zhǔn)是由以太坊開(kāi)發(fā)人員編寫(xiě)的,開(kāi)發(fā)人員基于這些標(biāo)準(zhǔn)構(gòu)建智能合約逗柴,目前最流行的被大家討論最多的就是ERC-20標(biāo)準(zhǔn)蛹头。除了ERC-20標(biāo)準(zhǔn)外,還有些ERC標(biāo)準(zhǔn)戏溺,如:ERC-223渣蜗、ERC-621、ERC-721于购、ERC-827袍睡。

什么是ERC知染?

ERC(Ethereum Request for Comment)即以太坊通用意見(jiàn)征求意見(jiàn)協(xié)議肋僧,每一個(gè)開(kāi)源的社區(qū)都需要一個(gè)系統(tǒng)來(lái)處理成員提出的請(qǐng)求和對(duì)請(qǐng)求的采納。ERC就在以太坊網(wǎng)絡(luò)中行使這樣的一個(gè)職能,ERC為開(kāi)發(fā)者提供了技術(shù)指導(dǎo)嫌吠,也對(duì)以太坊網(wǎng)絡(luò)的發(fā)展提供了建議止潘。

ERC是誰(shuí)編寫(xiě)的?

ERC標(biāo)準(zhǔn)是由以太坊開(kāi)發(fā)人員為以太坊社區(qū)編寫(xiě)的辫诅。他們?yōu)榱私o以太坊平臺(tái)創(chuàng)建標(biāo)準(zhǔn)凭戴,提交了以太坊改進(jìn)建議( EIP )——包括協(xié)議規(guī)范和合同標(biāo)準(zhǔn)。如果EIP被委員會(huì)批準(zhǔn)并最終確定炕矮,它就成為了一個(gè)ERC么夫。

EIP的完整列表請(qǐng)參閱:

https://github.com/ethereum/EIPs

ERC有什么作用?

這些被委員會(huì)批準(zhǔn)確定的EIP肤视,為以太坊開(kāi)發(fā)人員提供了一套可行的ERC標(biāo)準(zhǔn)档痪。由于EIP的接口是開(kāi)放的,所以開(kāi)發(fā)人員可以基于這些標(biāo)準(zhǔn)之上構(gòu)建智能合約邢滑。其中ERC-20是整個(gè)加密社區(qū)中最流行的標(biāo)準(zhǔn)腐螟,以太坊平臺(tái)上的所有通證都使用這一標(biāo)準(zhǔn)。


1困后、ERC-20

ERC-20是整個(gè)加密社區(qū)中的所有標(biāo)準(zhǔn)中名氣最大的乐纸,而且大多數(shù)基于以太坊平臺(tái)發(fā)布的token都基于ERC-20協(xié)議。ERC-20協(xié)議清晰的定義了基于其標(biāo)準(zhǔn)發(fā)布的代幣將在以太坊網(wǎng)絡(luò)中怎樣運(yùn)作摇予。

因此汽绢,ERC-20對(duì)開(kāi)發(fā)者的影響是巨大的,因?yàn)樗鼈冊(cè)僖膊挥脼榱税l(fā)行一個(gè)新token而重做整個(gè)項(xiàng)目了侧戴。如果這些token是符合ERC-20標(biāo)準(zhǔn)的庶喜,那么它們就會(huì)與新token兼容。ERC-20規(guī)則被開(kāi)發(fā)者大規(guī)模采用救鲤,這意味著基于以太坊的ICO發(fā)布的大多數(shù)token都符合ERC-20標(biāo)準(zhǔn)久窟。

ERC-20標(biāo)準(zhǔn)包括以下方法:

totalSupply():返回通證的總供應(yīng)量。

balanceOf(address _owner):_owner賬戶的賬戶余額本缠。

transfer(address _to, uint256 _value):發(fā)送數(shù)量為_(kāi)value的通證到地址_to斥扛,觸發(fā)Transfer事件。

transferFrom(address _from, address _to, uint256 _value):從地址_from發(fā)送數(shù)量為_(kāi)value的通證到地址_to丹锹,觸發(fā)Transfer事件稀颁。

approve(address _spender, uint256 _value):允許_spender提取一定數(shù)量的金額。

allowance(address _owner, address _spender):返回允許_spender從_owner提取的金額楣黍。

以上這些方法將會(huì)觸發(fā)以下事件:

transfer(address indexed _from, address indexed _to, uint256 _value):當(dāng)token被轉(zhuǎn)移時(shí)則會(huì)觸發(fā)匾灶。

approval(address indexed _owner, addressindexed _spender, uint256 _value):成功調(diào)用approve方法后則會(huì)觸發(fā)。

ERC-20標(biāo)準(zhǔn)于2015年被提出租漂,并于2017年9月正式確定阶女,這是通證標(biāo)準(zhǔn)化的一個(gè)很好的開(kāi)始颊糜。但是,社區(qū)中的一些開(kāi)發(fā)人員指出秃踩,這個(gè)標(biāo)準(zhǔn)存在缺陷和漏洞衬鱼。另外,有些用例的確需要使用不同的標(biāo)準(zhǔn)憔杨,下面介紹一些其他的ERC標(biāo)準(zhǔn)鸟赫。


2、ERC-223

狀態(tài):打開(kāi)

提出日期:2017年5月3日

開(kāi)發(fā)人員Dexaran詳細(xì)描述了ERC-223標(biāo)準(zhǔn)適用的兩種場(chǎng)景:

在ERC20通證標(biāo)準(zhǔn)中執(zhí)行交易有兩種方式:

1.transfer方法消别。

2.approve + transferFrom 機(jī)制抛蚤。

通證余額只是通證合約中的一個(gè)變量。

通證的交易在合同中的表現(xiàn)是變量的變化:轉(zhuǎn)出賬戶的余額將減少寻狂,接收賬戶的余額將增多霉颠。

交易發(fā)生時(shí), transfer方法不會(huì)通知接收賬戶荆虱,接受賬戶也將無(wú)法識(shí)別傳入交易蒿偎!下面是我寫(xiě)的一個(gè)例子,來(lái)展示導(dǎo)致交易未處理和資金損失的過(guò)程 怀读。

如果接收賬戶接受到的是合約诉位,用戶必須使用approve +transferFrom 機(jī)制來(lái)轉(zhuǎn)移通證;如果接收賬戶是外部帳戶地址菜枷,用戶必須通過(guò) transfer方法轉(zhuǎn)移通證苍糠;如果選擇了錯(cuò)誤的方法,通證將被卡在合約中(合約將不會(huì)識(shí)別交易)啤誊,那么岳瞭,我們將無(wú)法提取這些被卡住的通證。

Dexaran提出的ERC-223標(biāo)準(zhǔn)就解決了這一問(wèn)題蚊锹,而且瞳筏,它與ERC-20標(biāo)準(zhǔn)非常相似。當(dāng)通證轉(zhuǎn)移到智能合約時(shí)牡昆,該合約的一個(gè)特殊方法tokenFallback將允許接收合約姚炕、拒絕通證或觸發(fā)進(jìn)一步的操作。在大多數(shù)情況下丢烘,tokenFallback方法可以用來(lái)代替approve方法柱宦。


3、ERC-621

狀態(tài):打開(kāi)

提出日期:2017年5月1日

ERC-621標(biāo)準(zhǔn)是ERC-20通證標(biāo)準(zhǔn)的擴(kuò)展播瞳。該標(biāo)準(zhǔn)增加了兩個(gè)額外的方法:increaseSupply?decreaseSupply掸刊,能夠增加和降低流通中的代幣供應(yīng)量。而ERC-20標(biāo)準(zhǔn)僅允許單個(gè)通證發(fā)放事件赢乓,這就限制了一個(gè)固定的不可更改的供應(yīng)量忧侧。而ERC-621標(biāo)準(zhǔn)則建議totalSupply是可以修改的石窑。


4、ERC-721

狀態(tài):打開(kāi)

提出日期:?2017年9月22日

ERC-721標(biāo)準(zhǔn)與ERC-20標(biāo)準(zhǔn)苍柏、ERC-23標(biāo)準(zhǔn)非常不同尼斧,它描述了一種不可互換的通證姜贡。這就意味著每個(gè)通證各不相同试吁,并且每個(gè)通證對(duì)不同的用戶具有不同的值。比如以太貓(CryptoKittes):每個(gè)數(shù)字貓都是一個(gè)獨(dú)立存在的商品楼咳,其價(jià)值取決于該種類的稀有性和用戶的喜好熄捍。

ERC-721通證標(biāo)準(zhǔn)可以在任何一個(gè)交易中使用,但通證的價(jià)值則是“與每個(gè)通證相關(guān)聯(lián)的唯一性和稀缺性的結(jié)果”母怜。該標(biāo)準(zhǔn)的函數(shù)包括name, symbol, totalSupply, balanceOf, ownerOf ,approve , takeOwnership , transfer , tokenOfOwnerByIndex, tokenMetadata余耽。

ERC-721標(biāo)準(zhǔn)還定義了兩個(gè)事件:TransferApproval。Gerald Nash(杰拉爾德·納什)的文章就很好地解釋了可互換性這一概念苹熏。

GeraldNash文章:剖析ERC721

鏈接:https://medium.com/crypto-currently/the-anatomy-of-erc721-e9db77abfc24


5碟贾、ERC-827

狀態(tài):打開(kāi)

建議日期:2018年12月1日

ERC-20標(biāo)準(zhǔn)的另一個(gè)擴(kuò)展是ERC-827標(biāo)準(zhǔn),它允許用戶轉(zhuǎn)移通證轨域,持有者也能允許第三方使用通證袱耽。以太坊上的通證可以被其他應(yīng)用程序重用,這其中也包括錢包和交換機(jī)干发。在需要支持第三方動(dòng)態(tài)消費(fèi)限額調(diào)整時(shí)朱巨,這一點(diǎn)非常有用。另外枉长,最重要的一點(diǎn)是冀续,由于它是ERC-20標(biāo)準(zhǔn)的擴(kuò)展,所以它也跟ERC-20標(biāo)準(zhǔn)兼容必峰。

該標(biāo)準(zhǔn)中的一些方法如下所示:

transferFrom(address_from, address _to, uint256 _value, bytes _data) returns (bool success)

function approve(address_spender, uint256 _value, bytes _data) returns (bool success)

?以上便是幾個(gè)比較知名ERC標(biāo)準(zhǔn)的介紹洪唐。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市吼蚁,隨后出現(xiàn)的幾起案子桐罕,更是在濱河造成了極大的恐慌,老刑警劉巖桂敛,帶你破解...
    沈念sama閱讀 218,122評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件功炮,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡术唬,警方通過(guò)查閱死者的電腦和手機(jī)薪伏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)粗仓,“玉大人嫁怀,你說(shuō)我怎么就攤上這事设捐。” “怎么了塘淑?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,491評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵萝招,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我存捺,道長(zhǎng)槐沼,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,636評(píng)論 1 293
  • 正文 為了忘掉前任捌治,我火速辦了婚禮岗钩,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘肖油。我一直安慰自己兼吓,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布森枪。 她就那樣靜靜地躺著视搏,像睡著了一般。 火紅的嫁衣襯著肌膚如雪县袱。 梳的紋絲不亂的頭發(fā)上浑娜,一...
    開(kāi)封第一講書(shū)人閱讀 51,541評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音显拳,去河邊找鬼棚愤。 笑死,一個(gè)胖子當(dāng)著我的面吹牛杂数,可吹牛的內(nèi)容都是我干的宛畦。 我是一名探鬼主播,決...
    沈念sama閱讀 40,292評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼揍移,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼次和!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起那伐,我...
    開(kāi)封第一講書(shū)人閱讀 39,211評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤踏施,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后罕邀,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體畅形,經(jīng)...
    沈念sama閱讀 45,655評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評(píng)論 3 336
  • 正文 我和宋清朗相戀三年诉探,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了日熬。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,965評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡肾胯,死狀恐怖竖席,靈堂內(nèi)的尸體忽然破棺而出耘纱,到底是詐尸還是另有隱情,我是刑警寧澤毕荐,帶...
    沈念sama閱讀 35,684評(píng)論 5 347
  • 正文 年R本政府宣布束析,位于F島的核電站,受9級(jí)特大地震影響憎亚,放射性物質(zhì)發(fā)生泄漏员寇。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評(píng)論 3 329
  • 文/蒙蒙 一虽填、第九天 我趴在偏房一處隱蔽的房頂上張望丁恭。 院中可真熱鬧曹动,春花似錦斋日、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,894評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至贡必,卻和暖如春兔港,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背仔拟。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,012評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工衫樊, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人利花。 一個(gè)月前我還...
    沈念sama閱讀 48,126評(píng)論 3 370
  • 正文 我出身青樓科侈,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親炒事。 傳聞我的和親對(duì)象是個(gè)殘疾皇子臀栈,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容