寫在前面:本文作者為EOS創始人DanielLarimer。他在文章中分析了傳統互聯網中的數據庫等基礎架構和設計的缺陷并指出區塊鏈是最好的解決方案:諸如EOSIO之類的區塊鏈開放式框架使得開發者無需為了構建安全的應用程序而重新創建“數據庫”,因為所有用戶使用私鑰對自己的行為簽名,可追溯和查證。未來B1的一個目標是添加工具和接口,促使在區塊鏈上部署業務的過程和傳統互聯網上部署業務相似。
傳統的網頁應用程序基礎結構在設計時將安全性作為事后考慮事項,在過去的25年中,許多公司一直在試圖修補一個根本不安全的架構。這種架構在設計時就預設服務器是可以被信任和保護的,但是多年的經驗告訴我們,沒有服務器是安全的,更不用說內部的攻擊了。換句話說,服務器基本上是中心化的。
我們過去認為“問題”在于用戶和服務器之間的連接,因此我們引入了SSL和HTTPS。但后來我們發現,黑客會破壞數據庫并竊取密碼。所以我們開始存儲密碼的哈希值,但后來我們發現黑客會在盜取哈希值后強行破解密碼。然后,我們引入了密碼切換機制,以便在暴力破解時更改密碼,諸如此類的措施還有很多。
為了保護服務器和數據庫,企業需要花費數十億美元,盡管付出了所有努力,但仍然沒有簡單的方法來審查系統并確保企業按預期運行。
聲音 | BM:虛擬機(EOS VM)代碼將很快發布:BM發推稱,EOS VM代碼將很快發布,這是多線程執行之旅的第一步。今日稍早前,在B1June大會上,BM宣布B1為EOSIO區塊鏈專門設計了虛擬機(EOS VM)來運行合約,這將使得EOSIO比原來快12倍。[2019/6/2]
Block.one正在構建區塊鏈軟件,以保持數據庫和用戶賬戶的安全,防止未經授權的訪問和未予解釋的修改。有了區塊鏈,用戶可以使用高度安全的私鑰,這些密鑰存儲在安全的硬件中,用于對每個用戶交互進行簽名,而不是簡單地進行服務器連接的身份驗證。區塊鏈創建了一個不可更改的記錄,建立了接收用戶輸入的絕對和確定性的順序,而智能合約提供了確定性的業務邏輯,確保了所有系統之間的一致性。
未來的Block.one正在消除密碼和昂貴的審計,為企業節省數十億美元,防止身份盜竊,并提供更高的可靠性和可審計能力。
多年來,我一直認為每個多用戶網站都可以從區塊鏈后端中獲益。和很多人的認知不同,區塊鏈不必是緩慢、低效的數據庫,也不必在抗審查、開放的基礎上運行。區塊鏈可以在安全性、審計能力、透明度和業務流程的完整性方面提供重要的改進,即使區塊鏈完全由公司自己操作,其中的所有內容都不會公開。本文旨在揭示區塊鏈在企業環境中的真正價值,并為區塊鏈行業的發展指明方向。
聲音 | BM:一票一投機制是不夠的,必須激勵用戶集中選票而非分散投票:據鯨交所消息,BM在電報群就“投票”話題發表言論,以下是內容綜述: 1. BM提問社區,對于誰真正控制著21個超級節點,最好的分析在哪里?社區成員表示不知道。BM回復到:“我不關注EOS上的日常投票/。但我在思考,我想保護EOS免受共謀之害,并確保排名前21位的公司是獨立的實體,一票一投機制是不夠的,必須激勵用戶整合選票而非將選票分散在30個節點中,這樣影響投票效果,讓BP的報酬與票數^x成比例,x必須大于1。” 2. BM:將選票集中在單個BP的回報必須大于將選票投給多個BP,同時用戶可對投票進行排序,其他BP就不會失去選票,這也會迫使大戶在利潤和控制權間做出選擇。[2019/5/17]
常見的誤解
在區塊鏈行業中,許多人認為區塊鏈只有在將互不信任的參與方連接起來時才會創造優勢。他們認為,傳統的數據庫技術已經可以完成確保業務所需的所有工作。換句話說,他們認為傳統的數據庫復制和“數據完整性”保證就足夠了。在這個過程中,他們要么忽視要么無視區塊鏈所提供的完全不同的安全性和完整性保證:
1.對全局事件序列的承諾
2.業務邏輯的確定性執行
3.業務邏輯和數據完整性的緊密耦合
4.消除密碼
在傳統的業務應用程序架構中,業務邏輯與數據庫是分離的。通常有一個應用服務器,如Node.js或J2EE,提供了修改數據庫的密碼。Node.js服務器的作用是通過密碼或多因素認證機制對用戶進行身份驗證。一旦應用服務器對用戶進行了身份驗證,它就會發出一個會話令牌,用于對未來的用戶交互進行身份驗證,直到超時或會話的某些元素發生更改。
聲音 | BM:DeFi 的未來在 EOSIO 上:據 IMEOS 報道,BM 剛剛在推特上發表關于 DeFi (去中心化金融)未來的一些言論,他表示
當談及去中心化金融時,ETH 失敗了。問問 bitfinex, bancor 或者任何想要在 ETH 上實施簡單的訂單簿(order book)的團隊。EOSIO 的設計吸取了最初去中心化金融平臺 bitshares 的教訓。速度,低延遲,有序索引,浮點和 c++,這些只有在 EOSIO 上才有。
EOSIO 擁有 RAM,網絡帶寬資源租賃,bancor,代幣名稱競價和若干錨定代幣設計的市場。去中心化的未來在 EOSIO 上。[2019/5/12]
顯然,這種傳統設計通過應用服務器管理的單次登錄/密碼執行所有數據庫操作。通過最終用途,應用服務器負責部署身份認證機制。顯然,通常有多個用戶可以訪問用戶名和密碼。數據庫管理員可以向許多不同的應用服務器或個人分配和撤銷憑據。
高級系統確保在橫向擴展的系統中,每個應用服務器都有自己的用戶名和密碼,在某些情況下甚至可以使用公鑰基礎設施和硬件安全模塊。但是,即使在這里,數據庫也只認證應用服務器的連接。為了提供審計日志,它必須記錄安全連接的整個數據流。但是,即使這個日志也只能記錄應用程序服務器請求的“讀寫操作”,而應用程序服務器已經丟失了最初用戶意圖的所有信息。
審查這樣一個系統的審計師無法知道應用服務器是否遵循正確的業務邏輯,是否正確地驗證了最終用戶的身份。Node.js進程可以將用戶操作記錄到數據庫中,方便審計師復制同樣的計算,但這樣的記錄并非不可篡改,而且沒有獨立認證驗證,無法了解終端用戶真的授權了某一行為。
聲音 | BM:側鏈核心數量是未來競爭激烈的地方:據IMEOS消息,BM在電報群中表示,TPS是近期一場與傳輸速度有關的戰爭,在未來側鏈核心數量是競爭激烈的地方。[2018/7/19]
可以嘗試記錄每個用戶的連接,但是由于用戶經常通過連接傳輸他們的密碼,這些記錄最終會成為一個泄露用戶信息的蜜罐。更復雜的系統可以對這些記錄進行加密,這樣只有審計人員才能讀取它們。
假設審計日志沒有被篡改,審計人員將不得不通過應用程序邏輯運行相同的操作序列,以驗證最終數據庫狀態是否匹配。這意味著應用服務器必須以確定性的方式實現。
確定性計算很難
雖然編寫確定性代碼似乎很簡單,但實際上所有常見的計算機語言都是非確定性的,因為它們允許開發人員獲取存儲在數據庫以外的數據。可以是一些簡單的東西,如時間戳、內存地址、環境變量、IP地址,也可以是一些更微妙的東西,如硬件上的浮點行為或哈希表的插入順序。在許多情況下,訪問長時間運行的應用程序服務器的內存變量就足以引入不確定性。啟動/停止應用程序服務器的動作必須被記錄和復制,否則在重放期間每個本地內存訪問可能是不確定的。
事實是,編寫確定性代碼對于受過常見誤區培訓、積極尋找非確定性的最佳開發人員來說是一個挑戰。典型的企業應用程序開發人員會發現以確定性的方式編寫代碼是困難的或不切實際的。
如果我們進一步假設應用程序代碼是確定性的,應用程序如實記錄用戶事件,那么我們仍然面臨跟蹤部署的代碼版本的挑戰。應用程序是動態的,并且經常更新,因此應用程序代碼本身也必須是數據庫狀態的一部分,并且其更新的管理和記錄與用戶操作的安全性和可審計性相同。然后,審計人員需要擁有應用服務器代碼的所有版本的副本,并根據需要通過每次版本升級來重放用戶輸入。
EOS創始人BM:EOS漏洞早在360披露前被修復:EOS創始人BM在電報群中回應360提出的EOS安全漏洞問題。BM稱,360報告中提到的漏洞早已被EOS修復,并且早于360發布報告的時間。此外BM還表示,對于任何挑起市場恐慌的行為將取消其獎勵資格。EOS主網在上線前不會有重大bug。[2018/5/30]
即使單個應用程序服務器在安裝和部署方面都能夠以確定的方式進行操作,它仍然會遇到一個主要的可擴展性問題。只有一個應用服務器實例可以在數據庫進行操作。并行訪問可以通過復雜的鎖實現,但是即使鎖上的競爭條件也必須被記錄和復制,或者兩個具有不同本地變量的應用程序邏輯實例也可能產生不確定的輸出。
此時人們可能會完全放棄確定性,但是確定性在缺席之后,會逐步在最終數據集累積大量的偏差。審計人員將被迫使用模糊邏輯和近似匹配,每個人都必須相信“模糊邏輯”已經夠好了。
當然,要否定編寫和部署確定性代碼所付出的所有努力,唯一要做的就是讓數據庫管理員直接修改數據庫而不進行跟蹤。在某些情況下,對用戶輸入日志和狀態的仔細更新可能會創建兩個不同的數據庫狀態,每個狀態都通過了確定性測試,但仍然具有不同的和不可調和的輸出。例如,假設一個教授向系統提交了一個學生的成績為F,然后這個學生可以通過黑客或賄賂的方式進入數據庫來更改他的成績和教授提交的記錄。
消除密碼
任何重視完整性的多用戶系統的最終目標都是確保不能偽造用戶輸入。用戶名/密碼或其他主觀的多因素認證的使用依賴于服務器來判斷密碼是否匹配,或者是否輸入了正確的SMS代碼/電子郵件鏈接/驗證碼。很明顯,這對系統的完整性來說是一個巨大的問題,我將提供一個真實的例子來說明這些系統有多糟糕。
2016年,我在一家加密貨幣交易所開設了一個賬戶,后來這家遭到黑客攻擊,黑客竊取了價值數萬美元的比特幣。我當時一共收到了4封郵件,第一封是“密碼重置”郵件,然后是另一封表明我的密碼已成功重置的郵件。然后我收到一封要求確認我的比特幣提取的郵件。然后我收到了一個通知,說我的提幣手續已經辦完了。
乍一看,我的郵箱似乎被黑了,但這是不可能的,因為我采用了多因素認證。我的郵箱安全頁面顯示,沒有未經授權的訪問。我也能看出來,因為谷歌會記錄并顯示所有訪問我郵箱的IP和設備。
事實上,攻擊者在郵件到達我的郵箱之前就截獲了郵件。應用服務器無法知道郵件被截獲,因此就算攻擊者只有應用服務器生成的一次性代碼,其還是能獲得密碼重置和提幣的授權。
同樣的漏洞也可用于SMS或依賴于用戶控制的私鑰以外的其他技術。真正安全的用戶賬戶是為所有用戶采用基于硬件的私鑰作為他們的登錄憑證,在硬件密鑰丟失的情況下,采用一個穩健的和費時的過程來促進安全復位。
此時,多用戶業務應用程序可以使用用戶的私鑰對每個用戶請求簽名,將這個簽名的請求記錄到數據庫中,并使用確定性代碼處理它。即使這樣也不能提供人們所期望的完整性,因為用戶請求仍然可能被刪除,同時還會產生副作用。想象一下,當一名警官提交了你的罰單,然后所有的州都產出了這個請求,你就可以入侵警察數據庫并刪除他簽署的請求。
此時,精明的工程師會宣稱,我提出的每個問題都可以通過更改應用程序邏輯來解決。他是對的,一個成熟的應用程序開發人員可以使用傳統的數據庫、傳統的應用程序服務器和常見的密碼原語來構建一個相對安全且可審計的系統。根據同樣的邏輯,一個精明的工程師可以聲稱數據庫是完全不必要的,所有的東西都應該直接構建在文件系統上。也有工程師可能會指出,我們可以從頭開始編寫代碼,不再依賴于Node.js和J2EE等應用服務器框架,這樣就能提高性能。這就好像所有的東西都是由低水平的技術制造出來的,我們也可以設計出性能最佳的晶體管。
我之所以指出這個極端,是因為它強調了了高級框架在加速和保護新應用程序開發方面的真正效用。很少有人編寫自己的密碼庫或算法,而編寫這些庫或算法的人要么是專家,要么在自己的系統遭到黑客攻擊時成為了反面教材。從頭開始開發/重新開發所有東西的成本可能會使每個應用程序都比在經過驗證的框架上構建更昂貴。
區塊鏈應用和數據服務器的優勢
區塊鏈和EOSIO這樣的開發框架之所以存在,是為了讓應用程序開發人員不必為了構建安全的應用程序而重新創建“數據庫”。安全性和確定性很難實現,這就是為什么技術構建在抽象細節的層中。EOSIO在同一過程中將確定性執行環境與快速數據庫相結合。所有的用戶操作都由他們自己的私鑰簽名,并記錄在一個復制和分布式的數據庫中,該數據庫具有對區塊頭進行公開承諾的能力。
EOSIO這樣的框架變得與傳統的不安全系統一樣強大且易于開發,只是時間問題。在許多方面,EOSIO的架構已經比傳統系統具有更高的性能,這是因為它將應用程序邏輯放在與內存數據庫相同的進程空間中。這就創建了確定性存儲過程。
在未來的幾年里,Block.one的目標是添加工具和接口,使在區塊鏈上部署企業應用程序就像在傳統企業應用架構上部署同類應用一樣容易。
很明顯,采用區塊鏈技術應該成為政府機構、上市公司和有責任防止欺詐或進行財務報告的企業的優先事項。在我看來,未來幾年不采用區塊鏈技術就像銀行不采用SSL,一旦該技術得到廣泛使用,不使用區塊鏈技術就會被認為是疏忽。
是時候開始行動了。如果應用程序的構建方式沒有根本性的改變,你的企業和用戶就不會安全。每耽擱一天,你的生意就會面臨欺詐或黑客攻擊的風險。
Web3基金會宣布資助云和區塊鏈基礎設施公司SecondState,將以太坊青睞的WebAssembly虛擬機引入Polkadot生態系統。 這種虛擬機是公有區塊鏈的關鍵基礎架構組件.
1900/1/1 0:00:00在這個冷清到連朋友圈都沒有人曬轉賬的情人節,EOS創始人DanielLarimar成了加密貨幣行業這一天的主角.
1900/1/1 0:00:00編譯:石濤聲 來源:IPFS原力區 原文鏈接:https://medium.com/@tonyob/the-3-revolutions-of-web-3-7165ed6b3036 本文是根據谷歌.
1900/1/1 0:00:00來源/LongHash 2020年,比特幣價格從6855美元上漲到10550美元,漲幅57%。Bitfinex上的一個知名“大戶”—持有大量比特幣的個人投資者—批評了這一輪上漲,稱其為市場上其他.
1900/1/1 0:00:00豐富的煤礦天然氣能源,便宜的電力資源,人煙稀少而又廣袤的版圖,美味的烤羊肉,低廉的物價......這些元素構成了中亞地區最為鮮明的特點,地區內大量煤礦與油氣,數以百計的燃煤電站.
1900/1/1 0:00:00英國央行高級經濟學家彼得?齊默爾曼發表了一篇關于比特幣和其他加密貨幣價格的工作論文,論文對比特幣的“數字黃金”效應進行了研究,并提出比特幣已經陷入了一種“第22條軍規”樣的窘境.
1900/1/1 0:00:00