當前位置:首頁 » 操作系統 » 演算法作惡

演算法作惡

發布時間: 2022-09-25 07:40:29

1. 如何辯別真正的區塊鏈數字貨幣

某個數字貨幣是否是一個有價值的幣種,在目前基本屬於「天使輪」階段而言,判定標准有三個,一是團隊,二是經濟模型,三是行業需求。

團隊的隨機性太大,在此不進行討論。本文首先對數字貨幣的經濟模型進行一個詳盡地分析,在隨後的文章中,筆者會根據不同行業對部分數字貨幣進行剖析。

嚴格來講,本文所涉及的經濟模型,並不完全等同於經濟學中所述概念。特指在數字貨幣中,貨幣的共識機制與激勵機制。

一、共識機制

共識機制是區塊鏈系統中各個節點達成一致的策略和方法,應根據系統類型及應用場景的不同靈活選取。

常用的共識機制主要有PoW、PoS、DPoS、PBFT(及其變種)等。另外,基於區塊鏈技術的不同應用場景,以及各種共識機制的特性,本文按照以下維度來評價各種共識機制的技術水平:

a) 合規監管:是否支持超級許可權節點對全網節點、數據進行監管;

b) 性能效率:交易達成共識被確認的效率;

c) 資源消耗:共識過程中耗費的CPU、網路輸入輸出、存儲等計算機資源;

d) 容錯性:防攻擊、防欺詐的能力。

1 行業背景

尋找行業痛點:資產管理需要專業的團隊與知識,然而現在大多數數字貨幣投資者並不具備;數字貨幣市場行情波動巨大,在行情下挫中,投資者無法對資產進行保值。

2 自身優勢

在股票、期貨市場深耕多年,有成熟、高素質資產管理團隊;AI大數據團隊技術實力強勁。

3 市場調研

進行市場調研之後,預估未來5年內,資產管理的市值約為10億美元。

4 數字貨幣總量

在考慮預期資產管理市值、開發周期與難度後,考慮發行基於以太坊ERC20數字貨幣XT,數量20億枚,永不增發。

5 分配方式

早期投資人持有10%,團隊持有20%,商務運營10%,社區建設10%,投資者持有50%。

6 數字貨幣釋放/回購機制

釋放機制分為三類:

第一類:商務運營持幣部分為全部解鎖,用途限定為商務及運營活動;

第二類:社區建設部分的釋放機制為,社區成員發布獨家資訊、合作平台發布獨家項目進展等行為,根據參與ID數,釋放相應比例XT(發布者與參與者各獲得50%),直至全部釋放完成(釋放完成之後,後續獎勵來源於平台利潤池);

第三類:投資者持主流數字貨幣,在平台中進行資產管理,根據兌換比例,釋放一定數量的XT,早期投資人與團隊持有部分同步,按比例解鎖;

回購機制為:所得利潤(以XT計)的50%返還給持幣者;剩餘進入平台利潤池中,按月對利潤池中的50%的XT進行銷毀,直至XT總量為10億枚;其餘作為平台生態建設基金;

7 數字貨幣權益

利潤分成:持有XT,是為平台用戶,可以享受平台利潤50%的分成;

平台治理:參與平台活動享受XT獎勵、其他項目方的空投活動;

功能定製:可基於平台AI大數據,投資者可購買針對個人交易策略進行優化的服務

2. 人工智慧作惡誰之過

「9·11 是猶太人乾的,把他們都送進毒氣室!種族戰爭現在開始!」

2016年3月23日,一個人設為19歲女性,昵稱為 Tay 的聊天機器人在推特上線。這個微軟開發的機器人能夠通過抓取和用戶互動的數據模仿人類的對話,像人一樣用笑話、段子和表情包聊天。但是上線不到一天,Tay 就被「調教」成了一個滿口叫囂著種族清洗的極端分子,微軟只好以系統升級為由將其下架。

微軟聊天機器人的極端言論。

這樣的口號並不是聊天機器人的發明,而在社交網路上大量存在著。美國大選期間,一些所謂的「政治新媒體」賬號發出的摻雜陰謀論、種族主義的內容,在Facebook 上進行了病毒式傳播。這有賴於人工智慧協助下的「精準定位」:誰最容易相信陰謀論,誰對現實最不滿?相應的政治廣告和假新聞能精準地投放到這群人中,使人對自己的看法更加深信不疑。

因為設計缺陷而 「暴走」的聊天機器人,和精心策劃的線上政治行為,看起來彷彿是兩回事。但這種我們似乎從未見過的景象,卻指向了同一個「凶器」——大數據驅動下的人工智慧。

1、人工智慧有作惡的能力嗎?

人工智慧會「作惡」嗎?面對智能的崛起,許多人抱有憂慮和不安: 擁有感情和偏見的人會作惡,而僅憑理性計算進行判定的計算機似乎也會「作惡」, 且作起來易如反掌。這讓許多人(特別是非技術領域的人)對人工智慧的發展持悲觀態度。

這種憂慮並不是最近才有的。人工智慧這個詞誕生於上世紀50年代,指可體現出思維行動的計算機硬體或者軟體,而 對機器「擁有思維」之後的倫理探討,早至阿西莫夫開始就在科幻作品裡出現。

14 年前,威爾·史密斯主演的電影《機械公敵》里就有這樣一個場景:2035 年的人類社會,超高級的人工智慧承擔大量工作,並與人類和諧相處。這些原本完全符合阿西莫夫「三定律」的人工智慧,在一次關鍵升級之後對人類發起了進攻。這些機器人擁有了思維進化的能力,在它們的推算下,要達到「不傷害人類」的目的,就必須先消滅「彼此傷害」的人類。

十分高產的科幻作家阿西莫夫(1920-1992)。

劍橋分析CEO亞歷山大·尼克斯(Alexander Nix)。

劍橋分析並不是一個孤例。澳洲一個 Facebook 的廣告客戶透露,Facebook 的人工智慧會分析其用戶特徵和所發的內容,給出諸如「有不安全感的年輕人」「抑鬱、壓力大」等標簽,然後有針對性地投放游戲、癮品和甚至虛假交友網站的廣告,從中獲取巨大利益。

即使不存在數據泄露問題,對用戶數據的所謂「智能挖掘」也很容易遊走在「合規」但「有違公平」的邊緣。例如,電商能夠根據一個人的消費習慣和消費能力的計算,對某個人進行針對的、精密的價格歧視。購買同樣的商品,用 iPhone X 手機的用戶很可能會比用安卓「千元機」的用戶付更多的價錢,因為他們「傾向於對價格不敏感」。而我們所經常談論的「大數據殺熟」——比如攜程老用戶訂旅館的價格會更高——也建立在用戶行為數據的基礎上。

數據的收集本身也值得商榷。前網路人工智慧首席科學家吳恩達(Andrew Ng)就曾公開表示, 大公司的產品常常不是為了收入而做,而是為了用戶的數據而做;在某一個產品上收集的數據,會用於在另一個產品上獲利。 在智能面前,沒有所謂的個人隱私和行蹤,也很難確定數據收集的邊界在哪裡,尤其是個人隱私與公共信息、主動提供與被動提供的邊界。

