1. 程式人生 > >YC 帶你快速入門區塊鏈

YC 帶你快速入門區塊鏈

1

介 紹

如果你在這裡,我們假設你是一個受區塊鏈影響的開發者/黑客。 你確信你瞭解它是如何工作的,現在你很想知道區塊鏈對你和你所掌握的開發者技能的意義。

如果你需要更多的底氣,我們建議你先從比特幣白皮書和以太坊白皮書開始 。

我們在這篇文章中的目標是:

1)解釋區塊鏈開發與現有開發模式的區別

2)為這個領域的機遇和挑戰提供背景

3)給你指出資源,這將為你開始在這個新的正規化發展奠定基礎

2

開發人員的正規化轉變

網際網路應用受益於網路效應,因為它們維護著資訊集中的孤島。 基於共享的開放協議(例如TCP / IP,HTTP),像Yelp,Facebook和Amazon這樣的公司可以從一個地方獲得所有的使用者,最終獲得資料。 這樣,他們不僅比資料較少的競爭對手更具優勢,還能完全控制資料貨幣化的方式。用加密投資者Joel Monegro 的話來說,目前的網際網路範例通過胖應用層來捕獲其大部分價值,而精簡的基礎通訊協議則捕獲最小的價值。

或者,區塊鏈範例中的值分佈可以用胖協議和薄應用層來描述。由於密碼令牌的創新,這種模式轉換是可能的,USV的Albert Wenger對此有很好的描述:

“從歷史上來說,通過協議賺錢的唯一方式就是建立實現它的軟體,然後嘗試銷售這個軟體(或者最近的軟體)。然而,協議的建立者可以直接使用[密碼]令牌”貨幣化“,而且事實上會受益於其他人在協議之上建立業務。“

以前,網際網路開放通訊協議的建立者,主要是DARPA的研究人員和非營利性貢獻者,無法將財務激勵與協議開發結合起來。 相比之下,今天的協議建立者可以釋出“代幣”,比如比特幣和以太坊,代表了分散協議的價值。

Monegro認為 ,這種模式轉變影響了開發人員思考其應用程式的方式

:“共享開放資料與防止”贏者通吃“市場的激勵系統的結合改變了應用程式層的遊戲,並建立了一個全新的協議層的商業模式。“

3

以太坊

我們已經認識到,在區塊鏈範例中,開發人員可以通過協議創新來獲取價值。為了繼續我們的討論,我們回顧了區塊鏈技術是如何發展到最終迎合開發者的。

八年前,比特幣被認為是一種虛擬貨幣,去中心化的金融系統。實際上開發人員最初是通過在區塊鏈本身儲存資料來嘗試在比特幣區塊鏈上構建應用程式,但結果卻相當低效(如另一篇Joel文章所述 )。其中一位開發人員Vitalik Buterin對比特幣的固定態度和風險規避文化感到沮喪,因此他採用了新的開發友好功能。他建立了自己的平臺,以太坊。

雖然比特幣最初是作為金融儲值的新媒介而發明的,但是以太坊被髮明用作圖靈完整的開發環境。 在Ethereum中,開發人員使用Solidity程式語言編寫智慧合約,這些智慧合約在Ethereum虛擬機器(EVM)中執行。 在這裡,我們觀察到開發者有機會分叉和實現他們自己的區塊鏈以達到不同的目的。 但是,要做到這一點,需要重新開發現有區塊鏈技術以前實現的開發者支援和網路效應。 今天,建立在像以太坊這樣的現有網路的基礎上,開發人員不僅能夠成為自己的應用程式的利益相關者,而且還能夠成為潛在的協議。

4

Dapps,App Coins和Smart Contracts

今天的區塊鏈開發商經常在現有協議的基礎上建立分散的應用程式,以解決特定的市場和終端使用者的問題。在這樣做的過程中,開發人員可以發出令牌或應用程式硬幣,這些令牌用於執行dapp自己的某些“功能”,與Chuck-E-Cheese令牌用於特定目的(如skeeball)不同。 這些“功能”是一種“智慧合約”,它保證了dapp的服務以換取數字資產,從而消除了中間人確保交易的需要。換句話說,聰明的合同承諾一個Chuck-E-Cheese令牌可以交換一個skeeball遊戲。

隨著dapp的功能變得越來越受追捧,應用程式硬幣的數量隨著供求的增加而增加。換句話說,如果事實證明Chuck-E-Cheese的經驗是真正的卓越和高度要求的,那麼固定的代幣供應就變得更有價值了。這是通知所有ICO(初始硬幣產品)的基本原則,在這個原則中,dapp開發者通過提供應用程式硬幣來獲取資金來為他們的專案提供資金或請求投資。

但是,你可能會問:“為什麼不使用現有的令牌,而是先發布自己的,特定於dapp的令牌呢?”Dapp特定的應用程式使得小型經濟體可以實現應用程式的目的。 這些令牌作為稀缺資源,可以調整和管理,以更加緊密地與一個dapp的功能對齊。這就是以太坊重新開始的地方 - 開發者可以很容易地使用以太坊來發布自己的令牌。

5

早期的機會

在瞭解了dapps的基本機制的基礎上,仔細考慮分權將如何使終端使用者受益,這一點很重要。為了實現區塊鏈交換關係資料庫,我們敦促你考慮分權的好處,而不是跳入一個側面專案列表。例如,Augur建立預測市場,依靠分散的參與者做出正確的預測,因為他們分享財務激勵。

