比特幣價格 比特幣價格
Ctrl+D 比特幣價格
ads
首頁 > NEAR > Info

區塊鏈:區塊參數依賴:合約之熵,安全之殤_LOC

Author:

Time:1900/1/1 0:00:00

編者按:本文來自成都鏈安科技,作者:鏈安科技,星球日報經授權發布。引子:橘生淮南則為橘,生于淮北則為枳,葉徒相似,其實味不同。所以然者何?水土異也。——《晏子春秋·雜下之十》針對區塊鏈安全問題,成都鏈安科技團隊每一周都將出智能合約安全漏洞解析連載,希望能幫助程序員寫出更加安全牢固的合約,防患于未然。前景提要上回說到,合約安全隱私未必,外部讀取暴露無遺。只要是儲存在storage里面,存在于區塊鏈上的變量,尤其是狀態變量,由于區塊鏈公開的特性,都是可以通過不執行合約直接從外部讀取的。因此,將隱私信息,不可公開的數據儲存在智能合約中是非常不安全的做法。即使進行有意或者無意的此類操作,都要及時附加相應的加密處理,避免因為對于可見性說明符的片面理解而留下安全隱患。全面理解代碼技術細節,融會貫通互聯網安全知識,才能安全應用區塊鏈技術。本期話題第十回,機制依賴參數主導,礦工操縱投機取巧山竹過境,氣候入秋,想必大家都感受到了久違的一絲涼意,這倒也與區塊鏈產業的“寒冬”有些應景。不過更令人心寒的還是近期以太坊游戲的事故頻發。例如,FOMO3D最近的第二次開獎,獲獎者仍然是黑客,使用的手段依然是我們在第六期游戲合約漏洞總結當中提到的“類似競態條件利用的阻塞交易手法”。還有我們之前在快訊中提到的Mycryptochamp這個游戲,其隨機數生成機制依賴的是可預測的參數,導致投機者輕易獲取空投,影響游戲公平性。這些游戲的機制都依據以太坊的特性來設計隨機數的產生,但是設計理念卻是在沒有理解這些特性的基本原理來定制的。因此如火如荼短時間炒作后,在無法實現公平游戲的情況下“迅速降溫”。本期,我們將重點分析游戲過于依賴區塊參數設計而產生的兩種漏洞——時間戳依賴和區塊哈希依賴。

索尼音樂與區塊鏈通證公司合作布局代幣經濟業務:11月16日消息,索尼音樂宣布和利用區塊鏈開發通證經濟服務的公司Gaudiy合作創建業務聯盟,利用區塊鏈技術將在音樂及娛樂領域促進數字化,提升用戶體驗。目前兩家公司已合作為索尼音樂旗下藝人及粉絲布局代幣經濟業務。(CoinPost)[2020/11/16 20:55:34]

基礎小知識什么是區塊參數?以太坊的實現機制與比特幣有很大的差別,以太坊的每個區塊頭多了一些以太坊自身特殊的字段,用來表示區塊的屬性值,以太坊智能合約可以通過以太坊提供的接口讀取這些屬性值:block.blockhash(uintblockNumber)returns(bytes32):指定區塊的區塊哈希——僅可用于最新的256個區塊且不包括當前區塊;而blocks從0.4.22版本開始已經不推薦使用,由blockhash(uintblockNumber)代替block.coinbase(address):挖出當前區塊的礦工地址block.difficulty(uint):當前區塊難度block.gaslimit(uint):當前區塊gas限額block.number(uint):當前區塊號block.timestamp(uint):自unixepoch起始當前區塊以秒計的時間戳now(uint):目前區塊時間戳需要注意的是:在同一個塊中,每筆交易讀取的區塊參數都是一樣的什么是熵?熵的概念最早起源于物理學,用于度量一個熱力學系統的無序程度。在信息論里面,熵是對不確定性的測量。所以在以太坊中,熵也就是我們所說的隨機性。對于一個以隨機性為核心的游戲合約,熵的變量的計算尤為重要。事故頻發問題凸顯上面講到的MyCryptoChamp體現,其合約中RandMod函數使用私有變量randNonce和父塊哈希作為參數生成隨機數。任何人都可以用web3.eth.getStorageAt()函數外部讀取私有變量randNonce,而父塊哈希在合約內外都可以讀取到。這樣產生隨機數的計算方法就已經被看破,投機者只需在計算出較理想的隨機數時加入游戲即可獲得空投。除此之外,國外已有專業人士ArsenyReutov分析了3649份智能合約,發現有43份存在類似的可被利用的漏洞,并將此類情況稱為假隨機數生成漏洞。如此看來,將區塊參數與熵聯系起來運用到游戲設計并不是個例。需要思考的是,以太坊的區塊參數能不能可靠的運用于熵。以太坊沒有提供類似于傳統編程語言的rand()函數。于是實現去中心化的熵已經成為一個頗具規模的問題,許多人參與了這個問題的考究,甚至連V神自己也發表了一片文檔提出了一些完善計劃,例如使用RanDAO或者私有隨機。具體請見這篇文檔https://vitalik.ca/files/randomness.html。所以,區塊參數能夠可靠的用于設計鎖倉功能,但是放在隨機數生成設計當中,它的地位相當不可靠,形象的來說,同樣的橘樹,生長在淮南長出甜的橘,生長在淮北長出苦的枳。

