本博客針對區塊鏈的部分問題進行詳解,希望幫助大家對于區塊鏈有一個更好的理解
1,如果散布虛假交易,怎么整?(誰欠我XXX比特幣)
1,可以發起虛假交易,但是很難被全網的節點接收并寫入區塊鏈中。因為發起交易是需要進行身份驗證,區塊鏈一般發起的交易內容入下,從我的賬戶轉多少比特幣給誰。比如我轉給張三10個比特幣,這個過程需要使用交易發起者的私鑰加密,加密過后會形成秘文,然后將交易消息、秘文、公鑰一起廣播,其余節點收到消息之后會對于消息的合法性進行驗證,別人通過我的公鑰解密秘文,如果解密得到的明文和發布的消息一致,就驗證我的身份。如果不一致,這條消息就會被舍棄。
? ? ? ?舉例來說,有人申報了一筆交易:地址 A 向地址 B 支付10個比特幣。怎么知道這個申報是真的,申報人就是地址 A 的主人?比特幣協議規定,申報交易的時候,除了交易金額,轉出比特幣的一方還必須提供以下數據。比特幣發起交易應該只能是,轉出方發出轉賬交易,比如,我要轉給A?10比特幣,而不是發出交易,A?欠我10個比特幣。
需要提供的數據
- 上一筆交易的 Hash(你從哪里得到這些比特幣,這個是根據比特幣的內部UTXO結構進行驗證)
- 本次交易雙方的地址
- 支付方的公鑰
- 支付方的私鑰生成的數字簽名
驗證這筆交易是否屬實,需要三步。
- 第一步,找到上一筆交易,確認支付方的比特幣來源。(UTXO結構)
- 第二步,算出支付方公鑰的指紋,確認與支付方的地址一致,從而保證公鑰屬實。
- 第三步,使用公鑰去解開數字簽名,保證私鑰屬實。
補充知識
? ? *私鑰經過運算得到公鑰,公鑰的后160位是錢包地址。根據協議,公鑰的長度是512位。這個長度不太方便傳播,因此協議又規定,要為公鑰生成一個160位的指紋。所謂指紋,就是一個比較短的、易于傳播的哈希值。160位是二進制,寫成十六進制,大約是26到35個字符,比如 1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2。這個字符串就叫做錢包的地址,它是唯一的,即每個錢包的地址肯定都是不一樣的。
2,發布虛假交易是需要很強的計算能力。舉一個例子,假設 250 名礦工組成一個團隊,占網絡整體挖掘力的 25%。現在那些礦工決定通過發布無效(虛假)交易來從中受益。首先解決密碼難題的那個人會提出一個包含無效交易的區塊,另外 249 人會接受它并一同開始增加更多的區塊。與此同時,剩余的 75%的礦工不會接受該塊。相反,他們會添加一系列有效塊到鏈中。擁有這個團隊挖掘能力的三倍,75% 的計算能力為區塊鏈分支增加新的區塊比其快三倍。這將給他們最長的鏈,被所有人所接受。另一條鏈將變得毫無價值,沒有人會接受它。為了成功提出一個無效區塊并將其添加到最長的區塊鏈中,需要控制 51%的采礦能力。任何不足之處,惡行都將失敗。
2,比如我網上購物,錢打過去了,但是不給我發貨
- 線上問題難以解決線下問題。只能根據店家的信用進行購物,如果存在第三方平臺,可以進行平臺投訴。如果,商家意識到自身的錯誤,把錢退換給你,也不是利用回滾退錢,因為代價很大。而是通過發起新的一筆交易,將錢轉給你。
3,我購買商品,店家發貨了,但是我讓交易回滾,不認賬
- 這個利用的是商品發貨需要長途運輸時間的天生的優勢。比如,今天下單,但是交易回滾之后,第二天,店家發現這筆錢并沒有上鏈,所以拒絕給我郵寄商品。
- 使用智能合約來執行整個過程,將200比特幣存儲到賬戶中,如果在規定的日期內沒有收到快遞,將只能能合約接入快遞公司的查詢網站,這筆錢就會退還。因為智能合約不受到個人的操控,完全是程序的自我執行的過程,因此可以保證第三方可信,但是需要注意一個大的前提是合約不存在漏洞,被別人利用。
If parcel [parcel number] is delivered by Saturday, pay ?200 to [my account]. Otherwise, return the ?200 to [your account] (如果包裹 [包裹編號] 在周日送達,則向 [我的賬戶] 支付 ?200 。否則就將 ?200 返還至 [你的賬戶] )
4,創建錢包地址
1,基于平臺創建地址,安全性未知,比如https://login.blockchain.com/zh/#/home
2,在本地創建全節點
3,相關內容
- https://www.bilibili.com/video/BV1TE411q7mW
- https://bitcoin.org/zh_CN/download
- https://www.bilibili.com/read/cv4078068
- 比特幣如何開戶
5,比特幣的可分割特性
目的:采用和鼓勵大家使用和購買比特幣,并進而替代一般貨幣。比特幣可分割小至0.00000001 BTC的單位。在未來,如果情勢所需,比特幣的分割性則可以增加到1000億個更小的單位,甚至更多。這是因為比特幣協議和其相關軟件體系可以修改成能夠處理更小的單位。
6,"同步"是什么意思?為什么同步要花很長時間?
只有像Bitcoin Core這樣的全節點型客戶端才需要較長的同步時間。從技術上來說,同步是一個下載并核實網絡上所有以往比特幣交易的過程。某些比特幣客戶端需要知道所有以往的交易才能計算你比特幣錢包的可用余額并完成新的交易。這一步驟非常消耗資源,需要有足夠的帶寬以及能存放整個塊鏈的空間。為了保持比特幣的安全性,需要有足夠的用戶使用完全節點型客戶端,因為他們起著確認和中繼交易的作用。