日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

天才程序员: 那些年我偷懒没敲的EOS代码, 让我失去了一切, 如果...

發布時間:2023/12/15 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 天才程序员: 那些年我偷懒没敲的EOS代码, 让我失去了一切, 如果... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者 | 紅石

責編 | 喬治

出品 | 區塊鏈大本營(blockchain_camp)


#今天是一篇技術文。


3月15日,mercatox 遭受(hard_fail)攻擊,黑客獲利數千 EOS,約合數萬人民幣。


3月11日,EOS DApp nkpaymentcap 被攻擊,黑客成功獲利 5 萬 EOS,約合人民幣100多萬元。經分析發現,攻擊者采用假轉賬通知攻擊獲取大量合約代幣,又將代幣通過 DApp 合約兌換成真 EOS 進行套現。


3月10日,EOS 競猜類游戲 Vegas Town 被連續(hard_fail)攻擊,黑客獲利數千枚 EOS 。


3月9日,EOS 競猜類游戲 Gamble EOS 遭受假轉賬攻擊,黑客成功獲利數千 EOS……


僅僅三月份,利用交易驗證漏洞進行的攻擊就已經有這么多起,損失達上千萬人民幣。


那么,什么是交易驗證漏洞?為何?EOS 讓你頻頻“丟錢”?BM告訴你,是你的代碼“太笨”。


先說說交易驗證,你不了解交易驗證,但黑客了解。


因為在支付領域,這很重要。在區塊鏈領域,無論做 DApp,還是接入數字貨幣支付,交易驗證都是重要部分。


交易驗證,說起來也簡單:就是如何確認一筆金額已經到賬。


說起來也不簡單,因為會有無數黑客試圖讓并未成功的交易通過驗證,從而空手套白狼。


比如最近針對 EOS 交易的 hard_fail 狀態攻擊,就是這樣一種黑客攻擊。




hard_fail 狀態攻擊


在 EOS 區塊鏈上,每筆交易(transaction)都有一個狀態(status)參數,只有當這個參數為?executed(已執行),才說明交易成功。但是因為一般來說,失敗的交易都不會提交到鏈上,所以,一些不謹慎的交易所、DApp 甚至沒有驗證這個參數。


這才有了最近的 hard_fail 狀態攻擊。其實這個攻擊手法的背后原理遠比它的名字簡單,就是黑客發起了注定失敗的、但是又能上鏈的交易,專門攻擊那些只要交易上鏈就視作交易成功的平臺。


不試不知道,一試嚇一跳,真的有很多平臺沒驗證這個參數……


那么,EOS 交易驗證到底需要驗證些啥?



EOS 交易驗證涉及的參數


EOS 交易驗證,需驗證:


1、交易?excuted,驗證 transaction?status?參數為?executed,驗證這個參數可以有效避免 hard_fail 狀態攻擊;


說簡單點,這一步是驗證交易是否正常執行。


2、不可逆,即交易所在區塊號低于當前最新不可逆塊號,需要獲得 transaction 所在區塊的區塊號,以及主網最新不可逆塊的區塊號(不可逆區塊高度),判斷:

block_num < last_irreversible_block_num;


說簡單點,這一步是驗證交易是否已經同步。


區塊鏈是分布式賬本,交易提交上去后,需要大多數節點記錄了這筆交易,才能認為交易已上鏈并不可篡改。不然的話,比如如果只有一個節點有這筆交易,則只要這個節點的交易信息一改,這筆交易就變了。


3、合約賬戶和貨幣符號;


合約賬戶就是貨幣的智能合約賬戶。EOS 區塊鏈轉賬都是基于智能合約的,比如 EOS 幣的智能合約賬戶就是?eosio.token,每一次進行 EOS 幣轉賬,都會調用這個合約。


假幣攻擊就是因為交易所沒驗證合約賬戶。



4、交易(action)類型為?transfer;


EOS 區塊鏈上的交互都是以 transaction 進行,無一例外。所以,不是每一筆 transaction 都包含轉賬。EOS 一筆 transaction 可以有多個 action,只有類型為?transfer(轉賬)的 action,才是轉賬,才是需要做交易驗證的。


