前段時間以太坊升級架構,君士坦丁堡的硬分叉一個升級代號,被爆出含有高危的網站漏洞,該漏洞產生的緣由是因爲開啓了新的協議模式eip1283致使的,也是區塊鏈漏洞當中危害較爲嚴重的,可讓一些交易進行重入,一個轉帳能夠致使寫入2次,但該漏洞並非確實的能夠進行重入漏洞。以太坊區塊鏈在發現該漏洞以後,緊急的中止了以太坊的硬分叉升級,並與上個星期五召開了內部會議對其漏洞進行修復,延期對以太坊的硬分叉升級。安全
區塊鏈當中,以太坊屬於比較大的虛擬幣,位列於比特幣,第二。關於該漏洞的詳情咱們來分析一下,關於此次以太坊的升級你們均可以提議,必須通過內部審覈,纔會經過提議,在此次的提議當中有個eip1283的升級建議, 以太坊的漏洞就是由他而生。架構
這個建議主要是對以太坊的操做碼進行長久的保存數據以及更好的整理以太坊的交易手續費,便捷,快速,處理過程的邏輯更爲人性化,大大節省了成本以及時間,使得該提議被提上了日程,以太坊也進行了採納,公開與衆,攻擊者根據公開的一些細節,對其進行漏洞挖掘,才致使了今天發生以太坊漏洞。函數
區塊鏈重入漏洞在同一個交易當中,1個買家1個賣家進行的合約交易,兩種合約互相調用併產生了重複轉帳的一個漏洞,漏洞產生的根源並無將轉帳當成一個事務處理來看待。咱們來看一下下圖:區塊鏈
咱們模擬了一個合約,交易的虛擬幣由deposits來存儲,而後再推送到splits變量當中去分配這個存儲比例。好比一個交易須要買家跟賣家一塊兒去分配,首先會調用一個init函數去存儲雙方的一個交易錢包地址,而後使用deposit的變量通道來進行充值虛擬幣到錢包地址,再使用updatasplit的一個函數進行分配虛擬幣,整個過程就是這也,在這個過程中賣家買家就能夠轉帳虛擬幣一次,哪麼屢次重入會致使攻擊者進行。網站
關於區塊鏈漏洞的修復建議blog
區塊鏈漏洞的修復補丁,以太坊已經開始着手準備應對升級,對該漏洞的產生進行了詳細的分析,據咱們SINE安全觀察,以太坊的社區正在跟你們討論處理這個漏洞的問題,關於合約產生的漏洞仍是該由合約的提議者去解決,不能一直讓以太坊區塊鏈去解決,關於合約的安全寫法以及規則,正式化,會避免之後區塊鏈漏洞的產生。事務