買比特幣 買比特幣
Ctrl+D 買比特幣
ads
首頁 > Luna > Info

比特幣:知道創宇周啟鵬:未來智能合約涉及行業會更廣、邏輯復雜度更高、非開發者也能輕松編寫 | 區塊鏈P.O.D大會_區塊鏈最新騙局曝光

Author:

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

9月5日,由Odaily星球日報主辦、36Kr集團戰略協辦的P.O.D大會在北京舉行。知道創宇解決方案部負責人周啟鵬應邀在大會安全論壇上發表題為《智能合約安全現狀與未來》的演講。

在分享中,周啟鵬較為系統的介紹了智能合約的產生及應用,安全事件以及安全風險分析,并提出隨著智能合約在社會化大規模應用中應對智能合約安全的策略。周啟鵬表示,未來智能合約社會化應用的難點主要有三個:一是隨著“區塊鏈+”浪潮的到來,涉及的行業將越來越廣;二是行業應用所需的合約復雜度越來越高;三是未來的智能合約,除開發者外非開發者也可以編寫,這將給智能合約的安全帶來很大挑戰。對此,知道創宇“404”安全實驗室研發了一套智能合約驗證系統“昊天塔”。該系統和公鏈、聯盟鏈等團隊深入合作,以提供應用層的安全防護能力,支撐智能合約數量和邏輯復雜度不斷增加的應用場景。以下為演講全文,enjoy:我今天的演講分為四個部分,第一個是探討一下智能合約發生了哪些引發我們思考的安全事件,為什么我們要開始討論智能合約的安全。第二部分會對智能合約的安全風險做一個簡單總結,把這個問題向大家做一個描述。第三部分是區塊鏈+應用的情況下智能合約安全又是怎樣的。最后一個是未來的智能合約要如何做,我們也提出了自己的想法和建議。首先是看智能合約安全的現狀。在此之前我想先解釋一個名詞——智能合約。智能合約是區塊鏈的核心技術之一。之所以稱作智能合約,是因為智能合約在區塊鏈當中是一段能夠自動化執行的程序代碼,嵌在區塊鏈的頂層架構上。所以我們可以簡單的理解為,如果把區塊鏈技術比作現在大家都用智能手機操作系統,或者說區塊鏈底層的技術可以認為是一個網絡分布式的操作系統,智能合約就可以理解為是這個網絡分布式操作系統中所運行的程序。所以智能合約是一個以信息化的方式傳播,驗證和執行合同的協議。智能合約基于區塊鏈去中心化的特性,允許在沒有第三方的情況下進行可信的交易,同時這些交易是可以追溯、不可逆的,這些因素促進了智能合約技術的發展。智能合約的最終目的是提供比原來紙質合同,或者說合同文本更優的安全方案,同時減少雙方毀約和因此產生的糾紛,可大大提高交易的效率。要追溯歷史的話,這個概念是1994年的時候由科學家尼克·薩博提出來的。當時互聯網還是一個雛形,只是提出智能合約這樣一個設想。2008年區塊鏈1.0版本誕生,提供一個天然可信環境,但是這個環境缺失一些東西,沒有能夠對外提供更多可以被第三方執行和調用的接口,所以可以說區塊鏈1.0只支持一些簡單的指令,到2014年區塊鏈2.0版本發布,這個時候就在具備區塊鏈1.0可信環境屬性同時,開始支持圖靈完備,設計了可供開發者調用和執行的接口,提供了與應用場景解決的可能性。接下來我們可以回顧下智能合約真正被運行起來后,產生的對整個歷史進程影響比較大的安全事件,這就是發生在2016年,以太坊中的DAO事件。2016年6月15日,攻擊合約被創立。6月17日,攻擊開始,VitalikButerin得知攻擊消息后立刻通知了中國社區。theDAO監護人提議社區發送垃圾交易阻塞以太坊網絡,以減緩DAO資產被轉移的速度。隨后V神在官方博客發布公告。解釋了被攻擊的一些細節以及提出軟分叉解決方案,不會有回滾。不會有交易和區塊被撤銷。軟分叉將從塊高度1760000開始把任何與theDAO和childDAO相關的交易認做無效交易,以此阻止攻擊者在27天之后提走被盜的資產。這之后會有一次硬分叉將資產找回。我們看一下合約的本身是怎么被攻擊的。首先左邊是DAO智能合約的代碼片斷,這里邊寫了一個withdraw函數,右邊是黑客攻擊合約的代碼片段,這個攻擊合約在執行的時候,可以通過外部直接調用的方式調用DAO智能合約的withdraw函數,一層一層不斷執行不斷遞歸調用,使得黑客可以通過合約外部調用方式用攻擊合約把原合約很多數字資產做了轉移,由此引發DAO事件。最大的影響莫過于對以太坊這條公鏈,因為產生了一個硬分叉。接下來分析一些智能合約的安全風險。先跟大家交流一下智能合約代碼方面的特性,我總結了四類:第一個是賬戶的設計,智能合約一共設計了兩種賬戶,一種是外部賬戶,由公私鑰體系做控制,另一種叫做合約賬戶,是由代碼本身控制。第二個是在區塊鏈2.0上還有個叫gas的東西。合約代碼越復雜的時候,我在執行這個合約過程中所需要花費的gas越多。這就產生一個問題,如果調用者提供的gas不足,這個合約里面已經執行的代碼是會被回滾的,這個合約調用者也可以設計自己本身的gasPrice,礦工優先處置gasPrice較高的交易,所以gasPrice如果設計的比較低,或者設計的太高了等等這樣一些方式,都是不合理的。接下來是函數,一共涉及幾種函數,第一個是fallback函數,同時設計transfer、send、call.value等等這樣接收資金的函數,同時還有一個selfdestruct這樣一個函數去做合約。最后是函數調用方面,類似于傳統的調用方式。接著我們來看智能合約語言的特性。

