面向區(qū)塊鏈開發(fā)

正在看這篇文章的你殃姓,應該是一名被區(qū)塊鏈技術所吸引的開發(fā)者或者極客。我相

信你已經理解了區(qū)塊鏈的技術原理,并急切地想要搞清楚這項技術將為你和你的

開發(fā)技術棧帶來怎樣的影響调榄。

如果你需要更基礎的區(qū)塊鏈技術介紹愿伴,可以閱讀比特幣和以太坊的白皮書肺魁。?

這篇文章的目標是:

1. 解釋區(qū)塊鏈項目的開發(fā)和現有軟件開發(fā)模式的區(qū)別。

2. 提供上下文隔节,幫助你更好地思考該領域的機遇和挑戰(zhàn)鹅经。

3. 提供區(qū)塊鏈領域的基礎資源和資料,便于開發(fā)區(qū)塊鏈項目怎诫。

開發(fā)模式的轉變

互聯網的網絡效應產生了大量的中心化的數據瘾晃,這些數據促進了互聯網應用的發(fā)

展。受惠于共享開放的網絡協議(比如 TCP/IP,HTTP)幻妓,諸如 Yelp蹦误,Facebook

和 Amazon 這樣的公司得以把自己的用戶——當然也包括用戶產生的數據——集

中存儲在自己的服務器上。這樣一來肉津,這些互聯網巨頭們除了比用戶量小的企業(yè)

更有優(yōu)勢之外强胰,他們還對自己所擁有的海量用戶數據如何變現有著 100% 的控制

權。用數字貨幣投資者 Joel Monegro 的話說就是妹沙,現有的互聯網模式使得絕大

部分的價值被應用層所攫取偶洋,而應用層的基礎,也就是底層的協議層則獲利很少

(即距糖,“胖”應用層玄窝,“瘦”協議層模式)。

相反悍引,區(qū)塊鏈技術帶來的價值分布模式哆料,可以被理解為是一種“胖”協議

層,“瘦”應用層的模式吗铐。正是密碼學貨幣的創(chuàng)新东亦,使得這種模式成為可能。正

如 USV 的 Albert Wagner 所說:

“一直以來,靠協議賺錢的方式只有一種典阵,那就是基于該協議開發(fā)軟件并出售

(當然最近都轉為出租了)… 然而密碼學貨幣則提供了一種直接在協議層變

現的可能奋渔,并且隨著基于該協議的應用越來越豐富,底層協議的變現能力也會

隨之越來越強壮啊,反映在數字貨幣上就是價格越來越高嫉鲸。”

從前那些互聯網開放協議的開發(fā)者們歹啼,也就是 DARPA 網的研究員們或者那些無償

的貢獻者們玄渗,并不會因為開放協議的發(fā)展或基于其上的應用越來越多,而獲得直

接的經濟回報狸眼。不同的是藤树,現在的協議開發(fā)者們可以直接發(fā)行數字貨幣了,比如

比特幣或以太幣拓萌,而這些數字貨幣則直接代表了去中心化協議的價值岁钓。

Joel Monegro 相信,區(qū)塊鏈技術所帶來的這種模式上的轉變微王,將促使開發(fā)者重新

審視自己的應用屡限。“數據的開放共享和內生激勵機制的結合炕倘,最終會終結“贏者

通吃”的市場現象钧大。這將改變應用層的游戲規(guī)則,并且催生一批有著全新業(yè)務模

型的公司罩旋。而這些公司業(yè)務模型的不同將主要集中在協議層拓型。”

以太坊

前面的討論帶給我們的結論是:區(qū)塊鏈技術帶來的創(chuàng)新讓開發(fā)者們可以直接在協

議層獲得價值瘸恼。接下來我們將繼續(xù)討論劣挫,區(qū)塊鏈技術是如何朝著開發(fā)者友好的方

向演進的。8 年前东帅,一種無需中心化金融機構背書的數字貨幣出現了压固,它就是現

在人們耳熟能詳的比特幣。一開始靠闭,開發(fā)者們試圖將數據直接存儲在比特幣的區(qū)

塊鏈上來開發(fā)應用帐我,結果表明,這種方式非常低效(Joel 的這篇文章是個很好的

例子)愧膀。其中一位開發(fā)者 Vitalik Buterin 實在是受夠了比特幣對于新特性極端

謹慎和保守的態(tài)度拦键,于是他開發(fā)了一個新的區(qū)塊鏈平臺以太坊(Ethereum)。

比特幣的初衷是創(chuàng)造一種新的價值存儲的媒介檩淋。以太坊則是為了實現一個圖靈完

備的區(qū)塊鏈開發(fā)平臺芬为。在以太坊網絡中萄金,開發(fā)者們可以使用 Solidity 這門編程