總而言之, 在以商業利益為目標的人工智慧眼裡,並沒有「人」或者「用戶」的概念,一切都是可以利用的數據。 劍橋大學互聯網與社會研究中心教授朔沙娜·祖博夫將這種人工智慧和資本「合體」的現狀,稱之為 「監控資本主義」 (Surveillance Capitalism)——在大數據和人工智慧的協助下,通過對每個人的監控和信息的榨取,實現資本的最大化。

業界對此的態度很曖昧。AI 作為當下最熱門、來錢最快的行當之一,這些動輒年薪50萬美元的工程師很少得閑來思考「形而上」的問題。 一位不願具名的研究人員在與我的微信私聊中表達了他的「個人看法」:「現在的技術離『通用人工智慧』還很遠,對社會倫理方面的影響沒有那麼大,更多還是從繁瑣的重復勞動中解脫出來。」

作者試圖找到行業內人士對此評論,谷歌(中國)和網路自動駕駛部門的人工智慧相關人員均表示,探討 AI 的社會問題,牽涉到公司利益和形象,比較敏感,不便評論。

「人工智慧作為一個工具,如何使用,目前來看決定權依然在人。」俞揚說道 ,「系統的設計者和商業(應用)的提供人員需要對此負責。」

如何負責?這或許需要我們正視人工智慧對整個社會關系的挑戰。

4、人工智慧作惡之後

2018年3月 19 日,一輛自動駕駛的優步(Uber)在美國亞利桑那州惹上了麻煩。面對路中出現的一個推著自行車的女性,這輛車速 38 mph(約61km/h)的沃爾沃在昏暗的光線條件下並沒有減速,徑直撞了上去,受害者被送往醫院之後不治身亡。這是自動駕駛第一例行人致死的事故。

電視台對自動駕駛優步車禍的報道。

事故發生之後,有不少人將矛頭指向了自動駕駛的人工智慧是否足夠安全上,或者呼籲優步禁止自動駕駛。然而更關鍵的問題在於,亞利桑那有著全美國幾乎最開放的自動駕駛政策,事故發生地坦佩市(Tempe)是實行自動駕駛最火的「試驗田」之一;事故所在的街區早已做過路線測試,並被自動駕駛的智能採納。但是在事故發生之後,對於責任的認定依然遇到了困難。

因為人的疏忽造成的車禍數不勝數,人們早已習慣了如何處理、怎樣追責;然而機器出錯了之後,人們忽然手足無措。 人工智慧會出錯嗎?當然會。只是我們在這個問題上一直缺乏認知。 就如同上文提到的「隱性歧視」,深度學習的「黑箱」,現有的法律法規很難對這些錯誤進行追究,因為不要說普通人,就連技術人員也很難找出出錯的源頭。

當人工智慧的決策在人類社會中越來越重要時,我們也不得不考慮,智能為什麼會犯錯,犯錯了怎麼辦;若要讓智能擺脫被商業或者政治目的支使的工具,真正成為人類的「夥伴」, 需要怎麼監管、如何教育,才能讓人工智慧「不作惡」。

人工智慧的監管問題亟待解決。

對此,現有的法律框架內很難有清晰的、可操作的實施方案。歐盟率先在數據和演算法安全領域做出了立法的嘗試,2018年5月即將生效的新法規規定,商業公司有責任公開「影響個人的重大決策」是否由機器自動做出,且做出的決策必須要「可以解釋」(explainable)。但法條並沒有規定怎麼解釋,以及細到什麼程度的解釋是可以接受的。

另外一個重要的問題是, 讓機器求真求善,需要人類自己直面決策中的黑暗角落。 在 Atari 游戲智能的測試中,游戲中的人工智慧 bot 可以用最快的速度找到漏洞開始作弊,而游戲玩家又何嘗不是呢?不管是帶有歧視的語義分析,針對少數族裔進行的「智能監視」和跟蹤,或者把已婚未育女性的簡歷扔掉的智能簡歷篩選,都長期以各種形式存在於人類社會中。

人工智慧不是一個可預測的、完美的理性機器,它會擁有人類可能擁有的道德缺陷,受制於人們使用的目標和評估體系。 至少目前,機器依然是人類實然世界的反應,而不是「應然世界」的指導和先驅。 對機器的訓練同樣少不了對人性和社會本身的審視——誰在使用,為了什麼而使用,在我們的世界中扮演著怎樣的角色?數據是誰給的,訓練的目標是誰定的?我們期望中的機器,會繼承我們自己的善惡嗎?

谷歌中國人工智慧和機器學習首席科學家李飛飛認為, 要讓機器「不作惡」,人工智慧的開發需要有人本關懷 。「AI 需要反映我們人類智能中更深層的部分,」李飛飛在《紐約時報》的專欄中寫道,「要讓機器能全面地感知人類思維……知道人類需要什麼。」她認為,這已經超越了單純計算機科學的領域,而需要心理學、認知科學乃至社會學的參與。

未來,人工智慧進入更多的領域、發揮更強的功能,是無可爭辯的事實。然而,我們的生產關系能否適應人工智慧帶來的生產力,這句馬克思政治經濟學的基本原則值得我們認真思考一番。 我們並不想看到未來的「機器暴政」將我們的社會綁在既有的偏見、秩序和資本操縱中。

一個AI

人工智慧之所以會作惡,可能就是因為太像人類了吧。

3. 如何才能確保人工智慧不作惡

盡管人工智慧在近幾年取得了巨大的技術進步, 但其實依然還處在嬰兒期。正如一個年幼的孩子會模仿周圍人的行為,人工智慧也正在向人類學習。因此,作為人工智慧「父母」的人類,必須確保把反映和尊重我們周圍世界的價值觀和道德觀貫穿於人工智慧產品和服務之中。

維護問責制的一個簡單方法是創建的人工智慧系統不能完全自治。人工智慧只是提供了人類用於決策所需要的信息。例如,在發射火箭之前,需要有人按下紅色按鈕。在做出治療或手術的決定之前,需要醫生征詢你的同意。復雜的洞察力由人工智慧提供,但最終的決策要由人類做出。這樣的人工智慧系統就可考慮應用在文化敏感性高、潛在後果影響重大的場境中。

4. 共識演算法系列之一:私鏈的raft演算法和聯盟鏈的 pbft 演算法

對數據順序達成一致共識是很多共識演算法要解決的本質問題
Fabic的pbft演算法實現
現階段的共識演算法主要可以分成三大類:公鏈,聯盟鏈和私鏈
私鏈,所有節點可信
聯盟鏈,存在對等的不信任節點
私鏈:私鏈的共識演算法即區塊鏈這個概念還沒普及時的傳統分布式系統里的共識演算法,比如 zookeeper 的 zab 協議,就是類 paxos 演算法的一種。私鏈的適用環境一般是不考慮集群中存在作惡節點,只考慮因為系統或者網路原因導致的故障節點。

聯盟鏈:聯盟鏈中,經典的代表項目是 Hyperledger 組織下的 Fabric 項目, Fabric0.6 版本使用的就是 pbft 演算法。聯盟鏈的適用環境除了需要考慮集群中存在故障節點,還需要考慮集群中存在作惡節點。對於聯盟鏈,每個新加入的節點都是需要驗證和審核的。

公鏈:公鏈不僅需要考慮網路中存在故障節點,還需要考慮作惡節點,這一點和聯盟鏈是類似的。和聯盟鏈最大的區別就是,公鏈中的節點可以很自由的加入或者退出,不需要嚴格的驗證和審核。