公告 | 怡亞通:開展了供應鏈與區塊鏈的雙鏈研究:據財聯社消息,怡亞通(002183.SZ)在互動平臺透露,公司關注區塊鏈等各類前沿技術并積極研究及探索與公司現有業務的相關性及可延展性。基于供應鏈業務的商業生態體系,公司開展了供應鏈與區塊鏈的雙鏈研究,應用場景包括分布式云倉智能合約交易場景,產品追溯管理、供應鏈金融等,公司將持續研究區塊鏈技術的應用,積極響應國家戰略推進公司業務及產業服務向高質量發展。[2019/10/28]

區塊參數依賴漏洞返例一、時間戳依賴數據塊時間戳歷來被用于各種應用,例如隨機數的函數,鎖定一段時間的資金以及時間相關的各種狀態變化的條件語句。礦工有能力稍微調整時間戳,如果在智能合約中使用錯誤的塊時間戳,這可能會證明是相當危險的。block.timestamp或者別名now可以由礦工操縱,如果他們有這樣做的動機。例如下面這個簡單的游戲合約:

這份合約表現得像一個簡單的彩票。每塊一筆交易可以打賭10ether贏得合約余額的機會。這里的假設是,block.timestamp關于最后兩位數字是均勻分布的。如果是這樣,那么將有1/15的機會贏得這個彩票。但是,正如我們所知,礦工可以根據需要調整時間戳。在這種特殊情況下,如果合約中有足夠的ether,解決某個區塊的礦工將被激勵選擇一個block.timestamp%15==0或now%15==0的時間戳。在這樣做的時候,他們可能會贏得這個合約以及塊獎勵。由于每個區塊只允許一個人下注,所以這也容易受到前置交易攻擊。在實踐中,塊時間戳是單調遞增的,所以礦工不能選擇任意塊時間戳。但是它們也限制在將來設置不太遠的塊時間,因為這些塊可能會被網絡拒絕。二、區塊哈希依賴在一些賭博游戲合約中,使用區塊頭相關的參數來產生隨機數:區塊號(block.number)、區塊時間戳(block.timestamp)、區塊難度(block.difficulty)、區塊gas限制(block.gaslimit)等。當以太坊上礦工挖出一個區塊時,此時區塊頭的相關參數就可以被礦工獲知,一些惡意挖礦的礦工可以利用這些區塊參數進行攻擊。例如下面這個游戲合約

聲音 | 杭州檢察院檢察長:區塊鏈未來必將為司法證明提供極大的助推:據檢察日報消息,浙江省杭州市西湖區人民檢察院檢察長陳平祥撰文指出,區塊鏈技術就如同DNA技術一樣,未來必將為司法證明提供極大的助推,但不能過于“神話”,依然應設置周密嚴謹的證據規則。在審查應用區塊鏈技術提取的電子數據時,仍需注意以下兩個方面:一是上鏈前電子數據的原始性。數據掛載到區塊鏈之前,這個時間段內數據的真實性和完整性是區塊鏈本身無法證明的,仍要結合取證信息、勘驗提取筆錄、取證過程錄音錄像等證據,綜合分析、判斷電子數據在上鏈之前是否存在被篡改、污染的可能。二是收集、提取過程的合法性。應用區塊鏈技術提取的電子數據并不當然具有程序合法性,仍需按照刑訴法的要求對取證主體、取證程序、取證地點等要素是否合法進行審查,防止違法證據成為定案依據。[2019/10/16]

一個實現輪盤賭博的智能合約中,其邏輯是如果下一個塊哈希值以偶數結尾,則返回一個黑色數字。一個礦工可以在黑色上下注100萬美元。如果他們挖出下一個區塊并發現區塊哈希值以奇數結尾,他們會丟棄該塊、繼續挖礦、直到他們挖出一個塊哈希值為偶數的塊,從而從漏洞合約中獲利。漏洞修復隨機數生成的方法有很多,并不一定要依賴區塊參數,下面介紹兩種理念防范礦工或者投機者。隨機數的來源盡量來自于區塊鏈之外,這可以在具有諸如commit-reveal之類的系統的對等體之間完成。通過將信任模型改變為一組參與者來完成。這也可以通過中心化的實體來完成,該實體充當隨機預言。根據Solidity官方建議,合約開發者可以使用鏈外的第三方服務,比如Oraclize來獲取隨機數。總的來說,塊變量不應該用于隨機種子,因為它們可以被礦工操縱。問渠哪得清如許?為有源頭活水來這些漏洞,類似事件,慘烈教訓,對區塊鏈產業進入寒冬負有不可推卸的責任,從技術角度不斷加強對于新知識的正確理解與使用,提高智能合約的安全性是讓這個產業冰消雪融,讓項目方、參與方合力破冰前行的唯一希望。望各位學而思之、思而踐之、踐而悟之。

