本文將從一名區(qū)塊鏈產(chǎn)品工作者的視角向大家說明厚棵,區(qū)塊鏈并不止眼前的
ICO和交易所最住,還有更多玩法有待發(fā)掘箭昵,過早地炒作可能是一種“捧殺”,
希望更多人能靜下心來挖掘實際應用場景下的可能性碍扔。
為什么會想到寫這個“區(qū)塊鏈遇上現(xiàn)實”系列瘩燥?
一方面是因為我本身是一名互聯(lián)網(wǎng)產(chǎn)品經(jīng)理且從 事的行業(yè)就是區(qū)塊鏈,從不溫不
火到大紅大紫只用了幾年的時間不同,即便我深信技術改變世界厉膀,也不由對這種“區(qū)
塊鏈現(xiàn)象”產(chǎn)生擔憂。我覺得有必要以一名區(qū)塊鏈產(chǎn)品工作者的視角向大家說
明套鹅,區(qū)塊鏈并不止眼前的ICO和交易所站蝠,還有更多玩法有待發(fā)掘,過早地炒作可
能是一種“捧殺”卓鹿,希望更多人能靜下心來挖掘實際應用場景下的可能性菱魔。
另外一方面,我習慣于通過寫作的方式將我的所學系統(tǒng)性地整理起來吟孙,技術并不
是我的擅長澜倦,我可能更愿意從實際需要來切入討論。畢竟對一名產(chǎn)品經(jīng)理而言杰妓,
無法實際應用起來的技術其實并不存在太多的討論價值藻治,而從應用場景來展開想
象,我們的技術演進可能會更有方向感和目標感巷挥。
相信沒有人可以否認桩卵,大部分人在現(xiàn)實生活中接觸到的第一個區(qū)塊鏈案例,就是
區(qū)塊鏈貨幣交易所倍宾。要想理解區(qū)塊鏈貨幣交易所雏节,我們先要討論一下傳統(tǒng)的銀行
是如何運作的。你給銀行一筆錢——做一筆存款高职,銀行日后會按照你的要求把錢
還給你钩乍。當然,銀行并不會把你的錢一直鎖在保險柜里怔锌,銀行只是答應寥粹,當你提
款的時候把錢給你,在這期間埃元,銀行通常會把錢用于投資涝涤。許多銀行會保留一部
分錢作為儲備金,保證人們來提款的時候亚情,有足夠的現(xiàn)金妄痪。許多銀行通常按存款
的固定比例來留存儲備金。
現(xiàn)在來談區(qū)塊鏈貨幣交易所楞件。就只從用戶使用的角度而言衫生,區(qū)塊鏈數(shù)字資產(chǎn)交易
所和銀行很想。交易所可以辦理數(shù)字資產(chǎn)(如比特幣)存款土浸,日后需要用錢的時
候罪针,可以到交易所提款。你還可以把法定貨幣(法幣黄伊,如美元等)存到數(shù)字資產(chǎn)
交易所泪酱,交易所承諾日后會按照你的要求把錢(法幣或某種數(shù)字資產(chǎn),或兩者都
有)還給你还最。也可以通過交易所辦理類銀行業(yè)務墓阀,例如,用比特幣付款或收款拓轻。
還可以通過交易所把虛擬貨幣兌換成法幣斯撮,或把法幣兌換成虛擬貨幣,或將兩種
虛擬貨幣進行相互兌換扶叉,交易所在該業(yè)務過程中通常起撮合作用勿锅,它們同時尋找
愿意兌換的人,并安排他們作為交易對手枣氧,如果交易對手對于匯率達成一致意
見溢十,交易所就促成這筆交易。
值得一提的是达吞,有許多人包括我自己张弛,一開始都會下意識地以為,作為去中心化
應用的典范酪劫,交易所中的每一筆交易都應該被記錄在區(qū)塊鏈上吞鸭,而事實卻恰好相
反。交易所不需要在區(qū)塊鏈里把虛擬貨幣從一個地址轉到另一個地址契耿。交易所只
是修改了與你的合約瞒大,交易前,它說“我們日后會還給你15000美元和3個比特
幣”搪桂;交易完成后透敌,它說“我們日后會還給你3000美元和5個比特幣”。所以踢械,
交易前后酗电,比特幣并沒有真正在區(qū)塊鏈中移動,只是你和銀行的合約變化了而
已内列。對于你的交易對手而言亦是如此撵术。
由交易所生成的合約地址并非區(qū)塊鏈公鑰
在交易所中,懂得投資的人會試圖從復雜程度極高的交易撮合的各項參數(shù)中找到
商機话瞧,就像當初從股市中獲利一樣嫩与。有人通過不同的交易撮合策略配比來組合自
己的投資寝姿,而非簡單地買入和售出,但老實說划滋,預估市場并非一件容易的事情饵筑,
這往往需要敏捷地市場觀察能力。甚至有人使用深度學習這樣的方式來完成自動
化的投資——如阿爾法貓处坪,它能像阿爾法狗一樣學習交易所中的K線圖/深度圖
/均線等參數(shù)根资,不斷糾正自己的投資策略來達到正常人類達不到的收益回報率。
復雜的交易所參數(shù)
還有同窘,隨著交易所的數(shù)量增長玄帕,像比特幣類似的區(qū)塊鏈貨幣在不同交易所的價格
是存在一定差異的,這也很正常想邦,交易所中某個幣種的價格受交易所交易撮合結
果的直接影響裤纹,而誰也無法保證不同交易所中的價格認知都時刻保持一致。那么
問題來了案狠,哪個交易所的價格才可以用來代表比特幣的最新價格呢服傍?事實上,這
個問題并不會對比特幣的價格產(chǎn)生過大的影響骂铁,因為區(qū)塊鏈貨幣的去中心化特
質吹零,一旦A交易所中比特幣的價格高于B交易所中的,就會有人從B交易所購買比
特幣拉庵,并且轉入A交易所中高價賣出灿椅,這會使得兩個交易所中的比特幣價格趨
同,當然钞支,還需要考慮到轉幣的手續(xù)費是否可以被利潤cover掉茫蛹。
前面提到,交易所中的地址并非區(qū)塊鏈上的公鑰烁挟,而是使用了一種叫做錢包服務
器的技術生成并分配給用戶的婴洼,如果用戶通過Txhash或者其他方式在區(qū)塊鏈上查
詢從個人錢包轉入到交易所錢包的一筆轉賬,就會發(fā)現(xiàn)區(qū)塊上的轉入地址并非交
易所提供的地址撼嗓,事實上柬采,這個地址是交易所的收款公鑰(為了和大家所知的交
易所地址區(qū)分)。實際的流程是且警,用戶從個人錢包轉帳給了交易所的收款公鑰粉捻,
交易所再將與這一筆轉賬的金額相同數(shù)量的虛擬貨幣分配到用戶的賬戶下,這個
時候斑芜,它又從一個區(qū)塊鏈實體變成了一個數(shù)字肩刃,真正的區(qū)塊鏈實體保存在了交易
所的錢包中。
黑客通常喜歡將黑手伸向這些囤積有大量虛擬貨幣的交易所錢包,一旦交易所錢
包失竊盈包,那對交易所會是個莫大的打擊沸呐,甚至萬劫不復。為了應對這種情況续语,有
人開發(fā)出了多種方案垂谢,其中還運用了許多密碼學的知識厦画。冷存儲和熱存儲疮茄,是目
前較為流行的做法。
冷儲存與熱儲存
前面我們提到根暑,交易所會把區(qū)塊鏈貨幣放在自己的服務器中力试,把區(qū)塊鏈貨幣放在
電腦里就像把錢放在錢包里帶著,這叫“熱儲存”排嫌,這很方便但不安全畸裳。而“冷
儲存”是離線的,把區(qū)塊鏈貨幣鎖在其他地方淳地,不聯(lián)入互聯(lián)網(wǎng)怖糊,所以相對安全和
保險,但顯然是不方便的颇象。這就像你帶著一些零錢出去伍伤,但是把終身積蓄鎖在保
險柜里的道理一樣。
要分開熱儲存和冷儲存遣钳,你也必須要用不同的私鑰扰魂,否則如果熱儲存被人破壞
了,冷儲存也會處于危險之中蕴茴。你也需要把幣在兩邊轉來轉去劝评,這樣兩邊都需要
知道對方的地址或公鑰。
因為冷儲存是離線的倦淀,所以熱儲存和冷儲存不需要上線就可以接收比特幣——熱
儲存端知道冷儲存端的地址蒋畜,所以它隨時可以給冷儲存轉賬。當你覺得你的錢包
里的錢太多的時候撞叽,你可以把一部分的幣轉到冷儲存姻成,但不需要讓冷儲存上線而
暴露自己。當然能扒,只要冷儲存上線佣渴,就可以接收到區(qū)塊鏈的轉賬信息,然后可以
隨意處理這些比特幣初斑。
但管理冷儲存有個小問題:一方面辛润,為了私密性和其他考慮,我們希望使用不同
的地址(這些地址有不同的密鑰)收款。所以我們把比特幣從熱儲存轉到冷儲存
的時候砂竖,要用一個新的冷儲存地址真椿。但是由于冷儲存不上線,所以熱儲存端必須
要能找到這樣的地址乎澄。
一個直接的方案是讓冷儲存一次性生成一批地址突硝,然后把地址列表發(fā)送給熱儲
存,熱儲存可以依次使用這些地址置济,當然解恰,這個方法的缺陷是為了傳送地址,我
們不得不經(jīng)常讓冷儲存端上線浙于,上線的過程中就存在與熱儲存端一樣的風險了护盈。
分層確定性錢包
還有一個比較有效的方法是分層確定性錢包。這個方法可以讓冷儲存端制造無限
量的地址數(shù)量羞酗,然后通過一個短暫的/一次性的交換腐宋,讓熱儲存端知曉所有地
址。但這需要使用密碼學的技巧檀轨。在分層確定性錢包中胸竞,我們
用“generateKeys”地址生成函數(shù)生成一個被稱為“地址生成信息”的東西;我
們也不只生成私鑰参萄,而是生成“私鑰生成信息”卫枝。有了地址生成信息,我們就可
以生成一系列地址拧揽。我們把地址生成信息和一個整數(shù)i作為地址生成函數(shù)的輸入
參數(shù)剃盾,就生成了i個對應地址。同樣淤袜,我們用私鑰生成信息來生成一系列私鑰痒谴。
對于每個i而言,第i 個地址和第i個私鑰相匹配——換言之铡羡,第i個私鑰控制第i
個地址的區(qū)塊鏈虛擬貨幣积蔚,這樣一來,我們就有一組彼此配對的公鑰和私鑰烦周。這
種方式的好處是:地址生成信息不會泄露關于私鑰本身的任何信息尽爆,這意味著你
可以放心的把地址生成信息給任何人。
了解了這樣的技術后读慎,接下去的過程就顯而易見:
1. 冷儲存端生成和保存私鑰生成信息和地址生成信息漱贱,然后將地址生成信
息一次性轉給熱儲存端,這個轉的過程中夭委,黑客即便獲取到地址生成信息
也不會暴露私鑰幅狮;
2. 當熱儲存端要給冷儲存端轉賬時,就通過地址生成信息
和“generateKeys”地址生成函數(shù)按次序生成新的地址;
3. 冷儲存端上線后崇摄,也會按順序生成地址擎值,然后查收相應地址收到的款
項,直到某一地址沒有收款為止逐抑;
4. 如果冷儲存端需要向熱儲存端轉賬鸠儿,它就會按順序生成私鑰序列。
分層確定性錢包有我們需要的所有特性:兩方都可以生成公鑰/私鑰序列厕氨,而且
這些公鑰/私鑰相互配對进每;而且,這種方法還具有另外一種我們尚未提及的特
性:當你向外提供這些公鑰時腐巢,這些公鑰之間沒有聯(lián)系品追,也就是說,別人無法斷
定這些公鑰來自同一個錢包冯丙。
分層確定性錢包的熱儲存端的安全性較低,但如果熱儲存端收到損害遭京,私鑰以及
區(qū)塊鏈虛擬貨幣仍然是安全的胃惜。通常,分層確定性錢包還支持任意多個安全等
級哪雕,當一家公司內部存在多種授權級別時船殉,就需要這種特性。
大腦錢包與助記詞
除了分層確定性錢包外斯嚎,還有一種通過密碼就可以支取數(shù)字資產(chǎn)的方式利虫,這被稱
之為“大腦錢包”。大腦錢包無需使用硬件/紙張或者其他長期儲存介質堡僻,這在
物理安全性較差的情況下(例如跨國出差/旅行時)非常有用糠惫。
大腦錢包的主要原理是用一個可預測的算法把一個口令變成一對公鑰/私鑰。但
是钉疫,如果有黑客知道了猜到了你的口令硼讽,他還是可以偷走你大腦錢包里的所有私
鑰。在計算機安全領域牲阁,我們通常假定黑客知道你生成密鑰的步驟固阁,黑客不知道
的只是你的口令。所以黑客可以嘗試使用不同的口令生成地址城菊,并在區(qū)塊中查看
這些地址上是否還存在未被使用的數(shù)字資產(chǎn)备燃,一旦發(fā)現(xiàn)數(shù)字資產(chǎn),黑客就可以迅
速把這些資產(chǎn)轉給自己凌唬,這種破解方式被稱之為離線猜測或者密碼破解并齐。因此,
設置口令密碼的難度就大大增加了,又要容易記冀膝,又要不容易被猜中唁奢。
這也就是助記詞的由來,從最常見的10000個英語詞匯中窝剖,隨機選擇6個詞麻掸,從而
生成大致80位長度的字節(jié)。這種方式會比隨機取字母容易記憶赐纱,因為這種方式生
成的口令通常是這樣的:
earth alloy dog okay till focusing
當然了脊奋,如果需要增加復雜度,可以選擇12個詞或更多疙描。需要記住的是诚隙,一旦用
戶忘記大腦錢包的口令,錢包里的數(shù)字資產(chǎn)就永遠取不出來了起胰,除非用戶還采取
了其他措施來保管私鑰久又。
前面我們提到了交易所最重要的幾個技術特點:
1. 數(shù)字資產(chǎn)存儲
2. 撮合交易
3. 加密錢包
許多交易所在這三個方面還會有各自的創(chuàng)新和技術選型,我只是根據(jù)我所了解的
程度介紹了最常見的幾種效五。把交易所比作銀行地消,交易所同樣也需要面對和銀行同
樣的風險問題:
第一類風險是擠兌。擠兌就是大家同時都去銀行提款畏妖,由于銀行只保
留一部分存款脉执,所以可能無法應付所有的提款要求。當銀行無法兌現(xiàn)的謠
言四起之時戒劫,大家開始恐慌半夷,然后更多人去銀行提錢,造成資金鏈斷裂迅细。
第二類風險是巫橄,銀行本身可能就是龐氏騙局。龐氏騙局的做法是不斷
借新還舊疯攒,從儲戶吸收存款嗦随,答應日后提供一定的收益,但實際上這筆錢
并沒有用于投資敬尺,而是勇于支付先前儲戶的收益枚尼,這類騙局最終必然會崩
潰。
第三類風險就是黑客入侵砂吞。由于交易所儲存大量數(shù)字資產(chǎn)署恍,所以交易
所需要非常小心地監(jiān)控軟件的安全性及其操作流程——例如,如何管理冷
熱儲存等蜻直。如果某個環(huán)節(jié)出了差錯盯质,用戶儲存在交易所的數(shù)字資產(chǎn)就會被
盜取袁串。
在歷史上,這三種風險造成交易所倒閉的案例都出現(xiàn)過呼巷。
目前交易所還沒有被納入到政府的監(jiān)管中囱修,因此不免有許多投資人會對交易所感
到不放心,但是銀行卻在政府監(jiān)管下存在了很久王悍,所以我們不妨站在政府監(jiān)管銀
行的角度來考慮政府應該如何監(jiān)管交易所破镰。
政府會要求銀行有一個最低準備金,在美國压储,銀行隨時要保留總儲蓄量的3%~
10%的現(xiàn)金來應付突發(fā)的提款要求鲜漩。政府通常還會對銀行的投資類別以及資金管
理方法進行監(jiān)管,政府要求銀行的資產(chǎn)投向低風險資產(chǎn)集惋。除此以外孕似,當一個遵紀
守法的銀行瀕臨破產(chǎn)時,銀行會償還儲戶一部分存款刮刑,甚至有時候充當“最后借
款人”的身份來給銀行提供貸款喉祭,知道銀行有足夠的資金可以周轉,從而渡過難
關为朋。
那么臂拓,交易所未來的監(jiān)管方式是否會是這樣的呢?也許不盡相同习寸,相較于“政府
背書”,交易所也需要尋求一種“共識背書”傻工,接受包括政府在內的任何機構和
個人的監(jiān)督霞溪,例如實現(xiàn)去中心化的交易所,這將是一個類似比特幣“自舉”的過
程中捆。有一種相對簡單的證明方式叫“準備金證明”鸯匹。
準備金證明包括兩方面內容:
證明交易所有多少準備金。這比較容易泄伪,交易所只需要發(fā)起一筆向自
己轉賬的交易殴蓬,轉賬的金額等于其公布的金額即可,然后向用戶說明這筆
交易的有效性蟋滴;
用同一個私鑰為一條查詢命令簽名染厅,這個查詢命令是公正的第三方隨
意發(fā)出的字符串,這樣就能證明出具準備金證明的人至少知曉該私鑰津函。
但僅僅這樣肖粮,也只能證明交易所“至少”有多少準備金,按照嚴格的方式尔苦,交易
所還需要公開儲蓄規(guī)模(即交易所的負債規(guī)模)涩馆,才能向投資人證明自己的準備
金比例是一個比較合理的比例行施,所有人都可以通過交易所公開的準備金證明和負
債證明來確認交易所的準備金比例。
這種方式雖然可以達到目的魂那,但是由于會泄露許多交易所信息蛾号,所以通常很少有
交易所愿意這么做,有一種叫“準備金”的協(xié)議可以解決這個問題涯雅,既可以證明
有償付能力鲜结,又不需要披露總負債和準備金規(guī)模。不過這個協(xié)議采用了更先進的
加密技術斩芭,相對來說比較復雜轻腺,這里不作贅述。
MtGox曾經(jīng)掌握比特幣世界90%的交易量划乖,但最終還是抵不住信任危機而倒閉贬养,監(jiān)
管從某種長遠意義上能夠幫助合理運營的交易所減少風險,但這只是我個人的愚
見琴庵。