005:以太坊交易|《ETH原理與智能合約開發(fā)》筆記

待字閨中開發(fā)了一門區(qū)塊鏈方面的課程:《深入淺出ETH原理與智能合約開發(fā)》挽鞠,馬良老師講授闹究。此簡書文集記錄我的學(xué)習(xí)筆記。

課程共8節(jié)課珠插。其中惧磺,前四課講ETH原理,后四課講智能合約捻撑。
第二課分為三部分:

  1. 以太坊交易
  2. MPT與RLP
  3. MPT與RLP實驗

這篇文章是第二課第一部分的學(xué)習(xí)筆記:以太坊交易豺妓。


關(guān)于以太坊的交易,課程中講了三部分的內(nèi)容布讹,分別是以太坊交易模型、交易的結(jié)構(gòu)和交易的生命周期训堆。

1. 以太坊交易模型

交易模型部分分別講解了比特幣的UTXO交易模型描验,以太坊的Account交易模型,并通過對比來說明兩者的優(yōu)劣坑鱼。

1.1 比特幣的 UTXO 交易模型

比特幣的交易采用了UTXO模型膘流,其中UTXO 代表 Unspent Transaction Output,即未花費(fèi)的交易輸出鲁沥。通過下圖來說明呼股。

UTXO交易模型

圖中使用的比特幣單位是聰(satoshi),交易費(fèi)都按10k計算画恰。

  • 交易0表示彭谁,某個地址有100k的未花費(fèi)交易輸出(UTXO),向另外兩個地址分別轉(zhuǎn)賬40k和50k允扇,這樣那兩個地址就分別有了40k和50k的UTXO缠局。

  • 交易1表示,一個含有40k的UTXO的某地址向外轉(zhuǎn)賬考润,除去10k的交易費(fèi)狭园,接收地址就得到了30k的UTXO。

  • 其它的交易依次類推糊治。

這樣唱矛,整個系統(tǒng)的收支狀態(tài)信息都保存在UTXO中。每一個UTXO都由私鑰控制,解鎖后才能使用绎谦。

這種設(shè)計的好處是管闷,有一定的保密性,如果一個用戶經(jīng)常更換地址燥滑,外界就不容易判斷他的身份渐北。但這對智能合約系統(tǒng)來說,就是不利的地方铭拧,因為智能合約需要一個確定的身份來操作赃蛛。

它的缺點是會影響區(qū)塊的尺寸,如果在某個交易中搀菩,有1000個交易輸入呕臂,那就需要1000個解鎖,這會造成區(qū)塊的尺寸增大肪跋,尺寸大的區(qū)塊就需要多的交易費(fèi)歧蒋。交易費(fèi)在這里就是控制因素,使得交易盡量采用少的輸入州既。

它還有一個缺點很難精細(xì)地控制使用哪些輸入谜洽,假如要花費(fèi)5個比特幣,有50種排列組合吴叶,到底選哪個呢阐虚,不易控制。以太坊則沒有這個缺點蚌卤,因為它是采用的賬戶模型实束。一個賬戶對應(yīng)一個余額。

下面是以太坊賬戶交易模型的介紹逊彭。

1.2 以太坊的 Account 交易模型

在以太坊中采用賬戶模型咸灿,這種設(shè)計不易于隱藏身份,通過合約來混淆侮叮。

這種模型節(jié)省空間避矢;實現(xiàn)比較簡單。

DAPP(分布式應(yīng)用)也需要這種模型囊榜,在應(yīng)用中谷异,合約的發(fā)起、調(diào)用都需要特定的人來執(zhí)行锦聊。而在比特幣中歹嘹,如果輸入比較多,則不易控制孔庭。

歷史信息獲取也比較簡單尺上,可以只檢查更新的部分材蛛。

同時簽名驗證次數(shù)少,不像比特幣要依賴輸入的多少怎抛。

2. 以太坊交易的結(jié)構(gòu)

2.1 賬戶類型

以太坊中有兩種類型的賬戶:

外部賬戶(Externally Owned Accounts 或EOA):被私鑰控制卑吭,沒有與合約代碼相關(guān)聯(lián),有余額马绝《股停可以發(fā)起和簽名交易,可以創(chuàng)建合約富稻。
其地址長度為公鑰的Keccak256散列值的最后20個字節(jié)掷邦。

合約賬戶:被合約代碼控制,同樣有余額椭赋。能被外部賬戶調(diào)用來激活抚岗,也可以通過另外一個合約賬戶來激活。
合約賬號一經(jīng)創(chuàng)建哪怔,存在于區(qū)塊鏈中宣蔚。一旦接收到消息,其包含的代碼被激活開始運(yùn)行认境,它修改全局狀態(tài)或向其它合約繼續(xù)發(fā)送消息胚委。

