2015年1月12日 星期一

[Bitcore] 如何創建比特幣Transaction及使用Insight API廣播交易


使用Bitcore API創建比特幣交易非常簡單,而且也無須到其他Bitcoin Block Explorer網站查詢區塊交易資料,直接叫用Bitcore內建的Insight API便能查詢及廣播相關資料

testtx.js
執行 node testtx.js
查到地址mqA2PpWxp8XcWUrJjDFnowb5KmgAhdcDAW的未花費輸出(Utxo)


接著加入廣播交易的程式碼

Insight傳回此筆交易的hash值,注意到未花費輸出(Utxo)尚未改變,因為交易還沒打包到新區塊


約十分鐘後

2015年1月6日 星期二

[Bitcore] Peer's message testing

簡單的Bitcore Peer訊息測試程式,關於Peer之間如何傳遞訊息,請參看Bitcoin P2P Network裡,有張我整理好的圖表

testPeer.js

執行node testPeer.js
先傳ping看看對方是否上線,等收到pong後,便會源源不斷接收尚未打包成區塊的比特幣最新交易

2014年12月17日 星期三

簡單描述一下我對比特幣區塊鏈"技術"的理解

以下本來是給網友的回覆,不過寫著寫著,發覺自己對比特幣區塊鍊技術,有稍微深入的全盤理解, 所以轉貼在此,改天再修修改改一番
比特幣是橫空出世的新事物,目前大家猶如瞎子摸象般,說它是貨幣 電子黃金 垃圾,說什麼都對,也不對,因每個人都會以已知事物認知它,等它茁壯運用在想像力可及的各個範疇,出現在每個人日常生活周遭,它究竟是什麼也不重要了

簡單描述一下我對比特幣區塊鏈"技術"的理解:
1.比特幣區塊鏈,可視為一疊有前後順序的公開帳本,每本帳本皆紀錄前一本帳本內容Hash值,所以幾乎很難從中抽換帳本或更改帳本內容,且p2p網海中還有無數副本

2.帳本記載多筆比特幣交易,交易可視為價值(如同遊戲點數)所有權轉移,當轉移價值(點數)給下一手時,需同時撰寫符式(Forth-like)腳本規定下一手須符合哪些條件(一方或多方數位簽名)才能再次轉移這些價值(點數)

3.礦工的角色其實是記賬員(雖然他不自知),隨時在p2p交易池,接收所發生的交易並驗證(腳本),約每十分鐘將合格交易打包成帳本(區塊),並經過無數哈希運算取得樂透值,然後盡快地P2P廣播出,只要比其他對手還快,讓大多數節點收到他打包的帳本(內含比特幣獎勵),他就贏得此回合,所以取名比特幣是有所本的,誰比較特別快就是贏家,其餘皆是魯蛇

4.礦工好比是眼前吊著蘿蔔的騾子,是整個系統的火車頭,只要他深信比特幣是有價值,可換取黃金 美金 台幣 人民幣 妻子 車子 房子,雖然他的動機或許並不高尚但卻保障整個比特幣生態系的健全,只要穩穩的保持每十分鐘產生一個區塊,就能讓軟體商在區塊鏈上開發各種應用
這或可叫做"以欲鉤牽,令入物聯網妙智"

5.比特幣的價值是中立的,對於炒幣者可能要1BTC兌1000美元以上才有經濟價值,但對軟體開發者來說,僅0.00001BTC(不足1元新台幣)就能拿來驅動設備及各種應用,可能的話甚至最小單位的比特幣,也能拿來對應三千大千世界恆河沙數七寶

6.擁有比特幣公鑰地址可以是人或設備,公鑰地址的數目只能以地球所有沙數作為譬喻,而秘藏於三千大千銀河系世界的密鑰若動用未來的量子電腦可能還力有未逮


如果您還有任何疑惑,可移駕看看兩份白皮書
這是IBM高級研究員寫的白皮書--IBM物联网白皮书:设备民主,去中心化、自治的物联网
http://www.8btc.com/device-democracy-saving-the-future-of-the-internet-of-things
這是比特幣的爸爸中本聰寫的白皮書--比特币:一种点对点的电子现金系统
http://p2pbucks.com/?p=9963

2014年12月10日 星期三

以比特幣為選票實現i-Voting

簡單的UseCase草稿,會持續修改
登記
1.選舉人填入識別資料(ID、市話、姓名)
2.(離線)網頁產生公鑰地址及密鑰並將識別資料簽名
3.選舉人上傳已簽名識別資料(登記成為選舉人)
4.選務人員確認選舉人本人,將特定地址比特幣(假定0.0002btc含礦工手續費)轉移到此選舉人公鑰地址
5.選務人員公佈所有候選人票箱公鑰地址
6.系統產生選舉人公鑰地址名冊
投票日
6.選舉人將比特幣選票投至某一候選人票箱公鑰地址
7.系統取得投票時段所產生的區塊(+1)
8.系統針對每個票箱公鑰地址計算有效票


有效票定義:1.能回溯特定公鑰地址,證明由選務單位統一傳送 2.須在選舉人公鑰地址名冊