5、From?和?to,即轉入轉出的賬戶需要再次確認。


交易(Transaction)同時滿足這些條件,才能判斷為交易成功,并執行下一步程序。而且,如果是通過公共 API 或 API 服務商提供的數據進行交易驗證,需要使用不同服務提供商的 API 至少進行二次確認,以防止 API 信息出錯導致問題。


那么問題又來了,如何通過公共 API 進行交易驗證呢?



通過 EOSPark API 獲取交易、進行交易驗證


讓我們以 EOSPark 的 API 服務做個基本示例。


EOSPark 本身是一個主流 EOS 區塊瀏覽器,但他們也面向開發者提供 API、代碼一致性校驗、合約安全(SEC)、合約語義化等服務。


1、EOSPark API 官網:

https://eospark.com/openapi


2、EOSPark API 官方文檔:

https://developer.eospark.com/api-doc/zh/https/


EOSPark API 服務思維導圖:



EOSPark API 有四種查詢 EOS 交易的方式。


根據賬戶查詢:

HTTPS API get_account_related_trx_info

Websocket API subscribe_account


根據 txID 查詢:

HTTPS API get_transaction_detail_info

HTTPS API get_transaction_action_info



以 HTTPS API get_account_related_trx_info 為例,這個接口能查詢對應賬戶的進出交易,無論是收到的轉賬還是發起的轉賬,都可以一起查到:


get_account_related_trx_info 的基本查詢語句如下:


https://api.eospark.com/api?module=account&action=get_account_related_trx_info&apikey=

{這里放你的 API KEY}&account={這里放 EOS 賬戶名}&page=1&size=10


語句填好參數后可以直接在普通瀏覽器中打開查詢信息,不過當然,我們更習慣用 IDE:


Node.js 代碼示例:



返回 JSON 示例:



可以看到在 get_account_related_trx_info 返回的信息中,本來就包括交易所在區塊號(block_num)和不可逆區塊高度(last_irreversible_block_num)。


同時 status、code(合約賬戶)、symbol、From(這里是?sender)和?to(這里是?receiver)這些參數也一應俱全。(交易類型因為這個接口本身就是返回轉賬交易,所以這里可以不作驗證。)


也就是說,使用這個接口,查詢一次就可以直接驗證獲取到的交易。


那么問題又來了,也就是說,有些時候查詢的信息不能直接進行交易驗證?


很不幸,是滴。



獲取不可逆區塊高度和交易狀態的補充方法


有些接口返回的交易信息不包含交易驗證所需所有參數,需要再另外獲取。最常見的就是不可逆區塊高度的缺失,還有一些直接查詢 actions 的接口有交易狀態參數缺失。


不過處理起來都很簡單。


同樣以 EOSPark API 服務為例:


獲取不可逆區塊高度,使用 RPC 接口 get_info 就好,這是一個獲取 EOS 主網基本信息的接口:


Node.js 代碼示例:



返回 JSON 示例:



獲取狀態參數,可以使用 HTTPS 接口 get_transaction_detail_info,這是一個根據 txID 查詢交易(transaction)詳情的接口:


查詢語句:

https://api.eospark.com/api?module=transaction&action=get_transaction_detail_info&apikey=

{這里放你的API KEY}&trx_id={這里放查詢的交易ID}


返回 JSON 示例:



至此,我們就簡單說完了 EOS 區塊鏈交易驗證的一個基本思路。當然,具體情況具體分析,具體開發時驗證的方式不一定按這樣來。不過條條大路通羅馬,思路是一樣的,驗證的參數也基本都是這些。


命令千萬條,安全第一條。

代碼不齊全,親人兩行淚。


歡迎補充,歡迎拍磚!


紅石,氫石網絡科技CEO,

DApp 獨立開發者,區塊鏈技術顧問,資深營銷人,攝影設計師。


掃碼報名 | 免費技術公開課

技術架構?|?應用架構?|?安全?|?隱私