語言編寫智能合約,這些合約則由以太坊虛擬機(EVM)來運行媚朦。從 Vitalik

Buterin 的例子中我們不難看出氧敢,開發(fā)者們完全可以開發(fā)一個全新的區(qū)塊鏈網

絡,以此來滿足自己多樣的需求询张。當然孙乖,從頭開發(fā)新的區(qū)塊鏈網絡也有缺點,比

如你要從頭開始構建開發(fā)者社區(qū)份氧。但直接在類似以太坊這類成熟的網絡上開發(fā)唯袄,

則沒有這樣的問題。而且一個顯著的不同是蜗帜,開發(fā)基于區(qū)塊鏈網絡的應用恋拷,開發(fā)

者不僅會是這個應用的所有者,也會成為因此而繁榮的底層協議的直接受益人钮糖。

去中心化應用(Dapps)梅掠,代幣和智能合約

現在的開發(fā)者們基于現有的區(qū)塊鏈協議(比如以太坊)開發(fā)出了滿足不同用戶需

求的去中心化應用(dapp)酌住。開發(fā)者一般會在 dapp 中發(fā)行自己的代幣

(token)店归,用戶可以通過消耗代幣來讓 dapp “執(zhí)行”相應的操作來實現某

個“功能”。代幣其實并不神秘酪我,你可以把它想象成人們在商場的電玩世界里買

的游戲幣消痛。這些通過“智能合約”實現的“功能”通過收取一定的費用(代

幣),使得 dapp 可以在不依賴第三方的情況下對外提供可靠的服務都哭。用游戲幣

來類比就是秩伞,只要有足夠的游戲幣,你隨時都可以把游戲幣塞到籃球機里玩一

局欺矫!

一般情況下纱新,代幣的總量是固定的,因此隨著某個 dapp 提供的服務越來越流

行穆趴,基于簡單的供需原理脸爱,代幣的價格肯定會水漲船高∥疵茫基于這個邏輯簿废,dapp 的

開發(fā)者們往往通過發(fā)售代幣的方式來募集開發(fā)資金(而不是通過傳統的融資渠

道),這一過程的另一個眾所周知的名字就是 ICO(初始代幣銷售)络它。

看到這里你可能會問族檬,“為什么每個 dapp 都要發(fā)行專用的代幣,而不是用現成

的化戳,比如以太幣(eth)呢单料?”。這個不難解釋,因為專用的代幣利于特定應用生

態(tài)里的小微經濟看尼。換句話說递鹉,專用的代幣可以針對應用的特定功能和需求作出靈

活的調整,如此一來藏斩,這個代幣就能更好地服務于這款 dapp躏结。說到這里,我們不

得不提到以太坊(Ethereum)狰域。以太坊正是這么一個讓 dapp 開發(fā)者們可以方便

地發(fā)行代幣的平臺媳拴。

早期機會

有了上述這些對于 dapp 底層機制的理解,接下來你應該思考這么一個問題了:

去中心化到底會給你的用戶帶來什么價值兆览?我們希望你可以先想清楚上面這個問

題屈溉,而不是一上來就開始急著“去中心化”現有的產品。舉個例子抬探,Augur 這款

產品依靠區(qū)塊鏈技術實現了一個預測市場子巾。為什么要用區(qū)塊鏈技術實現?正是因

為這項技術帶來的鼓勵誠實的經濟激勵機制小压,使得散布在世界各地的參與者因此

而能夠作出更準確的預測线梗。

在開發(fā)者層面,區(qū)塊鏈技術也帶來了一次技術棧的創(chuàng)新機會〉∫妫現有區(qū)塊鏈的開發(fā)

者們很喜歡把現在的情形跟互聯網早期做類比仪搔,那個時候各種開發(fā)工具和框架都

還不夠完善,而現在的區(qū)塊鏈開發(fā)領域正是如此蜻牢。來自 Stream 的 Ben Yu 認為

這是開發(fā)者的新機會:“很多看起來是舉手之勞的基礎工作亟待完成烤咧,如果說區(qū)

塊鏈技術社區(qū)的現狀很像 1994 年的互聯網的話,那么抢呆,為了將其演進到 2017

年的互聯網煮嫌,還要完成很多基礎架構工作”。

由于區(qū)塊鏈技術的創(chuàng)新抱虐,很多人已經看到了創(chuàng)建全新的昌阿、去中心化的網絡棧的機

會。這種全新的網絡棧將不再依賴中心化的政府或公司梯码。傳統的網絡棧由

TCP/IP宝泵,DNS,數據庫轩娶,網絡服務器儿奶,鑒權系統和 CDN 這些基礎組件構成,而現