在公有鏈中用的最多的是pow演算法和pos演算法,這些演算法都是參與者的利益直接相關,通過利益來制約節點誠實的工作,解決分布式系統中的拜占庭問題。拜占庭容錯演算法是一種狀態機副本復制演算法,通過節點間的多輪消息傳遞,網路內的所有誠實節點就可以達成一致的共識。

使用拜占庭容錯演算法不需要發行加密貨幣,但是只能用於私有鏈或者聯盟鏈,需要對節點的加入進行許可權控制;不能用於公有鏈,因為公有鏈中所有節點都可以隨意加入退出,無法抵擋女巫攻擊(sybil attack)

raft 演算法包含三種角色,分別是:跟隨者( follower ),候選人(candidate )和領導者( leader )。集群中的一個節點在某一時刻只能是這三種狀態的其中一種,這三種角色是可以隨著時間和條件的變化而互相轉換的。

raft 演算法主要有兩個過程:一個過程是領導者選舉,另一個過程是日誌復制,其中日誌復制過程會分記錄日誌和提交數據兩個階段。raft 演算法支持最大的容錯故障節點是(N-1)/2,其中 N 為 集群中總的節點數量。

國外有一個動畫介紹raft演算法介紹的很透徹,鏈接地址為: http://thesecretlivesofdata.com/raft/ 。這個動畫主要包含三部分內容,第一部分介紹簡單版的領導者選舉和日誌復制的過程,第二部分內容介紹詳細版的領導者選舉和日誌復制的過程,第三部分內容介紹的是如果遇到網路分區(腦裂),raft 演算法是如何恢復網路一致的。

pbft 演算法的提出主要是為了解決拜占庭將軍問題
要讓這個問題有解,有一個 十分重要的前提 ,那就是 信道必須是可靠的 。如果信道不能保證可靠,那麼拜占庭問題無解。關於信道可靠問題,會引出兩軍問題。兩軍問題的結論是,在一個不可靠的通信鏈路上試圖通過通信以達成一致是基本不可能或者十分困難的。
拜占庭將軍問題最早是由 Leslie Lamport 與另外兩人在 1982 年發表的論文《The Byzantine Generals Problem 》提出的, 他證明了在將軍總數大於 3f ,背叛者為f 或者更少時,忠誠的將軍可以達成命令上的一致,即 3f+1<=n 。演算法復雜度為 o(n^(f+1)) 。而 Miguel Castro (卡斯特羅)和 Barbara Liskov (利斯科夫)在1999年發表的論文《 Practical Byzantine Fault Tolerance 》中首次提出 pbft 演算法,該演算法容錯數量也滿足 3f+1<=n ,演算法復雜度為 o(n^2)。

首先我們先來思考一個問題,為什麼 pbft 演算法的最大容錯節點數量是(n-1)/3,而 raft 演算法的最大容錯節點數量是(n-1)/2 ?

對於raft演算法,raft演算法的的容錯只支持容錯故障節點,不支持容錯作惡節點。什麼是故障節點呢?就是節點因為系統繁忙、宕機或者網路問題等其它異常情況導致的無響應,出現這種情況的節點就是故障節點。那什麼是作惡節點呢?作惡節點除了可以故意對集群的其它節點的請求無響應之外,還可以故意發送錯誤的數據,或者給不同的其它節點發送不同的數據,使整個集群的節點最終無法達成共識,這種節點就是作惡節點。

raft 演算法只支持容錯故障節點,假設集群總節點數為n,故障節點為 f ,根據小數服從多數的原則,集群里正常節點只需要比 f 個節點再多一個節點,即 f+1 個節點,正確節點的數量就會比故障節點數量多,那麼集群就能達成共識。因此 raft 演算法支持的最大容錯節點數量是(n-1)/2。

對於 pbft 演算法,因為 pbft 演算法的除了需要支持容錯故障節點之外,還需要支持容錯作惡節點。假設集群節點數為 N,有問題的節點為 f。有問題的節點中,可以既是故障節點,也可以是作惡節點,或者只是故障節點或者只是作惡節點。那麼會產生以下兩種極端情況:

第一種情況,f 個有問題節點既是故障節點,又是作惡節點,那麼根據小數服從多數的原則,集群里正常節點只需要比f個節點再多一個節點,即 f+1 個節點,確節點的數量就會比故障節點數量多,那麼集群就能達成共識。也就是說這種情況支持的最大容錯節點數量是 (n-1)/2。
第二種情況,故障節點和作惡節點都是不同的節點。那麼就會有 f 個問題節點和 f 個故障節點,當發現節點是問題節點後,會被集群排除在外,剩下 f 個故障節點,那麼根據小數服從多數的原則,集群里正常節點只需要比f個節點再多一個節點,即 f+1 個節點,確節點的數量就會比故障節點數量多,那麼集群就能達成共識。所以,所有類型的節點數量加起來就是 f+1 個正確節點,f個故障節點和f個問題節點,即 3f+1=n。
結合上述兩種情況,因此 pbft 演算法支持的最大容錯節點數量是(n-1)/3

pbft 演算法的基本流程主要有以下四步:

客戶端發送請求給主節點
主節點廣播請求給其它節點,節點執行 pbft 演算法的三階段共識流程。
節點處理完三階段流程後,返回消息給客戶端。
客戶端收到來自 f+1 個節點的相同消息後,代表共識已經正確完成。
為什麼收到 f+1 個節點的相同消息後就代表共識已經正確完成?從上一小節的推導里可知,無論是最好的情況還是最壞的情況,如果客戶端收到 f+1 個節點的相同消息,那麼就代表有足夠多的正確節點已全部達成共識並處理完畢了。

3.演算法核心三階段流程
演算法的核心三個階段分別是 pre-prepare 階段(預准備階段),prepare 階段(准備階段), commit 階段(提交階段)

流程的對比上,對於 leader 選舉這塊, raft 演算法本質是誰快誰當選,而 pbft 演算法是按編號依次輪流做主節點。對於共識過程和重選 leader 機制這塊,為了更形象的描述這兩個演算法,接下來會把 raft 和 pbft 的共識過程比喻成一個團隊是如何執行命令的過程,從這個角度去理解 raft 演算法和 pbft 的區別。

一個團隊一定會有一個老大和普通成員。對於 raft 演算法,共識過程就是:只要老大還沒掛,老大說什麼,我們(團隊普通成員)就做什麼,堅決執行。那什麼時候重新老大呢?只有當老大掛了才重選老大,不然生是老大的人,死是老大的鬼。

對於 pbft 演算法,共識過程就是:老大向我發送命令時,當我認為老大的命令是有問題時,我會拒絕執行。就算我認為老大的命令是對的,我還會問下團隊的其它成員老大的命令是否是對的,只有大多數人 (2f+1) 都認為老大的命令是對的時候,我才會去執行命令。那什麼時候重選老大呢?老大掛了當然要重選,如果大多數人都認為老大不稱職或者有問題時,我們也會重新選擇老大。
四、結語
raft 演算法和 pbft 演算法是私鏈和聯盟鏈中經典的共識演算法,本文主要介紹了 raft 和 pbft 演算法的流程和區別。 raft 和 pbft 演算法有兩點根本區別:

raft 演算法從節點不會拒絕主節點的請求,而 pbft 演算法從節點在某些情況下會拒絕主節點的請求 ;
raft 演算法只能容錯故障節點,並且最大容錯節點數為 (n-1)/2 ,而 pbft 演算法能容錯故障節點和作惡節點,最大容錯節點數為 (n-1)/3 。