2.2 交易的內(nèi)部結(jié)構(gòu)

交易中的幾個參數(shù)介紹:

  • To: 交易接收方地址(20Bytes)
  • Value: 交易發(fā)送的ether數(shù)量(wei)
  • Startgas:交易者愿意花費(fèi)的最大Gas數(shù)量
  • Gasprice: 交易者愿意支付的Gas價格
  • startgas*gasprice = 最終ether數(shù)值
  • nonce: 交易發(fā)起者填寫的序列號,防止重放攻擊
  • Data:可變長度的二進(jìn)制數(shù)據(jù)載荷
  • V,R,S: ECDSA數(shù)字簽名信息

2.3 注意事項

  • 不要發(fā)送到無效地址叉信!這樣會丟失以太幣亩冬。
  • 發(fā)往合約賬號的交易一般需要符合調(diào)用規(guī)范,否則會調(diào)用合約fallback函數(shù)茉盏,如果正常則調(diào)用并轉(zhuǎn)賬到該函數(shù)。
  • 地址0用來創(chuàng)建合約枢冤,合約編譯結(jié)果是data鸠姨。創(chuàng)建合約需要消耗Gas。
  • 專有的銷毀以太幣地址0xdead淹真,一般用不到讶迁。

3. 以太坊交易的生命周期

這里有一個交易執(zhí)行過程的例子。如圖核蘸,有三個節(jié)點巍糯,Alice節(jié)點,Charlie節(jié)點客扎,礦工節(jié)點祟峦。

交易示例1

交易示例2
  1. Alice發(fā)布一筆交易,給Bob轉(zhuǎn)賬 1 ether徙鱼。
  2. 交易廣播到所有的節(jié)點宅楞。
  3. 礦工節(jié)點開始挖礦针姿,贏得競爭后,記錄新區(qū)塊厌衙,Alice 的余額變?yōu)?18.98** ether距淫,比 19 少的那部分是交易費(fèi),Bob 的余額變?yōu)?6 ether婶希。
  4. 礦工將新區(qū)塊廣播出去榕暇,其它節(jié)點更新區(qū)塊。

經(jīng)過若干個區(qū)塊喻杈,Alice 的交易被認(rèn)為是安全的彤枢。


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市奕塑,隨后出現(xiàn)的幾起案子堂污,更是在濱河造成了極大的恐慌,老刑警劉巖龄砰,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件盟猖,死亡現(xiàn)場離奇詭異,居然都是意外死亡换棚,警方通過查閱死者的電腦和手機(jī)式镐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來固蚤,“玉大人娘汞,你說我怎么就攤上這事∠ν妫” “怎么了你弦?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長燎孟。 經(jīng)常有香客問我禽作,道長,這世上最難降的妖魔是什么揩页? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任旷偿,我火速辦了婚禮,結(jié)果婚禮上爆侣,老公的妹妹穿的比我還像新娘萍程。我一直安慰自己,他們只是感情好兔仰,可當(dāng)我...
    茶點故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布茫负。 她就那樣靜靜地躺著,像睡著了一般乎赴。 火紅的嫁衣襯著肌膚如雪朽褪。 梳的紋絲不亂的頭發(fā)上置吓,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天,我揣著相機(jī)與錄音缔赠,去河邊找鬼衍锚。 笑死,一個胖子當(dāng)著我的面吹牛嗤堰,可吹牛的內(nèi)容都是我干的戴质。 我是一名探鬼主播,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼踢匣,長吁一口氣:“原來是場噩夢啊……” “哼告匠!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起离唬,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤后专,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后输莺,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體戚哎,經(jīng)...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年嫂用,在試婚紗的時候發(fā)現(xiàn)自己被綠了型凳。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,117評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡嘱函,死狀恐怖甘畅,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情往弓,我是刑警寧澤疏唾,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站函似,受9級特大地震影響槐脏,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜缴淋,卻給世界環(huán)境...
    茶點故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一准给、第九天 我趴在偏房一處隱蔽的房頂上張望泄朴。 院中可真熱鬧重抖,春花似錦、人聲如沸祖灰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽局扶。三九已至恨统,卻和暖如春叁扫,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背畜埋。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工莫绣, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人悠鞍。 一個月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓对室,卻偏偏與公主長得像,于是被迫代替她去往敵國和親咖祭。 傳聞我的和親對象是個殘疾皇子掩宜,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,060評論 2 355

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