在鳄抒,我們有機會通過類似于以太坊這樣的平臺闯捎,用去中心化的方式椰弊,重新實現傳

統網絡棧中的各個組件。

“不可篡改”帶來的挑戰(zhàn)

就像早期的 Javascript 技術一樣瓤鼻,區(qū)塊鏈技術演進的過程必然伴隨著各式各樣

的挑戰(zhàn)秉版。其中最大的挑戰(zhàn)之一,也是區(qū)塊鏈技術最突出的特性茬祷,那就是“不可篡

改”清焕。由于這個特性,開發(fā)者們無法更改底層的區(qū)塊鏈祭犯,也無法更改頂層的智能

合約秸妥,對基礎庫和合約進行版本控制也非常困難。最近 Parity 的一個 bug 直接

導致了價值 1.5 億美金的以太幣被鎖沃粗。諸如此類的事故不斷地提醒我們粥惧,構建經

得住未來考驗的架構是非常重要的。

關于這種不可篡改性對業(yè)務安全所帶來的影響最盅,來自 0x 項目的開發(fā)者 Brandon

Millman 跟我們分享了他的看法:“跟傳統項目相比突雪,在這個領域做開發(fā)意味著

你要加倍小心,因為任何問題都將直接影響用戶數字資產的安全涡贱。一直以來咏删,區(qū)

塊鏈技術對于私有財產的有力保護廣為人知,也就是說盼产,只要你安全地控制著私

鑰饵婆,理論上沒有人可以偷走你的資產勺馆。但這個領域更多的偷竊行為并不是通過直

接盜取用戶的私鑰來實施的戏售。騙子們更多地是通過誘騙的方式,讓用戶將數字資

產轉移到他們的錢包草穆,最終達成行竊的目的灌灾。”

開發(fā)者們悲柱,尤其是那些來自創(chuàng)業(yè)公司習慣了快節(jié)奏開發(fā)的開發(fā)者們锋喜,不得不停下

來思考如何在速度和安全性之間找到平衡。就像來自 Stream 的 Ben Yu 說的那

樣:“開發(fā)者們普遍推崇的一個原則是:move fast and break things. 這句話

在區(qū)塊鏈領域只有前半句成立豌鸡。這個領域的發(fā)展日新月異嘿般,所以你必須 move

fast 才不至于被競爭對手超越,但 break things 則意味著成千上萬的金錢損

失涯冠÷”

區(qū)塊鏈領域的開發(fā)需要更加周密的計劃。由于開發(fā)者對于整個系統缺少中心化的

控制蛇更,因此 dapp 是很難像傳統應用那樣做快速熱修復的瞻赶。相反的赛糟,在區(qū)塊鏈世

界要想做系統級別的變更,則往往意味著整個協議的硬分叉砸逊。

以太坊的局限性

除了上面講到的“不可篡改”帶來的挑戰(zhàn)璧南,開發(fā)者在以太坊網絡上還可能碰到一

些其他限制。比如师逸,以太坊網絡不支持通過外部調用的方式獲取自身區(qū)塊鏈以外

的數據司倚。開發(fā)者們需要依賴第三方數據提供商來向智能合約注入外部數據,這類

數據提供商也常常被稱作預言機(Oracle)篓像。

除此之外对湃,以太坊的性能不足以支持實時計算。以太坊網絡中區(qū)塊的處理時間長

達 15 秒(跟比特幣網絡的 10 分鐘比起來已經很快了)遗淳。因此拍柒,開發(fā)者們需要

寫一些異步代碼來進行狀態(tài)的更新(這一點跟 React 很像)。

同時屈暗,在以太坊網絡中拆讯,合約執(zhí)行的每一步都需要消耗 gas,而 gas 最終會以以

太幣(eth)進行結算养叛。因此种呐,開發(fā)者們可能經常會碰到由于 gas 設置過低,導

致計算無法完成的情況(比如這款象棋游戲)弃甥。也就是說爽室,以太坊的“鏈上計

算”是非常昂貴的,同時也非常消耗帶寬淆攻。因此阔墩,市面上也產生了一些像

Truebit 這類旨在降低計算成本的“鏈下計算”服務。

如何開始

簡單來說瓶珊,這是一個令人嘆為觀止的領域啸箫。區(qū)塊鏈技術是交叉學科的典型代表,

這一技術涉及了經濟學伞芹、博弈論忘苛、金融學、計算機科學唱较、數學扎唾、密碼學等眾多學

科領域。而交叉學科往往也意味著南缓,有很多基礎工作需要完成胸遇。

對于區(qū)塊鏈領域的新人,來自 0x 項目團隊的 Brandon 給的建議是西乖,選擇自己感