pbft演算法是通過投票來達成共識,可以很好的解決包括分叉等問題的同時提升效率。但僅僅比較適合於聯盟鏈私有鏈,因為兩兩節點之間通信量是O(n^2)(通過優化可以減少通信量),一般來說不能應用於超過100個節點。
pbft有解的前提是 信道必須是可靠的 ,存在的問題是 可擴展性(scalability)差

部分來自: https://blog.csdn.net/kojhliang/article/details/80270223
區塊鏈在設計上就是為了BFT

5. 011:Ethash演算法|《ETH原理與智能合約開發》筆記

待字閨中開發了一門區塊鏈方面的課程:《深入淺出ETH原理與智能合約開發》,馬良老師講授。此文集記錄我的學習筆記。

課程共8節課。其中,前四課講ETH原理,後四課講智能合約。
第四課分為三部分:

這篇文章是第四課第一部分的學習筆記:Ethash演算法。

這節課介紹的是以太坊非常核心的挖礦演算法。

在介紹Ethash演算法之前,先講一些背景知識。其實區塊鏈技術主要是解決一個共識的問題,而共識是一個層次很豐富的概念,這里把范疇縮小,只討論區塊鏈中的共識。

什麼是共識?

在區塊鏈中,共識是指哪個節點有記賬權。網路中有多個節點,理論上都有記賬權,首先面臨的問題就是,到底誰來記帳。另一個問題,交易一定是有順序的,即誰在前,前在後。這樣可以解決雙花問題。區塊鏈中的共識機制就是解決這兩個問題,誰記帳和交易的順序。

什麼是工作量證明演算法

為了決定眾多節點中誰來記帳,可以有多種方案。其中,工作量證明就讓節點去算一個哈希值,滿足難度目標值的勝出。這個過程只能通過枚舉計算,誰算的快,誰獲勝的概率大。收益跟節點的工作量有關,這就是工作量證明演算法。

為什麼要引入工作量證明演算法?

Hash Cash 由Adam Back 在1997年發表,中本聰首次在比特幣中應用來解決共識問題。

它最初用來解決垃圾郵件問題。

其主要設計思想是通過暴力搜索,找到一種Block頭部組合(通過調整nonce)使得嵌套的SHA256單向散列值輸出小於一個特定的值(Target)。

這個演算法是計算密集型演算法,一開始從CPU挖礦,轉而為GPU,轉而為FPGA,轉而為ASIC,從而使得算力變得非常集中。

算力集中就會帶來一個問題,若有一個礦池的算力達到51%,則它就會有作惡的風險。這是比特幣等使用工作量證明演算法的系統的弊端。而以太坊則吸取了這個教訓,進行了一些改進,誕生了Ethash演算法。

Ethash演算法吸取了比特幣的教訓,專門設計了非常不利用計算的模型,它採用了I/O密集的模型,I/O慢,計算再快也沒用。這樣,對專用集成電路則不是那麼有效。

該演算法對GPU友好。一是考慮如果只支持CPU,擔心易被木馬攻擊;二是現在的顯存都很大。

輕型客戶端的演算法不適於挖礦,易於驗證;快速啟動

演算法中,主要依賴於Keccake256 。

數據源除了傳統的Block頭部,還引入了隨機數陣列DAG(有向非循環圖)(Vitalik提出)

種子值很小。根據種子值生成緩存值,緩存層的初始值為16M,每個世代增加128K。

在緩存層之下是礦工使用的數據值,數據層的初始值是1G,每個世代增加8M。整個數據層的大小是128Bytes的素數倍。

框架主要分為兩個部分,一是DAG的生成,二是用Hashimoto來計算最終的結果。

DAG分為三個層次,種子層,緩存層,數據層。三個層次是逐漸增大的。

種子層很小,依賴上個世代的種子層。

緩存層的第一個數據是根據種子層生成的,後面的根據前面的一個來生成,它是一個串列化的過程。其初始大小是16M,每個世代增加128K。每個元素64位元組。

數據層就是要用到的數據,其初始大小1G,現在約2個G,每個元素128位元組。數據層的元素依賴緩存層的256個元素。

整個流程是內存密集型。

首先是頭部信息和隨機數結合在一起,做一個Keccak運算,獲得初始的單向散列值Mix[0],128位元組。然後,通過另外一個函數,映射到DAG上,獲取一個值,再與Mix[0]混合得到Mix[1],如此循環64次,得到Mix[64],128位元組。

接下來經過後處理過程,得到 mix final 值,32位元組。(這個值在前面兩個小節《 009:GHOST協議 》、《 010:搭建測試網路 》都出現過)

再經過計算,得出結果。把它和目標值相比較,小於則挖礦成功。

難度值大,目標值小,就越難(前面需要的 0 越多)。

這個過程也是挖礦難,驗證容易。

為防止礦機,mix function函數也有更新過。

難度公式見課件截圖。

根據上一個區塊的難度,來推算下一個。

從公式看出,難度由三部分組成,首先是上一區塊的難度,然後是線性部分,最後是非線性部分。

非線性部分也叫難度炸彈,在過了一個特定的時間節點後,難度是指數上升。如此設計,其背後的目的是,在以太坊的項目周期中,在大都會版本後的下一個版本中,要轉換共識,由POW變為POW、POS混合型的協議。基金會的意思可能是使得挖礦變得沒意思。

難度曲線圖顯示,2017年10月,難度有一個大的下降,獎勵也由5個變為3個。

本節主要介紹了Ethash演算法,不足之處,請批評指正。

6. 區塊鏈 --- 共識演算法

PoW演算法是一種防止分布式服務資源被濫用、拒絕服務攻擊的機制。它要求節點進行適量消耗時間和資源的復雜運算,並且其運算結果能被其他節點快速驗算,以耗用時間、能源做擔保,以確保服務與資源被真正的需求所使用。

PoW演算法中最基本的技術原理是使用哈希演算法。假設求哈希值Hash(r),若原始數據為r(raw),則運算結果為R(Result)。

R = Hash(r)

哈希函數Hash()的特性是,對於任意輸入值r,得出結果R,並且無法從R反推回r。當輸入的原始數據r變動1比特時,其結果R值完全改變。在比特幣的PoW演算法中,引入演算法難度d和隨機值n,得到以下公式:

Rd = Hash(r+n)

該公式要求在填入隨機值n的情況下,計算結果Rd的前d位元組必須為0。由於哈希函數結果的未知性,每個礦工都要做大量運算之後,才能得出正確結果,而算出結果廣播給全網之後,其他節點只需要進行一次哈希運算即可校驗。PoW演算法就是採用這種方式讓計算消耗資源,而校驗僅需一次。

 

PoS演算法要求節點驗證者必須質押一定的資金才有挖礦打包資格,並且區域鏈系統在選定打包節點時使用隨機的方式,當節點質押的資金越多時,其被選定打包區塊的概率越大。

POS模式下,每個幣每天產生1幣齡,比如你持有100個幣,總共持有了30天,那麼,此時你的幣齡就為3000。這個時候,如果你驗證了一個POS區塊,你的幣齡就會被清空為0,同時從區塊中獲得相對應的數字貨幣利息。