聲音 | 迅雷張慧勇:跟傳統互聯網安全相比 區塊鏈面臨更大的安全壓力:據洞察網消息,迅雷鏈開放平臺研發負責人張慧勇對區塊鏈安全問題的特點做了詳細解釋。他表示,跟傳統互聯網安全相比,區塊鏈面臨更大的安全壓力。區塊鏈的典型特征就是數據不可篡改性,如果出現安全漏洞,后果很難消除,需要付出非常大的代價。比如以太坊的安全漏洞,最終就導致其產生了硬分叉。其次是區塊鏈智能合約必須開源才能達成信任,源碼公開、虛擬機以及編譯器都是公開的,一旦有安全漏洞,很容易被發覺。綜合考慮,這兩點給區塊鏈的安全性帶來了更高的要求。[2018/12/24]

引用::EntropyIllusion:https://hackernoon.com/hackpedia-16-solidity-hacks-vulnerabilities-their-fixes-and-real-world-examples-f3210eba5148:PredictingRandomNumbersinEthereumSmartContracts:https://blog.positive.com/predicting-random-numbers-in-ethereum-smart-contracts-e5358c6b8620:ValidatorOrderingandRandomnessinPoS:https://vitalik.ca/files/randomness.html:RANDAO:ADAOworkingasRNGofEthereum:https://github.com/randao/randao:智能合約隨機數算法漏洞影響游戲公平性:https://mp.weixin.qq.com/s/fnp980bzQjRqNEVuj518lA:深入理解Solidity:https://solidity-cn.readthedocs.io/zh/develop/units-and-global-variables.html#index-2:什么是熵?https://blog.csdn.net/qq_39521554/article/details/80559531

人民日報社副總編輯:應積極利用區塊鏈等新技術,提高內容生產效率:人民日報6月21日報道,近日,人民日報社副總編輯盧新寧在2018(第三屆)全國黨報網站高峰論壇上表示,融合發展是一場媒體的自我革命,新時代黨報網站面對大數據、云計算、人工智能、區塊鏈等新技術,把重心放在如何提高內容生產效率、提升傳播效果上,積極利用新技術,創新應用新技術,才能為媒體間融合、行業融合、跨界融合打造技術和對話基礎,開拓黨報網站更廣闊的舞臺。[2018/6/21]

Tags:區塊鏈BLOBLOCLOC有人靠區塊鏈4天就掙了30萬嗎blockchain手機客戶端block幣發行總量blockchain錢包登錄不上

NEAR
區塊鏈:百度首發《百度區塊鏈白皮書》,這些要點你得知道 | 附全文_門羅幣是什么區塊鏈

9月26日,百度區塊鏈實驗室發布《百度區塊鏈白皮書V1.0》,該白皮書一共48頁,重點介紹了百度超級鏈的架構方式和實現模式.

1900/1/1 0:00:00
SEC:經常聽說的圖靈完備指的是什么?| 區塊鏈課堂第 57 問_RiseCoin

編者按:本文來自哈希派,作者:LucyCheng,星球日報經授權轉載。作為計算機的理論模型,圖靈機是英國數學家AlanTuring于1963年提出的、為了研究可計算問題而構思的抽象計算模型,可以.

1900/1/1 0:00:00
COI:你是如何落入CoinMarketCap設下的圈套的?_OIN

編者按:本文來自哈希派,作者:哈希派,星球日報經授權發布。在幣圈,所有人都生活在CoinMarketCap這類代幣排名網站的巨大影響之下.

1900/1/1 0:00:00
區塊鏈:區塊鏈是個數據庫,但數據庫不是區塊鏈_Crypto Legions Bloodstone

編者按:本文來自infoq,作者:VinceTabora,翻譯:姚佳靈,星球日報經授權轉發。在談到什么是區塊鏈及其與數據庫的區別時,我們得到的信息是非常混亂的.

1900/1/1 0:00:00
區塊鏈:星球日報 | 百度圖騰利用區塊鏈等技術為熊掌號提供版權保護服務;三星開發區塊鏈身份認證平臺BankSign ;大眾將發布基于IOTA的區塊鏈應用_MDX幣為什么提前減半了

頭條 百度圖騰利用區塊鏈等技術為熊掌號提供版權保護服務據百度圖騰微博,百度圖騰與熊掌號聯合發布熊掌號“原創保護計劃”.

1900/1/1 0:00:00
區塊鏈:中國人保財險前副總裁王和:區塊鏈解決的是金融最后一公里的問題_超級聯盟鏈幣怎么獲得

“互聯網、大數據、區塊鏈三劍合璧重構金融的江湖這是不爭的事實,區塊鏈解決的是金融最后一公里的問題”,近日,在井通科技和民生銀行聯合主辦的“首屆金融科技前沿論壇”上.

1900/1/1 0:00:00
ads