Steve Hanke:我們知道比特幣的價格,但不知道它的價值:金色財經報道,里根政府時期的前經濟顧問Steve Hanke在接受采訪時談到加密貨幣獲取價值的難度,他表示,從理論角度來看,最終會得到一個有價格的比特幣,這是客觀的,我們知道它是什么,但我們不知道它的基本價值,我猜它可能為零。”這位經濟學教授質疑,在決定比特幣與本國貨幣(例如美元 的匯率時,如何推導出比特幣的價值,并補充說,沒有匯率模型可以真正合理化比特幣的匯率。比特幣/美元匯率。

當使用另一個基本模型來推導貨幣價值時,這是類似的,利率平價。Hanke 表示,沒有辦法合理化比特幣和可識別的全球貨幣之間的利率平價,用于評估匯率的兩種基本模型在比特幣領域根本沒有任何意義。(雅虎財經)[2021/12/26 8:04:29]

這個語言當中本身涉及的函數默認可見性是public,只要寫出一個合約,函數如果沒有設計權限,對于用戶來說都是公開的public。第二個里面涉及大量數值運算內容。第三個是設計三種異常處理方式,require、assert或者revert這三種。它們各有區別,require一般是寫在函數前面,用來檢查輸入的變量和合作狀態變量是否滿足條件,如果滿足條件的話才會去執行。assert這個函數,從開發者角度會寫在函數的尾部,用來檢查函數的內部錯誤,如果出現錯誤就會強制停止。revert函數更特殊一些,遇到一些無效代碼,會回滾之前所有的狀態。這三個函數還有一個區別,revert可以返回,合約如果沒有執行的話,這個gas是不需要付的。剛才講到了,合約本身是有一個外部賬戶和合約賬戶的區分,所以智能合約風險第一個也是我們認為比較常見的問題,叫做訪問控制的問題。訪問控制函數應該設定成只有特定的用戶才能夠調用這樣一個情況。我是合約的用戶者才能夠調用一些挖礦函數,但是我們在代碼過程當中能夠看到,黑客這邊可以通過寫惡意合約或者寫攻擊合約來提升自己權限,使人人都可以成為一個合約擁有者,這樣無形當中把整個合約內容函數,或者叫做合約賬戶函數暴露在外面,就產生后面一系列問題。下面舉一個Owner構造函數的錯誤例子。

播客主持人:當下的孩子們或許知道比特幣是什么:播客節目“Magic Internet Money”主持人Brad Mills發推稱:“我在萬圣節糖果盒里放了一些價值100美元的Rise Wallet比特幣卡,捕捉到了一些隨機的‘不給糖就搗蛋’的人發現它們的瞬間。‘嘿哥們,我發現了比特幣!’我想這些孩子們或許確實知道比特幣是什么。”[2020/11/1 11:22:05]

構造函數在部署合約的時候才調用,并且本身不上鏈。普通函數則是能夠被任意調用,同時代碼也寫在區塊鏈當中。大家應該理解一個情況,數據也好,合約也好,一旦上鏈,都是被允許查看的,所以普通函數寫在鏈上之后可以被任意的團隊,可以被惡意黑客或者被白帽子參考和研究。下面做一個簡單的代碼梳理,這邊寫了一個構造函數Owner,下面這個函數定義的function中,大家能夠看到這個Owner函數的大小寫變了,由于大小寫原因書寫錯誤,導致了這樣一個構造函數變成了一個普通的公有函數。接下來我們整理了一下智能合約中我們認為目前出現安全風險比較大的四個原因。首先第一個是智能合約在整個區塊鏈的架構當中,屬于中間協議層的最上層,在上面是我們所謂的分布式應用,所以出現的位置是位于上層應用,上層應用本身出現安全問題的概率,按照以往基于windows操作系統的應用出現問題概率相對會高一些。第二個是語言的發展時間很短,語言本身不夠完善。到目前為止,這個語言版本大概在0.4.24,一般能夠公開發布的開發語言版本可都是在V1.0或者V1.1等等,所以說從版本本身發展來說還需要一個很長階段。第三個問題屬于國內項目方這邊,目前經驗不是很充足,語言本身發展時間又很短,基于solidity這個語言產生的示例或范示標準文件比較少,包括官方發布的也存在問題,所以導致開發人員經驗更少,又不熟悉語言特性,會拿傳統開發互聯網的軟件開發區塊鏈,缺乏安全經驗導致問題出現。最后就是目前并沒有一個智能合約代碼審核的完善標準,這個標準沒有的話,實際上其實還有很多事情大家都是不清楚的,就會產生更多的奇奇怪怪的問題。接下來一個是展示一下開源項目DAPS統計以及公布的分布式應用的安全問題。有遞歸調用漏洞,訪問控制,整數溢出,未檢查底層調用,錯誤隨機等等這樣十個類。最后一個原因是智能合約本身也是頂層應用,包括本身的安全問題都還有很多未知未覺的領域存在,需要更多項目方,更多的白帽子,更多安全廠商一起努力,不斷使技術,還有上層應用更加健壯,為更多社會化應用服務。接下來想把我們智能合約未來應用的場景做一個大的猜想,或者做一個預期。首先現在結合我們社會化的應用來說,區塊鏈也好,智能合約也好,其實已經和我們生活當中一部分事情結合在一起了。首先第一個金融屬性,像之前螞蟻金服在香港的新聞,利用區塊鏈技術做跨境匯款,包括現在保險、證券、股權登記這樣一些原有金融領域的應用,現在已經慢慢出現雛形了。第二個物聯網應用,現在基于區塊鏈的物聯網、汽車租賃應用也逐漸出現。第三個供應鏈,上午百度介紹的時候,針對百度百科的文件編輯溯源也在落地建設過程當中。能源領域點對點的便利共享的領域,包括公共服務領域,針對我們文化、教育、產權、醫療等等這樣一些領域逐漸出現了。下面做幾張圖的展示,首先介紹一下傳統匯款和區塊鏈匯款的差別。在傳統匯款當中,境內都還好,速度很快,但是一旦涉及到境外的跨境匯款效率非常低,這里面涉及到一個問題,叫做中間銀行和清算網絡,作為一個中心化機構解決信任問題,導致效率會有所降低。如果把這個場景放到區塊鏈上,用智能合約實現的話,通過鏈本身的去中心化信任的機制,資產轉移的就可以用智能合約實現,從資產結算任何時間結算,包括資產轉移,上次螞蟻金服那邊在做的時候,從菲律賓匯款到香港大概用了幾十秒時間。第二個應用在傳統供應鏈金融,我們已經看到國內有一些機構大膽用區塊鏈技術嘗試物品溯源,比如之前曝光的疫苗事件。雖然疫苗生產廠商作為源頭無法通過區塊鏈技術進行控制,但是疫苗整個在冷鏈運輸,在各個監督站各個醫院的數據都可以上傳,防止中間有一些個人的惡意行為,導致在傳播當中數據的丟失和篡改。第三個針對傳統物流,原來傳統物流有很多痛點,互相不信任,之前用淘寶的時候最大的問題到底是買方先付錢還是賣方先發貨,后來出現了支付寶為來解決第三方信任問題,買房把錢給中間平臺。如果有區塊鏈能夠和網購支付場景結合的話,互不信任這個問題可以解決,買方可以在收到貨的這一刻,訂單信息就會在鏈上做數據提交,這個時候買方賬戶里面的錢就可以通過智能合約方式直接打到賣方賬戶上面去,包括訂單被篡改風險,還有隱私信息,包括現在大家遇到快遞信息泄露個人隱私,將來都可以上鏈的話,大家面對的都是在鏈上隱藏數據的信息身份。還有針對疫苗,針對醫院,針對醫療體系,從每一個藥廠藥品信息上鏈,藥房售賣藥片都是可以在鏈上確認的,患者也可以和醫生做關聯,甚至可以用一個APP知道這個人的健康信息,包括歷史服藥信息,在哪些醫院檢查,都是能夠被查到的。前面做了一些大膽的幻想,下面看一下未來智能合約會是一個什么狀態。第一個是區塊鏈+應用,在未來可能涉及的行業特別廣泛,剛才上午百度區塊鏈的平臺介紹了幾個特點,第一個和版權結合,我們現在很多商用圖片都會上鏈,包括未來可能會有數字音樂版權,數字電影版權都會上鏈,包括像郵政、游戲等等,和我們生活的結合越來越深,涉及的行業也越來越廣。第二個是隨著行業越來越多,每個行業都有每個行業的特點,所以行業應用復雜度越來越高,現在智能合約的代碼是300行到500行,將來智能合約應用,一個合約可能有幾千或者上萬行代碼,代碼邏輯越復雜,產生的邏輯漏洞,安全威脅肯定會越多。最后一個場景是開發者現在還比較少,未來的開發者越來越多,越來越成熟,將來提供很多智能合約的應用,不僅僅是對開發者,也可能對更多普通的民眾開放。我們的民眾就可以像現在用APP一樣,簡單輸入一些數據,輸入一些數量或者輸入一些價格,就可以自發產生智能合約,后面其實是公鏈方針對智能合約、對自己項目所起的標準,這樣的人越來越多。所以他們所產生的問題越來越多,通過目前的使用方式就不現實了。我們知道創宇404實驗室也是結合之前介紹的,未來預計會有更廣泛更復雜的應用,還有更多的智能合約的場景,我們設計研發了一套智能合約智能驗證的系統,能夠在結合人工審計情況下,更多通過自動化智能化,通過AI方式和很多的公鏈項目方一起深入的結合,通過深度結合方式,對整個鏈產生的智能合約標準,和未來所產生智能合約使用的應用,讓他們更健康更健壯一些,減少所出現的安全漏洞,讓這些智能合約能夠給我們生活帶來便利性的同時,減少經濟上的損失。后面這兩個是我們現在目前內部版本的截圖,把名字定義為叫做昊天塔,通過這樣一個產品,或者這樣一個系統,來為更多智能合約開發者和使用者提供安全的服務和保障。今天介紹暫時到這里,希望后續有關心的技術方面的同學或者是項目方,如果有興趣大家在一起多多交流,謝謝大家。

BB:對波場并不了解,只知道它是基于我們的DPoS技術而開發的:Block.one首席執行官Brendan Blumer(BB)在回答網友提問“EOS相較波場有什么優勢時?”回答表示:“除了知道波場是基于我們的CTO(即BM)的DPoS技術開發的之外,我對這個項目并不太了解。看看EOS,我相信你會發現它是性能最好的技術,也是持幣者最為團結的生態系統。”[2020/8/11]

聲音 | Cobra:想知道真正的金融科技長啥樣 看看比特幣白皮書:比特幣官方論壇Bitcoin.org持有人眼鏡蛇Cobra剛剛發布推文稱,大多數金融科技公司幾乎沒有什么真正創新,不過都是建立在數十年前VISA和萬事達(Mastercard)后端基礎上的看起來不錯的應用程序。Cobra稱:“想知道真正的金融科技是什么樣的嗎?去看看比特幣白皮書吧。”[2019/11/7]

聲音 | 比特幣耶穌:希望馬斯克知道BCH就是真正的比特幣:比特幣耶穌稱:“馬斯克是個非常聰明的人。我知道馬斯克喜歡加密貨幣,我希望他知道比特幣現金就是真正的比特幣。”[2018/10/31]

Tags:區塊鏈比特幣DAOGAS區塊鏈最新騙局曝光比特幣最直白的解釋DAOs價格ugas幣什么時候爆發

Luna
比特幣:360 手機助手上線“烯晶部落”,想做區塊鏈版的“天涯社區”?_數字貨幣

Odaily星球日報今日獲悉,360手機助手近期正式上線區塊鏈應用平臺“烯晶部落”。據官方顯示數據,已有超過5萬的用戶入住該平臺.

1900/1/1 0:00:00
DAG:DAG技術與區塊鏈有什么不同?| 區塊鏈課堂第 66 問_MEDAI

編者按:本文來自哈希派,作者:LucyCheng,星球日報經授權轉。DAG最早由Rootstock開發者SergioDemianLerner于2015年9月發表的《DAGCoinDraft》中提.

1900/1/1 0:00:00
區塊鏈:STO:一種合規的 ICO,可能與你未來的錢袋子有關_STOR價格

編者按:本文來自鴕鳥區塊鏈,作者:秋楓,星球日報經授權轉載。正如比特幣改變貨幣一樣,安全令牌將不可避免地改變股權,因為它們為所有者提供直接、流動的經濟利益和快速交付收益.

1900/1/1 0:00:00
加密貨幣:中國第一家接受以太坊支付的酒店近日開業,相比其他國家,中國太out了_Stone Coin

據TrustNodes消息,中國四川省阿壩藏族羌族自治州的以太酒店于9月24日正式開門迎賓。該酒店應該是中國,甚至世界上第一家公開表示接受以太坊支付的新建酒店.

1900/1/1 0:00:00
區塊鏈:阿里達摩院上線區塊鏈實驗室,所有熱門技術全都到碗里來_peth幣中文什么名稱

9月28日,有消息稱,阿里巴巴達摩院在其金融科技領域中上線區塊鏈實驗室,張輝出任負責人。公開資料顯示,張輝同時也是螞蟻金服區塊鏈部門負責人.

1900/1/1 0:00:00
TME:交易所1Broker被SEC關閉,Binance、BitMEX會是下一個嗎?_BRO幣

據BitcoinExchangeGuide報道,美國證券交易委員會和商品期貨交易委員會(CFTC)宣布,將起訴總部位于馬歇爾島的證券交易商1Broker,理由是其涉嫌提供比特幣融資證券掉期交易.

1900/1/1 0:00:00
ads