節點通過PoS演算法出塊的過程如下:普通的節點要成為出塊節點,首先要進行資產的質押,當輪到自己出塊時,打包區塊,然後向全網廣播,其他驗證節點將會校驗區塊的合法性。

 

DPoS演算法和PoS演算法相似,也採用股份和權益質押。

但不同的是,DPoS演算法採用委託質押的方式,類似於用全民選舉代表的方式選出N個超級節點記賬出塊。

選民把自己的選票投給某個節點,如果某個節點當選記賬節點,那麼該記賬節點往往在獲取出塊獎勵後,可以採用任意方式來回報自己的選民。

這N個記賬節點將輪流出塊,並且節點之間相互監督,如果其作惡,那麼會被扣除質押金。

通過信任少量的誠信節點,可以去除區塊簽名過程中不必要的步驟,提高了交易的速度。
 

拜占庭問題:

拜占庭是古代東羅馬帝國的首都,為了防禦在每塊封地都駐扎一支由單個將軍帶領的軍隊,將軍之間只能靠信差傳遞消息。在戰爭時,所有將軍必須達成共識,決定是否共同開戰。

但是,在軍隊內可能有叛徒,這些人將影響將軍們達成共識。拜占庭將軍問題是指在已知有將軍是叛徒的情況下,剩餘的將軍如何達成一致決策的問題。

BFT:

BFT即拜占庭容錯,拜占庭容錯技術是一類分布式計算領域的容錯技術。拜占庭假設是對現實世界的模型化,由於硬體錯誤、網路擁塞或中斷以及遭到惡意攻擊等原因,計算機和網路可能出現不可預料的行為。拜占庭容錯技術被設計用來處理這些異常行為,並滿足所要解決的問題的規范要求。

拜占庭容錯系統

發生故障的節點被稱為 拜占庭節點 ,而正常的節點即為 非拜占庭節點

假設分布式系統擁有n台節點,並假設整個系統拜占庭節點不超過m台(n ≥ 3m + 1),拜占庭容錯系統需要滿足如下兩個條件:

另外,拜占庭容錯系統需要達成如下兩個指標:

PBFT即實用拜占庭容錯演算法,解決了原始拜占庭容錯演算法效率不高的問題,演算法的時間復雜度是O(n^2),使得在實際系統應用中可以解決拜占庭容錯問題
 

PBFT是一種狀態機副本復制演算法,所有的副本在一個視圖(view)輪換的過程中操作,主節點通過視圖編號以及節點數集合來確定,即:主節點 p = v mod |R|。v:視圖編號,|R|節點個數,p:主節點編號。

PBFT演算法的共識過程如下:客戶端(Client)發起消息請求(request),並廣播轉發至每一個副本節點(Replica),由其中一個主節點(Leader)發起提案消息pre-prepare,並廣播。其他節點獲取原始消息,在校驗完成後發送prepare消息。每個節點收到2f+1個prepare消息,即認為已經准備完畢,並發送commit消息。當節點收到2f+1個commit消息,客戶端收到f+1個相同的reply消息時,說明客戶端發起的請求已經達成全網共識。

具體流程如下

客戶端c向主節點p發送<REQUEST, o, t, c>請求。o: 請求的具體操作,t: 請求時客戶端追加的時間戳,c:客戶端標識。REQUEST: 包含消息內容m,以及消息摘要d(m)。客戶端對請求進行簽名。

主節點收到客戶端的請求,需要進行以下交驗:

a. 客戶端請求消息簽名是否正確。

非法請求丟棄。正確請求,分配一個編號n,編號n主要用於對客戶端的請求進行排序。然後廣播一條<<PRE-PREPARE, v, n, d>, m>消息給其他副本節點。v:視圖編號,d客戶端消息摘要,m消息內容。<PRE-PREPARE, v, n, d>進行主節點簽名。n是要在某一個范圍區間內的[h, H],具體原因參見 垃圾回收 章節。

副本節點i收到主節點的PRE-PREPARE消息,需要進行以下交驗:

a. 主節點PRE-PREPARE消息簽名是否正確。

b. 當前副本節點是否已經收到了一條在同一v下並且編號也是n,但是簽名不同的PRE-PREPARE信息。

c. d與m的摘要是否一致。

d. n是否在區間[h, H]內。

非法請求丟棄。正確請求,副本節點i向其他節點包括主節點發送一條<PREPARE, v, n, d, i>消息, v, n, d, m與上述PRE-PREPARE消息內容相同,i是當前副本節點編號。<PREPARE, v, n, d, i>進行副本節點i的簽名。記錄PRE-PREPARE和PREPARE消息到log中,用於View Change過程中恢復未完成的請求操作。

主節點和副本節點收到PREPARE消息,需要進行以下交驗:

a. 副本節點PREPARE消息簽名是否正確。

b. 當前副本節點是否已經收到了同一視圖v下的n。

c. n是否在區間[h, H]內。

d. d是否和當前已收到PRE-PPREPARE中的d相同

非法請求丟棄。如果副本節點i收到了2f+1個驗證通過的PREPARE消息,則向其他節點包括主節點發送一條<COMMIT, v, n, d, i>消息,v, n, d, i與上述PREPARE消息內容相同。<COMMIT, v, n, d, i>進行副本節點i的簽名。記錄COMMIT消息到日誌中,用於View Change過程中恢復未完成的請求操作。記錄其他副本節點發送的PREPARE消息到log中。

主節點和副本節點收到COMMIT消息,需要進行以下交驗:

a. 副本節點COMMIT消息簽名是否正確。

b. 當前副本節點是否已經收到了同一視圖v下的n。

c. d與m的摘要是否一致。

d. n是否在區間[h, H]內。

非法請求丟棄。如果副本節點i收到了2f+1個驗證通過的COMMIT消息,說明當前網路中的大部分節點已經達成共識,運行客戶端的請求操作o,並返回<REPLY, v, t, c, i, r>給客戶端,r:是請求操作結果,客戶端如果收到f+1個相同的REPLY消息,說明客戶端發起的請求已經達成全網共識,否則客戶端需要判斷是否重新發送請求給主節點。記錄其他副本節點發送的COMMIT消息到log中。
 

如果主節點作惡,它可能會給不同的請求編上相同的序號,或者不去分配序號,或者讓相鄰的序號不連續。備份節點應當有職責來主動檢查這些序號的合法性。

如果主節點掉線或者作惡不廣播客戶端的請求,客戶端設置超時機制,超時的話,向所有副本節點廣播請求消息。副本節點檢測出主節點作惡或者下線,發起View Change協議。

View Change協議

副本節點向其他節點廣播<VIEW-CHANGE, v+1, n, C , P , i>消息。n是最新的stable checkpoint的編號, C 2f+1驗證過的CheckPoint消息集合, P 是當前副本節點未完成的請求的PRE-PREPARE和PREPARE消息集合。

當主節點p = v + 1 mod |R|收到 2f 個有效的VIEW-CHANGE消息後,向其他節點廣播<NEW-VIEW, v+1, V , O >消息。 V 是有效的VIEW-CHANGE消息集合。 O 是主節點重新發起的未經完成的PRE-PREPARE消息集合。PRE-PREPARE消息集合的選取規則:

副本節點收到主節點的NEW-VIEW消息,驗證有效性,有效的話,進入v+1狀態,並且開始 O 中的PRE-PREPARE消息處理流程。
 

