■
“比特幣”“區(qū)塊鏈”是最近特別火的兩個詞。那么,比特幣到底是一種什么樣的“幣”呢?“區(qū)塊鏈”又是怎么回事呢?
簡單地說,“比特幣”(Bitcoin)是一種虛擬貨幣,和之前互聯(lián)網(wǎng)上各種虛擬游戲幣、點(diǎn)卡、Q幣有點(diǎn)像,但是“比特幣”最大的特點(diǎn)是基于區(qū)塊鏈(Blockchain)技術(shù)。
區(qū)塊鏈有三個基本特點(diǎn):1.使用密碼學(xué)的方式產(chǎn)生一串?dāng)?shù)據(jù),保證不被篡改;2.產(chǎn)生的數(shù)據(jù)同時在所有節(jié)點(diǎn)上使用同樣的算法產(chǎn)生數(shù)據(jù),大家互相認(rèn)可(分布式運(yùn)算);3.在數(shù)據(jù)交換傳遞過程中,通過一定的協(xié)議互相認(rèn)可,并把這一過程在所有的節(jié)點(diǎn)上記錄下來。

我們以比特幣為例,比特幣的發(fā)明人發(fā)明了一種規(guī)則,即通過密碼學(xué)的算法計(jì)算出一串?dāng)?shù)字,宣布這就是比特幣,所有用同樣方式運(yùn)算出數(shù)字的人都可以產(chǎn)生比特幣,但是必須讓所有使用比特幣的人都認(rèn)可,這個比特幣才會被承認(rèn),并且比特幣的每一次交換流通,都要在全體使用者中得到承認(rèn)才會有效。每個人都有一個小賬本,記錄著這個比特幣在哪產(chǎn)生、經(jīng)過幾次交換,并且這些過程都是被全體使用者認(rèn)可的,所以盡管比特幣是虛擬的,但它獲得了所有使用者的認(rèn)可,成為一種大家都公認(rèn)的交換介質(zhì),與傳統(tǒng)的銀行發(fā)行的貨幣一樣,有了信用貨幣的功能。

今天,我們就用小學(xué)生也會玩的micro:bit套件來打造一個自己的區(qū)塊鏈應(yīng)用,你很快就會明白各種“幣”是怎么回事了。
micro:bit是英國廣播公司(BBC)聯(lián)合很多企業(yè)推出的一個基于ARM Cortex-M0芯片的微型可編程計(jì)算機(jī),它設(shè)計(jì)的初衷是為了讓每個孩子都能零基礎(chǔ)地接觸計(jì)算機(jī)編程。整個micro:bit電路板比一張名片還小,上面有加速計(jì)、磁力計(jì)、光電傳感、藍(lán)牙、USB接口、一個由25個LED組成的5×5顯示屏、兩個可編程按鈕等,由USB口或外置電源供電,還具有藍(lán)牙和2.4G無線傳輸功能。有很多使用micro:bit打造的有趣項(xiàng)目,比如指南針、摩爾斯電碼發(fā)報(bào)機(jī)等。
●材料和工具清單:
兩塊或更多塊micro:bit主板;
micro:bit數(shù)據(jù)線;
一臺可以上網(wǎng)的電腦。
●制作過程:
第一步:首先了解一下micro:coin的設(shè)計(jì)原理
微軟micro:coin項(xiàng)目是微軟Makecode平臺的一個開源項(xiàng)目,它使用360行JavaScript代碼在micro:bit上實(shí)現(xiàn)了區(qū)塊鏈功能。只要把代碼拷到micro:bit里面就能運(yùn)行。
設(shè)定搖動是挖礦,這時會通過哈希算法產(chǎn)生一串?dāng)?shù)據(jù),通過隨機(jī)方式?jīng)Q定是否挖到一枚幣,一旦挖到幣,它就會通過2.4G無線廣播的形式傳輸給其他的micro:bit,如果被接收到就會被承認(rèn)。按下micro:bit上的A按鍵可以顯示自己擁有的錢幣數(shù)量(不一定是挖到的,而是挖到并且被傳輸出去被承認(rèn)的),按下B按鍵顯示所有micro:bit中被傳輸過的并被承認(rèn)的錢幣數(shù)量。
第二步:在微軟Makecode平臺打入?yún)^(qū)塊鏈功能包
micro:coin源代碼使用JavaScript語言編寫,不能使用圖形化編程工具。不過,最近微軟的Makecode平臺把它打包成了功能包,打開https://makecode.microbit.org/ 在線編程平臺,點(diǎn)擊右上角的“設(shè)置”—“添加包”,搜索一個叫作“Radio-Blockchain”的功能包,就可以導(dǎo)入?yún)^(qū)塊鏈模塊,然后用拖拽的形式就可以進(jìn)行圖形化編程。
第三步:將micro:coin代碼導(dǎo)入每一塊micro:bit主板
因?yàn)樵创a被打包成了功能包,我們只要在https://makecode.microbit.org/通過拖拽就可以在micro:bit上實(shí)現(xiàn)挖幣、顯示自己的幣數(shù)、顯示區(qū)塊鏈中所有的幣數(shù)(鏈長)等基本的功能。模塊化編程如下圖,最后把代碼文件保存成.Hex文件,拷貝到每一塊micro:bit主板上就完成了。

現(xiàn)在,你自己打造的區(qū)塊鏈貨幣micro:coin就可以玩了。把幾塊做好程序的micro:bit通電后,搖動其中一塊,如果挖到幣,就會顯示菱形畫面,同時其他micro:bit接收到信號,顯示方框畫面,一枚幣就產(chǎn)生了,并且在整個區(qū)塊鏈中被承認(rèn)。不斷搖動挖礦,就會有越來越多的micro:coin幣產(chǎn)生,不過要記得把幾塊micro:bit放得近一點(diǎn),被接收到信號才可被承認(rèn)哦!
掃描左側(cè)二維碼關(guān)注公眾號:石斧創(chuàng)客,可下載micro:coin區(qū)塊鏈應(yīng)用源代碼。