推薦閱讀:

  • 要錢還是要命? 比特幣正悄悄殺死你...

  • 大學生利用漏洞“騙走”京東110萬, 中心化白條的漏洞, 區塊鏈能否補得上?

  • 好萊塢大片! 為躲避死亡威脅, 只用15步, 這個密碼朋克大叔就從世界"消失"了...

  • 前阿里 P9 級員工稱離婚是模擬測試,已回滾復婚!

  • 淘寶、飛豬、閑魚都掛了,阿里云卻正常?!

  • 剛剛,數學界“諾獎”Abel Prize迎來首位女性得主

  • 沒有新芯片,沒有大核彈,黃教主這次給大家帶來了個PRADA

  • 曝光!月薪 5 萬的程序員面試題:73% 人都做錯,你敢試嗎?


猛戳"閱讀原文"有驚喜喲!


老鐵在看了嗎??

總結

以上是生活随笔為你收集整理的天才程序员: 那些年我偷懒没敲的EOS代码, 让我失去了一切, 如果...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日日操夜夜操天天操 | 国产精品第3页 | 神马伦理影视 | 精品欧美一区二区三区成人 | 日日日日日日bbbbbb | 国产又粗又黄又爽的视频 | 免费黄色在线网站 | 欧美操穴视频 | 91视频在线观看 | 最近中文字幕在线mv视频在线 | 亚洲成人一区在线观看 | 淫片一级国产 | 天天鲁一鲁摸一摸爽一爽 | 亚洲欧洲日韩在线 | 波多野结衣有码 | 在线免费成人网 | 欧美激情伊人 | 奇米网狠狠干 | 国产激情毛片 | 神宫寺奈绪一区二区三区 | 亚洲欧美日韩久久精品 | 在线免费视频一区 | 亚洲国产一区二区a毛片 | 麻豆精品国产 | 久久精品女人毛片国产 | 成人国产一区二区三区精品麻豆 | www.色视频 | 青青av在线| 日韩精品一区二区三区中文在线 | 国产精品伦一区二区三级古装电影 | 经典三级视频 | 国产精品乱码久久久久久 | 国产精品麻豆视频 | 一区二区三区高清在线观看 | 色狠| 天天摸日日摸狠狠添 | 青青草综合| 国产精品中文字幕在线 | 91在线资源 | 91区国产| 三上悠亚一区二区 | 91色拍| 久久久国产精品无码 | 精品久久久久久久久久岛国gif | 少妇做爰k8经典 | 蜜臀av一区| 日韩r级在线观看 | 超碰1000 | 伊人操| 亚洲狼人色| 天天射天天色天天干 | 免费在线观看中文字幕 | 中文写幕一区二区三区免费观成熟 | 亚洲第一毛片 | 四虎av影视 | 日韩少妇毛片 | 欧美特级毛片 | eeuss鲁片一区二区三区在线观看 | 久草免费看 | 久久视频国产 | 成人28深夜影院 | 国产99久久久久久免费看 | 伊人婷婷久久 | 国产精品99久久久久久久久久久久 | 国产精品高清无码 | 软萌小仙自慰喷白浆 | 波多野结衣亚洲一区二区 | 网站黄在线观看 | 久久嫩草 | 亚洲国产中文在线 | av中文资源| www.色视频 | 免费在线日韩 | 关之琳三级全黄做爰在线观看 | 曰本女人与公拘交酡 | 日本肉体xxxx裸体137大胆图 | 久草资源在线播放 | 亚洲视频 中文字幕 | 国产新婚疯狂做爰视频 | 色窝av| 国产精品成人一区 | 国产有码在线观看 | 国产精品久久色 | 欧美日韩免费观看视频 | 国产视频精品视频 | 超碰人人草 | 国产色99| 国产6区| 日韩亚洲一区二区三区 | 亚洲午夜一区二区三区 | 国产一区a | 久草精品视频在线观看 | 亚洲午夜无码久久久久 | 五月天丁香在线 | jizz亚洲女人 | 久久a视频| 国产成人无遮挡在线视频 | 国产乡下妇女做爰 | 亚洲黄色成人 |