在上述演算法流程中,為了確保在View Change的過程中,能夠恢復先前的請求,每一個副本節點都記錄一些消息到本地的log中,當執行請求後副本節點需要把之前該請求的記錄消息清除掉。

最簡單的做法是在Reply消息後,再執行一次當前狀態的共識同步,這樣做的成本比較高,因此可以在執行完多條請求K(例如:100條)後執行一次狀態同步。這個狀態同步消息就是CheckPoint消息。

副本節點i發送<CheckPoint, n, d, i>給其他節點,n是當前節點所保留的最後一個視圖請求編號,d是對當前狀態的一個摘要,該CheckPoint消息記錄到log中。如果副本節點i收到了2f+1個驗證過的CheckPoint消息,則清除先前日誌中的消息,並以n作為當前一個stable checkpoint。

這是理想情況,實際上當副本節點i向其他節點發出CheckPoint消息後,其他節點還沒有完成K條請求,所以不會立即對i的請求作出響應,它還會按照自己的節奏,向前行進,但此時發出的CheckPoint並未形成stable。

為了防止i的處理請求過快,設置一個上文提到的 高低水位區間[h, H] 來解決這個問題。低水位h等於上一個stable checkpoint的編號,高水位H = h + L,其中L是我們指定的數值,等於checkpoint周期處理請求數K的整數倍,可以設置為L = 2K。當副本節點i處理請求超過高水位H時,此時就會停止腳步,等待stable checkpoint發生變化,再繼續前進。
 

在區塊鏈場景中,一般適合於對強一致性有要求的私有鏈和聯盟鏈場景。例如,在IBM主導的區塊鏈超級賬本項目中,PBFT是一個可選的共識協議。在Hyperledger的Fabric項目中,共識模塊被設計成可插拔的模塊,支持像PBFT、Raft等共識演算法。
 

 

Raft基於領導者驅動的共識模型,其中將選舉一位傑出的領導者(Leader),而該Leader將完全負責管理集群,Leader負責管理Raft集群的所有節點之間的復制日誌。
 

下圖中,將在啟動過程中選擇集群的Leader(S1),並為來自客戶端的所有命令/請求提供服務。 Raft集群中的所有節點都維護一個分布式日誌(復制日誌)以存儲和提交由客戶端發出的命令(日誌條目)。 Leader接受來自客戶端的日誌條目,並在Raft集群中的所有關注者(S2,S3,S4,S5)之間復制它們。

在Raft集群中,需要滿足最少數量的節點才能提供預期的級別共識保證, 這也稱為法定人數。 在Raft集群中執行操作所需的最少投票數為 (N / 2 +1) ,其中N是組中成員總數,即 投票至少超過一半 ,這也就是為什麼集群節點通常為奇數的原因。 因此,在上面的示例中,我們至少需要3個節點才能具有共識保證。

如果法定仲裁節點由於任何原因不可用,也就是投票沒有超過半數,則此次協商沒有達成一致,並且無法提交新日誌。

 

數據存儲:Tidb/TiKV

日誌:阿里巴巴的 DLedger

服務發現:Consul& etcd

集群調度:HashiCorp Nomad
 

只能容納故障節點(CFT),不容納作惡節點

順序投票,只能串列apply,因此高並發場景下性能差
 

Raft通過解決圍繞Leader選舉的三個主要子問題,管理分布式日誌和演算法的安全性功能來解決分布式共識問題。

當我們啟動一個新的Raft集群或某個領導者不可用時,將通過集群中所有成員節點之間協商來選舉一個新的領導者。 因此,在給定的實例中,Raft集群的節點可以處於以下任何狀態: 追隨者(Follower),候選人(Candidate)或領導者(Leader)。

系統剛開始啟動的時候,所有節點都是follower,在一段時間內如果它們沒有收到Leader的心跳信號,follower就會轉化為Candidate;

如果某個Candidate節點收到大多數節點的票,則這個Candidate就可以轉化為Leader,其餘的Candidate節點都會回到Follower狀態;

一旦一個Leader發現系統中存在一個Leader節點比自己擁有更高的任期(Term),它就會轉換為Follower。

Raft使用基於心跳的RPC機制來檢測何時開始新的選舉。 在正常期間, Leader 會定期向所有可用的 Follower 發送心跳消息(實際中可能把日誌和心跳一起發過去)。 因此,其他節點以 Follower 狀態啟動,只要它從當前 Leader 那裡收到周期性的心跳,就一直保持在 Follower 狀態。

Follower 達到其超時時間時,它將通過以下方式啟動選舉程序:

根據 Candidate 從集群中其他節點收到的響應,可以得出選舉的三個結果。

共識演算法的實現一般是基於復制狀態機(Replicated state machines),何為 復制狀態機

簡單來說: 相同的初識狀態 + 相同的輸入 = 相同的結束狀態 。不同節點要以相同且確定性的函數來處理輸入,而不要引入一下不確定的值,比如本地時間等。使用replicated log是一個很不錯的注意,log具有持久化、保序的特點,是大多數分布式系統的基石。

有了Leader之後,客戶端所有並發的請求可以在Leader這邊形成一個有序的日誌(狀態)序列,以此來表示這些請求的先後處理順序。Leader然後將自己的日誌序列發送Follower,保持整個系統的全局一致性。注意並不是強一致性,而是 最終一致性

日誌由有序編號(log index)的日誌條目組成。每個日誌條目包含它被創建時的任期號(term),和日誌中包含的數據組成,日誌包含的數據可以為任何類型,從簡單類型到區塊鏈的區塊。每個日誌條目可以用[ term, index, data]序列對表示,其中term表示任期, index表示索引號,data表示日誌數據。

Leader 嘗試在集群中的大多數節點上執行復制命令。 如果復製成功,則將命令提交給集群,並將響應發送回客戶端。類似兩階段提交(2PC),不過與2PC的區別在於,leader只需要超過一半節點同意(處於工作狀態)即可。

leader follower 都可能crash,那麼 follower 維護的日誌與 leader 相比可能出現以下情況

當出現了leader與follower不一致的情況,leader強制follower復制自己的log, Leader會從後往前試 ,每次AppendEntries失敗後嘗試前一個日誌條目(遞減nextIndex值), 直到成功找到每個Follower的日誌一致位置點(基於上述的兩條保證),然後向後逐條覆蓋Followers在該位置之後的條目 。所以丟失的或者多出來的條目可能會持續多個任期。
 

要求候選人的日誌至少與其他節點一樣最新。如果不是,則跟隨者節點將不投票給候選者。

意味著每個提交的條目都必須存在於這些伺服器中的至少一個中。如果候選人的日誌至少與該多數日誌中的其他日誌一樣最新,則它將保存所有已提交的條目,避免了日誌回滾事件的發生。

即任一任期內最多一個leader被選出。這一點非常重要,在一個復制集中任何時刻只能有一個leader。系統中同時有多餘一個leader,被稱之為腦裂(brain split),這是非常嚴重的問題,會導致數據的覆蓋丟失。在raft中,兩點保證了這個屬性:

因此, 某一任期內一定只有一個leader
 

當集群中節點的狀態發生變化(集群配置發生變化)時,系統容易受到系統故障。 因此,為防止這種情況,Raft使用了一種稱為兩階段的方法來更改集群成員身份。 因此,在這種方法中,集群在實現新的成員身份配置之前首先更改為中間狀態(稱為聯合共識)。 聯合共識使系統即使在配置之間進行轉換時也可用於響應客戶端請求,它的主要目的是提升分布式系統的可用性。