在元級別上,開發者堆疊中也有創新的機會。在網際網路早期,許多區塊鏈開發者將區塊鏈工具和框架的成熟度與網路的成熟度進行比較。我們與Stream的 Ben Yu交談,他把這個形容為開發者的一個新機遇:“讓這個領域更容易獲得成果,還需要建立大量的技術基礎設施,將從1994年就開始實施的區塊鏈帶到2017年的網際網路。“

隨著區塊鏈的創新,許多人認識到有機會建立一個不依賴於中央政府或公司實體的新的分散的網路堆疊。傳統的Web棧由TCP / IP,DNS,資料庫,Web伺服器,身份驗證系統和CDN等構建塊組成,我們正在使用Ethereum等平臺作為基礎層複製這些元件。

6

不變性的挑戰

不幸的是,像JavaScript早期迭代的技術肯定會遇到挑戰,其中最明顯的是與新協議的不可變性有關。開發人員不能更改底層區塊鏈或更高級別的智慧合約,庫或合同不容易版本化。 最近鎖死了1.5億美元資金的 Parity漏洞,以及其他許多類似事件,提醒我們迫切需要構建“面向未來的”架構。

0x的工程師布蘭登·米爾曼(Brandon Millman)描述了區塊鏈不可變性如何影響他對安全問題的看法:“在這個空間意味著需要更加謹慎,特別是因為人們的錢處於風險中。 區塊鏈正規化的好處之一在於,如果你持有私人金鑰,人們很難從你那裡拿錢,但是很多騙局讓你自願把錢寄到錯誤的地方而不是從你的錢包裡偷錢“。

開發人員,特別是習慣了創業世界快節奏的開發人員,不得不考慮速度和安全性之間的權衡。 正如Stream的Ben Yu所描述的那樣,“你必須快速行動,因為這個空間正在快速地發展,但是你不能快速地移動和破壞事物,這是現在傳統的發展哲學。如果你破壞東西,你就會損失數億美元。“

在區塊鏈上構建需要不同級別的計劃。開發人員不能再應用熱修復或通宵修補,因為他們不再對整個系統進行集中控制。相反,引入系統更改通常涉及硬分叉整個協議,或者在某些情況下為協議引數提供單獨的源,而這些引數不直接與區塊鏈繫結。

7

以太坊的侷限性

除了不可變性的挑戰之外,開發人員還可能面臨以太坊的幾個侷限。一方面,以太坊無法訪問區塊鏈以外的實時資料。開發人員需要依靠可信賴的第三方資料提供商( 稱為oracles )來提供與天氣、隨機數或貨幣價值等外部資訊的智慧合約。

此外,Ethereum的規範不支援實時計算。處理大宗交易需要15秒鐘(與比特幣10分鐘相比,閃電般快速)。因此,開發人員需要編寫具有前端框架的非同步程式碼,以便相應更新狀態(如React)。

通過以太坊,你也可以通過氣體轉化為以太坊的乙太網來支付你的交易。 因此,使用當前版本的Solidity,如果你打算執行的計算過於昂貴(例如在國際象棋遊戲中驗證同住者),則可以非常可行地發現自己達到了交易限制。結果,鏈上計算因為在金錢和網路頻寬方面變得昂貴,像Truebit這樣有趣的替代方案可以執行更密集的計算外鏈。

8

入 門

一般來說,進入這個領域肯定會感到顛覆性的。這是一個跨學科的領域,跨越經濟學領域、博弈論、金融學、電腦科學、數學、密碼學等等。 但是,這也意味著有很多貢獻的空間。

0x的Brandon建議你潛入有興趣或有經驗的領域,而不是試圖一次性學習所有東西:“如果你事先做了JS開發,那麼你可以貢獻很多JS庫。 雖然最終你肯定需要知道(所有的東西如何結合在一起),但是你不需要在最初就學完整個過程。“

本著分享的精神,區塊鏈專案的大部分程式碼也可以通過開源獲得。有一些很好的資源幫助你上手:

1)官方的Solidity文件

2)Truffle框架

3)瞭解如何在zeppelinOS庫

4)Blockgeeks還提供了一個深入的以太坊代幣指南

5)你甚至可以從Crypto Kitties學習,並在區塊鏈上建立自己的數字遊戲。

另外,開發人員社群也非常有幫助。 檢視:

如果你主要通過編寫你自己的專案來學習,下面是一些開始的想法:

1)建立自己的錢包。 它可以是一個網路,移動應用程式或桌面應用程式。

2)建立自己的ERC-20令牌並將其部署在測試網上。

3)修改加密小貓(狗,坦克,殭屍…),並將其部署在測試網上。

9

期 待

是的,在目前的情況下,區塊鏈發展是混亂的,沒有現代網路開發中存在的類似的乾淨的框架和工具。 但是為什麼不把區塊鏈的新生狀態看作是一個影響模式轉換技術的機會呢?

在區塊鏈上,你不需要部署任何中央伺服器,這意味著沒有單點故障。如果你的整個堆疊是分散的,沒有可信任的第三方參與,使其審查是抵制的,你的資料庫是可公開驗證的。由於新模式提供了公開分享資料的機會,因此我們觀察到分散資料庫的最大優勢。這是我們在區塊鏈建設的未來,通過切斷中間商系統分配資訊和權力。

以下是我們的社群介紹,歡迎各種合作、交流、學習:)