興趣或跟自身經歷相關的領域為切入點狐榔,而不是一上來就想吃成大胖子:“如果

你之前做的是 JS 開發(fā)工作坛增,那么這個領域有非常多的 JS 庫需要你這樣的人來

完善。假以時日薄腻,在開發(fā)過程中收捣,你就會逐漸理解并熟悉這一領域。你無須有完

成一門課程才能入門的負擔庵楷“瞻”

正如區(qū)塊鏈技術所宣揚的“去中心化”思想那樣,這一領域的絕大多數項目的代

碼都是開源的尽纽。下面就列出了一些可以讓你快速上手的資源:

· Solidity 官方文檔 是學習這門語言的很好的開始咐蚯。

· Truffle 框架 是 solidity 最好的開發(fā)框架之一。

· 在 zeppelinOS 代碼庫 里可以看到很多知名的開源庫弄贿。

· Blockgeeks 提供了一個詳細的 以太坊代幣開發(fā)指引春锋,并附有一些代碼示例和

抽象概念。

· 你也可以從火爆全網的 Crypto Kitties 那里學習 如何在區(qū)塊鏈上創(chuàng)建自己的

游戲差凹。

如果你想做一些項目練手期奔,也許下面這些主意不錯:

· 創(chuàng)建自己的錢包應用∥D颍可以是網頁版呐萌,移動版或桌面版

· 發(fā)行自己的 ERC-20 代幣,并部署在測試網絡上谊娇。

· 改一改 crypto kitties 的代碼(比如改成狗肺孤,坦克,僵尸)并部署在測試網

絡上济欢。

展望未來

目前看來赠堵,我們必須承認,圍繞區(qū)塊鏈的開發(fā)一團亂麻船逮。跟現有成熟的網絡開發(fā)

相比顾腊,區(qū)塊鏈領域還沒有好用的框架和工具粤铭。但換個角度想挖胃,這種早期的混亂,

正是一個機會梆惯,更重要的是酱鸭,這是一個極有可能帶來開發(fā)模式巨變的機會。

在區(qū)塊鏈上垛吗,你不需要部署任何中心化的服務器凹髓,這就意味著單點失敗的風險為

零。如果你的整個技術棧都是去中心化的怯屉,那么就不需要引入“可信”的第三

方蔚舀,而沒有第三方則意味著可以 100% 對抗審查饵沧。區(qū)塊鏈技術帶來了數據開放的

新機會,基于區(qū)塊鏈的去中心化數據庫未來可期赌躺。

有了區(qū)塊鏈技術狼牺,我們可以預見這樣一個未來世界:一個沒有中間人,并且信息

和權利被系統性地分散開來的世界礼患。

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末是钥,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子缅叠,更是在濱河造成了極大的恐慌悄泥,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件肤粱,死亡現場離奇詭異弹囚,居然都是意外死亡,警方通過查閱死者的電腦和手機领曼,發(fā)現死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進店門余寥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人悯森,你說我怎么就攤上這事宋舷。” “怎么了瓢姻?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵祝蝠,是天一觀的道長。 經常有香客問我幻碱,道長绎狭,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任褥傍,我火速辦了婚禮儡嘶,結果婚禮上,老公的妹妹穿的比我還像新娘恍风。我一直安慰自己蹦狂,他們只是感情好,可當我...
    茶點故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布朋贬。 她就那樣靜靜地躺著凯楔,像睡著了一般。 火紅的嫁衣襯著肌膚如雪锦募。 梳的紋絲不亂的頭發(fā)上摆屯,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天,我揣著相機與錄音糠亩,去河邊找鬼虐骑。 笑死准验,一個胖子當著我的面吹牛,可吹牛的內容都是我干的廷没。 我是一名探鬼主播沟娱,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼腕柜!你這毒婦竟也來了济似?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤盏缤,失蹤者是張志新(化名)和其女友劉穎砰蠢,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體唉铜,經...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡台舱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了潭流。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片竞惋。...
    茶點故事閱讀 39,953評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖灰嫉,靈堂內的尸體忽然破棺而出拆宛,到底是詐尸還是另有隱情,我是刑警寧澤讼撒,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布浑厚,位于F島的核電站,受9級特大地震影響根盒,放射性物質發(fā)生泄漏钳幅。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一炎滞、第九天 我趴在偏房一處隱蔽的房頂上張望敢艰。 院中可真熱鬧,春花似錦册赛、人聲如沸钠导。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽辈双。三九已至,卻和暖如春柜砾,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背换衬。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工痰驱, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留证芭,地道東北人。 一個月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓担映,卻偏偏與公主長得像废士,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子蝇完,可洞房花燭夜當晚...
    茶點故事閱讀 44,901評論 2 355

推薦閱讀更多精彩內容