7. 拼多多最後一刀老是出福卡

這屬於很多用戶感受到的通病。
在用戶參與拼多多砍一刀的過程里,存在著諸如顯示余額不透明、看不到變動等情況,這自然會讓用戶產生質疑。這也就意味著,消費者在平台規則下積極參與卻無進展時,可以合理懷疑平台存在流程不清晰甚至是虛假宣傳的問題,這種懷疑雖然暫時還沒有直接的證據,但作為利益相關方的拼多多也很難自證清白。
拼多多砍一刀事件並不是一個新鮮的話題,但為什麼到現在問題還沒有得到根本性的解決呢?拼多多到底是不是在利用演算法鑽法律漏洞,侵犯消費者合法權益?它有沒有「演算法作惡」、「大數據殺熟」?這些涉及專業、監管的問題將會隨著國內監管環境的成熟而逐漸明朗。
不管怎樣,希望拼多多方面能夠重視起對於消費者權益的保護,盡管現如今有很多的「漏洞」可以讓網路平台低成本獲客、吸引關注,但其中肯定是有著一些說不清道不明的地方,在有效監管落地之前,平台方不能抱有僥幸心理,還需要給自己上好「緊箍咒」才行。

8. pb ft演算法最大的容錯節點數量是什麼

咨詢記錄 · 回答於2021-06-26

9. 如何論證:「人工智慧不會引起倫理問題」這句話

人工智慧時代加速到來,演算法決策興起

第三次AI(人工智慧,以下簡稱AI)浪潮已經開啟。在技術層面,有演算法的進步。當1956年人工智慧開始起步的時候,人們更多是在說人工智慧;在第二次浪潮期間,機器學習成為主流;這一次則是深度學習,是能夠自我學習、自我編程的學習演算法,可以用來解決更復雜的任務。此外,計算能力的提升,包括現在的量子計算機,以及越來越普遍的大數據,對人工智慧的作用和價值也非常大,使得更復雜的演算法成為可能。在應用層面,從語音識別、機器翻譯到醫療診斷、自動駕駛,AI應用在不斷加深、不斷成熟,甚至已經開始超越人類,引發人們關於失業的擔憂。同時也讓人們開始期待具有通用智能的終極演算法。在商業層面,面對可預期的好處和利益,國內外主流的互聯網公司如騰訊、谷歌等都開始向AI看齊,AI領域的創業和投資在如火如荼地進行著。全球已經有超過1000家AI公司,市場規模增長空間是非常大的,未來八年內將超過350億美元。
在此背景下,各種互聯網服務中越來越多地看到人工智慧的影子,人們日益生活在演算法之下,演算法決策開始介入甚至主導越來越多的人類社會事務。比如,人們在互聯網上獲取的內容,諸如新聞、音樂、視頻、廣告等等,以及購買的商品,很多都是推薦引擎個性化推薦給用戶的,而不是有人在背後決策。再比如,在金融領域,演算法可以決定是否給某個用戶發放貸款,以及具體的貸款額度。此外,一家美國投資公司早在幾年前就開始研發管理公司的AI系統,招聘、投資、重大決策等公司事務都由這個AI系統來管理並決策。也許在未來,一家公司的成功不再主要依賴於擁有像喬布斯那樣偉大的CEO,而是一個足夠智能足夠強大的AI系統。更有甚者,英國、歐盟等都在大力推動人工智慧技術在政務和民生方面的更深應用,政府服務不僅是數字化,而且是智能化。
人工智慧倫理問題日益凸顯
人工智慧的持續進步和廣泛應用帶來的好處將是巨大的。但是,為了讓AI真正有益於人類社會,我們也不能忽視AI背後的倫理問題。
第一個是演算法歧視。可能人們會說,演算法是一種數學表達,是很客觀的,不像人類那樣有各種偏見、情緒,容易受外部因素影響,怎麼會產生歧視呢?之前的一些研究表明,法官在餓著肚子的時候,傾向於對犯罪人比較嚴厲,判刑也比較重,所以人們常說,正義取決於法官有沒有吃早餐。演算法也正在帶來類似的歧視問題。比如,一些圖像識別軟體之前還將黑人錯誤地標記為「黑猩猩」或者「猿猴」。此外,2016年3月,微軟公司在美國的Twitter上上線的聊天機器人Tay在與網民互動過程中,成為了一個集性別歧視、種族歧視等於一身的「不良少女」。隨著演算法決策越來越多,類似的歧視也會越來越多。而且,演算法歧視會帶來危害。一方面,如果將演算法應用在犯罪評估、信用貸款、僱傭評估等關切人身利益的場合,一旦產生歧視,必然危害個人權益。另一方面,深度學習是一個典型的「黑箱」演算法,連設計者可能都不知道演算法如何決策,要在系統中發現有沒有存在歧視和歧視根源,在技術上是比較困難的。
為什麼演算法並不客觀,可能暗藏歧視?演算法決策在很多時候其實就是一種預測,用過去的數據預測未來的趨勢。演算法模型和數據輸入決定著預測的結果。因此,這兩個要素也就成為演算法歧視的主要來源。一方面,演算法在本質上是「以數學方式或者計算機代碼表達的意見」,包括其設計、目的、成功標准、數據使用等等都是設計者、開發者的主觀選擇,設計者和開發者可能將自己所懷抱的偏見嵌入演算法系統。另一方面,數據的有效性、准確性,也會影響整個演算法決策和預測的准確性。比如,數據是社會現實的反映,訓練數據本身可能是歧視性的,用這樣的數據訓練出來的AI系統自然也會帶上歧視的影子;再比如,數據可能是不正確、不完整或者過時的,帶來所謂的「垃圾進,垃圾出」的現象;更進一步,如果一個AI系統依賴多數學習,自然不能兼容少數族裔的利益。此外,演算法歧視可能是具有自我學習和適應能力的演算法在交互過程中習得的,AI系統在與現實世界交互過程中,可能沒法區別什麼是歧視,什麼不是歧視。
更進一步,演算法傾向於將歧視固化或者放大,使歧視自我長存於整個演算法裡面。演算法決策是在用過去預測未來,而過去的歧視可能會在演算法中得到鞏固並在未來得到加強,因為錯誤的輸入形成的錯誤輸出作為反饋,進一步加深了錯誤。最終,演算法決策不僅僅會將過去的歧視做法代碼化,而且會創造自己的現實,形成一個「自我實現的歧視性反饋循環」。包括預測性警務、犯罪風險評估、信用評估等都存在類似問題。歸根到底,演算法決策其實缺乏對未來的想像力,而人類社會的進步需要這樣的想像力。
第二個是隱私憂慮。很多AI系統,包括深度學習,都是大數據學習,需要大量的數據來訓練學習演算法。數據已經成了AI時代的「新石油」。這帶來新的隱私憂慮。一方面,如果在深度學習過程中使用大量的敏感數據,這些數據可能會在後續被披露出去,對個人的隱私會產生影響。所以國外的AI研究人員已經在提倡如何在深度學習過程中保護個人隱私。另一方面,考慮到各種服務之間大量交易數據,數據流動不斷頻繁,數據成為新的流通物,可能削弱個人對其個人數據的控制和管理。當然,現在已經有一些可以利用的工具來在AI時代加強隱私保護,諸如經規劃的隱私、默認的隱私、個人數據管理工具、匿名化、假名化、差別化隱私、決策矩陣等等都是在不斷發展和完善的一些標准,值得在深度學習和AI產品設計中提倡。
第三個是責任與安全。霍金、施密特等之前都警惕強人工智慧或者超人工智慧可能威脅人類生存。但在具體層面,AI安全包括行為安全和人類控制。從阿西莫夫提出的機器人三定律到2017年阿西洛馬會議提出的23條人工智慧原則,AI安全始終是人們關注的一個重點,美國、英國、歐盟等都在著力推進對自動駕駛汽車、智能機器人的安全監管。此外,安全往往與責任相伴。如果自動駕駛汽車、智能機器人造成人身、財產損害,誰來承擔責任?如果按照現有的法律責任規則,因為系統是自主性很強的,它的開發者是難以預測的,包括黑箱的存在,很難解釋事故的原因,未來可能會產生責任鴻溝
第四個是機器人權利,即如何界定AI的人道主義待遇。隨著自主智能機器人越來越強大,那麼它們在人類社會到底應該扮演什麼樣的角色呢?自主智能機器人到底在法律上是什麼?自然人?法人?動物?物?我們可以虐待、折磨或者殺死機器人嗎?歐盟已經在考慮要不要賦予智能機器人「電子人」的法律人格,具有權利義務並對其行為負責。這個問題未來值得更多探討。此外,越來越多的教育類、護理類、服務類的機器人在看護孩子、老人和病人,這些交互會對人的行為產生什麼樣的影響,需要得到進一步研究。
構建演算法治理的內外部約束機制
一是合倫理的AI設計,即要將人類社會的法律、道德等規范和價值嵌入AI系統。這主要是電氣和電子工程師協會、英國等在提倡。可以分三步來實現。第一步是發現需要嵌入AI系統的規范和價值,存在道德過載和價值位階的問題,即哪些價值優先,哪些價值在後。第二步是將所發現的規范和價值加入AI系統,需要方法論,有自上而下和自下而上兩種路徑。第三步是對已經嵌入AI系統的規范和價值進行評估,看其是否和人類社會的相一致。一方面是使用者評估,需要建立對AI的信任,比如當AI系統的行為超出預期時,要向用戶解釋為什麼這么做。另一方面是主管部門、行業組織等第三方評估,需要界定價值一致性和相符性標准,以及AI可信賴標准。
但是需要解決兩個困境。其一是倫理困境。比如,在來不及剎車的情況下,如果自動駕駛汽車往前開就會把三個闖紅燈的人撞死,但如果轉向就會碰到障礙物使車上的五個人死亡。此時,車輛應當如何選擇?在面對類似電車困境的問題時,功利主義和絕對主義會給出不同的道德選擇,這種沖突在人類社會都是沒有解決的,在自動化的場景下也會遇到這樣的問題
其二是價值對接的問題。現在的很多機器人都是單一目的的,掃地機器人就會一心一意地掃地,服務機器人就會一心一意給你去拿咖啡,諸如此類。但機器人的行為真的是我們人類想要的嗎?這就產生了價值對接問題。就像Midas國王想要點石成金的技術,結果當他擁有這個法寶的時候,他碰到的所有東西包括食物都會變成金子,最後卻被活活餓死。為什麼呢?因為這個法寶並沒有理解Midas國王的真正意圖,那麼機器人會不會給我們人類帶來類似的情況呢?這個問題值得深思。所以有人提出來兼容人類的AI,包括三項原則,一是利他主義,即機器人的唯一目標是最大化人類價值的實現;二是不確定性,即機器人一開始不確定人類價值是什麼;三是考慮人類,即人類行為提供了關於人類價值的信息,從而幫助機器人確定什麼是人類所希望的價值。
二是在AI研發中貫徹倫理原則。一方面,針對AI研發活動,AI研發人員需要遵守一些基本的倫理准則,包括有益性、不作惡、包容性的設計、多樣性、透明性,以及隱私的保護,等等。另一方面,需要建立AI倫理審查制度,倫理審查應當是跨學科的,多樣性的,對AI技術和產品的倫理影響進行評估並提出建議。
三是對演算法進行必要的監管,避免演算法作惡。現在的演算法確實是越來越復雜,包括決策的影響都是越來越重大,未來可能需要對演算法進行監管。可能的監管措施包括標准制定,涉及分類、性能標准、設計標准、責任標准等等;透明性方面,包括演算法自身的代碼透明性,以及演算法決策透明性,國外現在已經有OpenAI等一些人工智慧開源運動。此外,還有審批制度,比如對於自動駕駛汽車、智能機器人等採用的演算法,未來可能需要監管部門進行事先審批,如果沒有經過審批就不能向市場推出。
四是針對演算法決策和歧視,以及造成的人身財產損害,需要提供法律救濟。對於演算法決策,一方面需要確保透明性,如果用自動化的手段進行決策決定,則需要告知用戶,用戶有知情權,並且在必要時需要向用戶提供一定的解釋;另一方面需要提供申訴的機制。對於機器人造成的人身財產損害,一方面,無辜的受害人應該得到救助;另一方面,對於自動駕駛汽車、智能機器人等帶來的責任挑戰,嚴格責任、差別化責任、強制保險和賠償基金、智能機器人法律人格等都是可以考慮的救濟措施。
在今天這個人工智慧快速發展,人類在諸如圍棋、圖像識別、語音識別等等領域開始落後於人工智慧的時代,對人工智慧進行倫理測試同樣重要,包括道德代碼、隱私、正義、有益性、安全、責任等等,都是十分重要的。現在的AI界更多是工程師在參與,缺乏哲學、倫理學、法學等其他社會學科的參與,未來這樣跨學科的AI倫理測試需要加強研究。因為在某種意義上我們已經不是在製造一個被動的簡單工具,而是在設計像人一樣具有感知、認知、決策等能力的事物,你可以稱其為「更復雜的工具」,但不可否認,我們需要確保這樣的復雜工具進入人類社會以後和人類的價值規范及需求相一致。

10. Lava是如何防止錢包節點的作惡行為的

為了防止錢包節點的作惡行為,Lava 在黑名單層引入了 CDF 演算法(Cumulative Difficulty Algorithm)。 從數學建模角度來講,這演算法將大大提高惡意節點的作惡成本。除此之外,Lava 的可信層具有額外的安全措施,通過在網路中將整個節點組成各個子集合的手段,最大程度上的保證安全性。

熱點內容
內置存儲卡可以拆嗎 發布:2025-05-18 04:16:35 瀏覽:333
編譯原理課時設置 發布:2025-05-18 04:13:28 瀏覽:374
linux中進入ip地址伺服器 發布:2025-05-18 04:11:21 瀏覽:609
java用什麼軟體寫 發布:2025-05-18 03:56:19 瀏覽:30
linux配置vim編譯c 發布:2025-05-18 03:55:07 瀏覽:105
砸百鬼腳本 發布:2025-05-18 03:53:34 瀏覽:940
安卓手機如何拍視頻和蘋果一樣 發布:2025-05-18 03:40:47 瀏覽:736
為什麼安卓手機連不上蘋果7熱點 發布:2025-05-18 03:40:13 瀏覽:800
網卡訪問 發布:2025-05-18 03:35:04 瀏覽:507
接收和發送伺服器地址 發布:2025-05-18 03:33:48 瀏覽:369