(一)區(qū)塊鏈技術(shù)驅(qū)動(dòng)金融18.5.21

第一章 密碼學(xué)及加密貨幣概述

法定貨幣,類(lèi)似央行的機(jī)構(gòu)控制貨幣供給+實(shí)體貨幣上加防偽標(biāo)識(shí)。但是仍然可以偽造。
加密數(shù)字貨幣需采取安全措施以及防止混淆。
二者不同在于:后者安全規(guī)則需要完全通過(guò)技術(shù)手段,前者則是依賴(lài)于中央機(jī)構(gòu)。
本章主要介紹密碼學(xué)中的哈希算法(Hash)和數(shù)字簽名(digital signature)技術(shù)。兩者對(duì)構(gòu)建一個(gè)加密數(shù)字貨幣系統(tǒng)非常關(guān)鍵。后面章節(jié)介紹:零知識(shí)驗(yàn)證。

1.1 密碼學(xué)哈希函數(shù)

哈希函數(shù)
哈希函數(shù)是一個(gè)數(shù)學(xué)函數(shù),有以下三個(gè)特性:
①輸入可為任意大小的字符串
②產(chǎn)生固定大小的輸出。本章假設(shè)輸出大小為256位。
③能進(jìn)行有效計(jì)算即對(duì)于特定的輸入字符串,在合理時(shí)間內(nèi),可以計(jì)算出哈希函數(shù)的輸出。對(duì)應(yīng)n位的字符串,其哈希值計(jì)算的復(fù)雜度為O(n)。
哈希表
基于哈希函數(shù),創(chuàng)建的數(shù)據(jù)結(jié)構(gòu)。
由于專(zhuān)注加密的哈希函數(shù),要使哈希函數(shù)達(dá)到密碼安全,需滿(mǎn)足:
①碰撞阻力 collision-resistance
②隱秘性 hiding
③謎題友好 puzzle-friendliness

特性1 碰撞阻力

碰撞?:對(duì)于兩個(gè)不同的輸入,產(chǎn)生相同的輸出。
對(duì)于哈希函數(shù)H(·),沒(méi)人能找到碰撞(不表示不存在碰撞),則稱(chēng)該函數(shù)具有碰撞阻力
x,y是兩個(gè)不同輸入,但有H(x) = H(y),說(shuō)明這個(gè)函數(shù)是哈希碰撞的
注:通過(guò)計(jì)數(shù)論證可證明碰撞的確存在。哈希函數(shù)輸入空間無(wú)限(包含所有長(zhǎng)度的任意字符串),輸出空間有限(只包含特定固定長(zhǎng)度的字符串),因此一定會(huì)有輸入字符串映射到相同的輸出字符串。實(shí)際上根據(jù)歌巢原理可知必然會(huì)有大量可能的輸入被映射到任意特定輸出。對(duì)于加密的哈希函數(shù),有些方法是能保證找到碰撞的。
輸出256位大小的哈希函數(shù),選擇2^256 + 1個(gè)不同數(shù)值,因?yàn)檩斎氪笥谳敵觯貙a(chǎn)生碰撞。
生日悖論是僅僅通過(guò)檢驗(yàn)可能輸出數(shù)量的平方根次數(shù),便能答題找到碰撞。
優(yōu)點(diǎn):這個(gè)碰撞檢測(cè)算法對(duì)于每個(gè)哈希函數(shù)都有效。
缺點(diǎn):計(jì)算需要花費(fèi)很長(zhǎng)很長(zhǎng)時(shí)間。

但是:我們已經(jīng)證明,世界上沒(méi)有哈希函數(shù)具有防碰撞特性。我們實(shí)踐中所依賴(lài)的加密的哈希函數(shù)僅僅是暫未成功找到碰撞的函數(shù),暫且選擇相信這些具有哈希阻力。比如MD5哈希函數(shù)找到了碰撞,已經(jīng)逐漸被淘汰。
應(yīng)用:信息摘要部分
基于前提:哈希函數(shù)H具有碰撞阻力,x,y是兩個(gè)不同輸入,則可以假設(shè)輸出不同。
該論證可以將哈希輸出作為信息摘要。
例子是:愛(ài)麗絲上傳了很大的文件,如何能在之后下載確定她下載的文件和她上傳的文件相同。
ⅰ整個(gè)文件本地存儲(chǔ),再對(duì)比。麻煩且上傳無(wú)意義。
ⅱ無(wú)碰撞哈希函數(shù)解決這個(gè)問(wèn)題,愛(ài)麗絲只需要記住原文件哈希值,下載文件后,計(jì)算下載文件的哈希值與之相比。相同,則是。
此處:哈希函數(shù)對(duì)于一個(gè)信息生成固定長(zhǎng)度的摘要或生成了總結(jié)。

特性2 隱秘性

隱秘性保證:若只知哈希函數(shù)的y=H(x),沒(méi)有可行的辦法算出輸入值x。
為實(shí)現(xiàn)隱秘性:x的取值需來(lái)自一個(gè)非常廣泛的集合。避免被反解出。
隱秘性哈希函數(shù)H具有隱秘性。如果:當(dāng)其輸入r選自一個(gè)高階最小熵的概率分布,在給定H(r||x)條件下來(lái)確定x是不可行的。(雙豎線||為連接符號(hào),代表把一系列事件、事情聯(lián)系起來(lái))
信息論中最小熵是用戶(hù)測(cè)試結(jié)果可預(yù)見(jiàn)性的手段。高階最小熵比較直觀的描述了分布的分散程度。
應(yīng)用:承諾
想做的事情稱(chēng)為承諾。
該處承諾是個(gè)數(shù)字化過(guò)程:選定一個(gè)數(shù)字,裝進(jìn)信封,放到人人可見(jiàn)桌上,這樣則說(shuō)明你對(duì)信封里數(shù)字做出了承諾,打開(kāi)信封前對(duì)他人是秘密,打開(kāi)之后,來(lái)展示承諾數(shù)值。

承諾協(xié)議:一個(gè)承諾協(xié)議方案由兩個(gè)算法構(gòu)成。
①承諾函數(shù)將信息和一個(gè)臨時(shí)隨機(jī)數(shù)作為輸入,輸出就是一個(gè)承諾。
②驗(yàn)證函數(shù)將某個(gè)承諾輸出、臨時(shí)隨機(jī)數(shù)及信息作為輸入。對(duì)比。
需要由兩個(gè)安全特性:隱秘性和約束性。
此處書(shū)中第10頁(yè)有具體介紹。
如何執(zhí)行承諾方案,通過(guò)加密的哈希函數(shù):生成一個(gè)256位的臨時(shí)隨機(jī)數(shù)等。詳情參見(jiàn)書(shū)。

特性3 謎題友好

謎題友好:如果對(duì)于任意n位輸出值y,假定k選自高階最小熵分布,如果無(wú)法找到一個(gè)可行的方法,在2^n小很多時(shí)間內(nèi)找到x,保證H(k||x)=y成立,那么我們稱(chēng)哈希函數(shù)H為謎題友好。
應(yīng)用:搜索謎題
搜索謎題構(gòu)成:
一個(gè)哈希函數(shù)H。
從高階最小熵分布選出的一個(gè)取值,id(稱(chēng)為謎題ID)
目標(biāo)集合Y。
該謎題的解決方法為一個(gè)解,x,滿(mǎn)足以下公式:
H(id||x) ∈ Y

安全哈希算法
安全哈希算法Secure Hash Algorithm 256 簡(jiǎn)稱(chēng) SHA-256
SHA-256主要被比特幣世界采用。
要求哈希函數(shù)可以任意長(zhǎng)度輸入,只要我們建立一個(gè)用于固定長(zhǎng)度輸入的哈希函數(shù),通過(guò)一般方法,可以將接受固定長(zhǎng)度的哈希函數(shù)轉(zhuǎn)化為可接受任意長(zhǎng)度輸入的哈希函數(shù)。該過(guò)程稱(chēng)為MD變換。SHA-256是采用這種變換方法的常用哈希函數(shù)之一。
壓縮函數(shù):通用術(shù)語(yǔ)中,這種基礎(chǔ)型,可用于固定長(zhǎng)度,具備碰撞阻力的哈希函數(shù)被稱(chēng)為壓縮函數(shù)。
經(jīng)驗(yàn)證:如果基本壓縮函數(shù)具有碰撞阻力的特性,那通過(guò)轉(zhuǎn)換而生成的哈希函數(shù)也具有碰撞阻力。
MD變換
壓縮函數(shù)帶入長(zhǎng)度為m的輸入值,產(chǎn)生長(zhǎng)度短一些為n的輸出值。哈希函數(shù)的輸入(可為任意大小)被分為長(zhǎng)度為m-n的區(qū)塊。
MD轉(zhuǎn)換過(guò)程:將每個(gè)區(qū)塊與之前區(qū)塊的輸出一起帶入壓縮函數(shù),輸出長(zhǎng)度變?yōu)?code>(m-n)+n=m=壓縮函數(shù)的輸入長(zhǎng)度。對(duì)于第一個(gè)區(qū)塊而言,需選取一個(gè)初始向量。每次調(diào)用哈希函數(shù),這個(gè)數(shù)字都會(huì)被再次使用,實(shí)踐中可直接在標(biāo)準(zhǔn)文檔中找到它。最后一個(gè)區(qū)塊的輸出就是返回的結(jié)果。
SHA-256利用壓縮函數(shù),把768位的輸入壓縮成一個(gè)256位的輸出,每一個(gè)區(qū)塊的大小是256位。

SHA-256工作原理

未完待續(xù)。2018.5.21 22:50
接著。2018.5.22 7:17
哈希函數(shù)建模
事實(shí)證明,要確定一系列哈希函數(shù)特性以全面達(dá)成可證安全極度困難,本書(shū)中主要是選出在比特幣和其他加密數(shù)字貨幣中,對(duì)哈希函數(shù)使用方式很重要的三個(gè)特性。即使在這個(gè)范圍內(nèi),并不是所有這些特性對(duì)哈希函數(shù)的每一次使用都有必要。比如:謎題友好旨在比特幣采礦中具有重要性

1.2 哈希指針及數(shù)據(jù)結(jié)構(gòu)

哈希指針hash pointer:一種數(shù)據(jù)結(jié)構(gòu)。即一個(gè)指向數(shù)據(jù)存儲(chǔ)位置及其位置數(shù)據(jù)的哈希值的指針。
哈希與普通指針相比:普通指針只能告訴數(shù)據(jù)存儲(chǔ)的位置,哈希指針可以告訴數(shù)據(jù)存儲(chǔ)的位置+給你一種方式來(lái)驗(yàn)證數(shù)據(jù)沒(méi)有被篡改過(guò)。

哈希指針

1.2.1 區(qū)塊鏈

區(qū)塊鏈block chain:通過(guò)哈希指針構(gòu)建一個(gè)鏈表的數(shù)據(jù)結(jié)構(gòu)。
普通鏈表:有一系列區(qū)塊,每個(gè)a區(qū)塊既有數(shù)據(jù)也有一個(gè)指向上一個(gè)區(qū)塊的指針。
區(qū)塊鏈中,上一個(gè)區(qū)塊指針被置換為哈希指針(因此每個(gè)區(qū)塊能告訴上一個(gè)區(qū)塊的的值在哪里+該值的摘要=驗(yàn)證那個(gè)值沒(méi)有改變)

區(qū)塊鏈

應(yīng)用:防篡改日志
建立一個(gè)存儲(chǔ)很多數(shù)據(jù)的日志數(shù)據(jù)結(jié)構(gòu),能將數(shù)據(jù)附加到日志末尾。如果想要篡改日志前面的數(shù)據(jù),可以被檢測(cè)到。
分析如下:
如果對(duì)手要篡改區(qū)塊鏈中間的數(shù)據(jù),目的是讓只記得區(qū)塊鏈頭部哈希指針的人無(wú)法檢測(cè)到篡改行為。
①對(duì)手會(huì)改變某區(qū)塊k的數(shù)據(jù),因此區(qū)塊k+1的哈希值(即整個(gè)區(qū)塊k的哈希值)將不會(huì)匹配。(因?yàn)楣:瘮?shù)具有碰撞阻力,故可確定新的哈希值與改變后的內(nèi)容不會(huì)匹配)
結(jié)果:可檢測(cè)到區(qū)塊k中的新數(shù)據(jù)及區(qū)塊k+1的哈希指針的不一致性。
②對(duì)手繼續(xù)試圖通過(guò)篡改下一個(gè)區(qū)塊的哈希值掩蓋這次篡改。
結(jié)果:到達(dá)鏈表的頭部時(shí),這個(gè)策略失敗。(即只要將鏈表頭部的哈希指針存儲(chǔ)到對(duì)手無(wú)法改動(dòng)的地方,對(duì)手篡改任何區(qū)塊,都會(huì)被檢測(cè)到)
防篡改日志

總之,對(duì)手想篡改區(qū)塊鏈中任意地方的數(shù)據(jù),為保證內(nèi)容一致,必須篡改所有的哈希指針直至最開(kāi)始的地方。但是,最終也因?yàn)椴荒艽鄹逆湵眍^部的指針而失敗。僅通過(guò)記住一個(gè)哈希指針,就基本記住了整個(gè)鏈表的防篡改哈希值。因此可搭建一個(gè)包含很多區(qū)塊的區(qū)塊鏈網(wǎng)絡(luò)。
創(chuàng)世區(qū)塊:鏈表頭部的哈希指針

1.2.3 梅克爾樹(shù)

梅克爾樹(shù) Merkle trees:使用哈希指針的二叉樹(shù)。
數(shù)據(jù)結(jié)構(gòu):
①所有的數(shù)據(jù)區(qū)塊被兩兩分組,指向這些數(shù)據(jù)區(qū)塊的指針被存儲(chǔ)在上一層的父節(jié)點(diǎn)中。
②這些父節(jié)點(diǎn)再次被兩兩分組,指向父節(jié)點(diǎn)的指針被存儲(chǔ)在上一層的父節(jié)點(diǎn)中。
③持續(xù)反復(fù)。
④最后達(dá)到樹(shù)的根節(jié)點(diǎn)。

梅克爾樹(shù)

通過(guò)記住樹(shù)最前面的哈希指針,如同區(qū)塊鏈一樣,僅僅通過(guò)記住頂部的哈希指針,任何企圖篡改任何數(shù)據(jù)的行為都會(huì)被檢測(cè)到。

應(yīng)用:隸屬證明
梅克爾樹(shù)的另一個(gè)特點(diǎn):可以實(shí)現(xiàn)簡(jiǎn)潔的隸屬證明。(這點(diǎn)與區(qū)塊鏈不同)
原理:為了證明某個(gè)數(shù)據(jù)區(qū)塊來(lái)自一個(gè)梅克爾樹(shù),只需找到該數(shù)據(jù)區(qū)塊到根節(jié)點(diǎn)的路徑。
詳情參見(jiàn)書(shū)18頁(yè)。

梅克爾樹(shù)隸屬證明內(nèi)容

非隸屬證明:
有了排序梅克爾樹(shù),可在一個(gè)對(duì)數(shù)復(fù)雜度的條件下驗(yàn)證某一個(gè)數(shù)據(jù)區(qū)塊并非來(lái)自梅克爾樹(shù)。
證明某個(gè)特定區(qū)塊不屬于梅克爾樹(shù),通過(guò)展示被驗(yàn)證區(qū)塊之前+之后的區(qū)塊路徑即可。
①如果之前之后兩個(gè)區(qū)塊在樹(shù)上連續(xù),則被驗(yàn)證區(qū)塊與該梅克爾樹(shù)之間為非隸屬關(guān)系
②在兩個(gè)條目之間,隸屬于梅克爾樹(shù)。

總結(jié):可在任何以指針為基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu)中使用哈希指針,只要數(shù)據(jù)結(jié)構(gòu)不存在循環(huán)。(如果存在循環(huán),將不能使所有哈希值得到匹配,因?yàn)闆](méi)有一個(gè)根節(jié)點(diǎn)讓我們追溯)

1.3 數(shù)字簽名

數(shù)字簽名 digital dignatures 被認(rèn)為是對(duì)紙上手寫(xiě)簽名的數(shù)字模擬。需要有兩個(gè)特性要求:
①可自己制作自己簽名,但任何看到它的人都可驗(yàn)證其有效性
②希望簽名只與某一特定文件發(fā)生聯(lián)系,因此該簽名不能用于表明你同意或支持另一份不同的文件。
(對(duì)于手寫(xiě)簽名,這條就是確保別人不能將你的簽名從一份文件上扯下來(lái)粘貼到另一份文件末尾)

數(shù)字簽名方案:其中g(shù)enerateKeys和sign可采用隨機(jī)算法。

⑴ (sk,pk) := generateKeys(keysize) 
generateKeys方法把keysize作為輸入:產(chǎn)生一對(duì)公鑰和私鑰。
私鑰sk:被安全保存,用來(lái)簽名一段消息。
公鑰pk:任何人都可找到,拿著它可以用來(lái)驗(yàn)證你的簽名。
⑵ sig := sign(sk,message) 
簽名過(guò)程就是把一段消息和私鑰作為一個(gè)輸入
對(duì)于消息輸出是簽名。
⑶ isValid := verify(pk,message,sig)
驗(yàn)證過(guò)程通過(guò)把一段消息+簽名消息與公鑰作為輸入
返回結(jié)果為真:證明簽名屬實(shí)。
返回結(jié)果為假:證明簽名消息為假。

我們要求兩個(gè)性質(zhì)有效:即有效簽名可以通過(guò)驗(yàn)證和簽名不可偽造。
① 有效簽名可以通過(guò)驗(yàn)證:verify(pk,message,sign(sk,message))==true
② 簽名不可偽造

驗(yàn)證第一條性質(zhì):我用我的密鑰sk簽署一條消息后,有人使用我的公鑰pk驗(yàn)證關(guān)于同一條消息的簽名,該簽名必須證實(shí)為正確。

驗(yàn)證第二條性質(zhì):不可為造性 要求計(jì)算上不可能偽造簽名。不可偽造性游戲:對(duì)手和挑戰(zhàn)者一起玩。如果對(duì)手可在一個(gè)沒(méi)有見(jiàn)過(guò)的消息上進(jìn)行簽名,對(duì)手贏。反之,挑戰(zhàn)者贏。證明這個(gè)數(shù)字簽名方案不可偽造。

實(shí)踐中的考量
算法概念轉(zhuǎn)化為現(xiàn)實(shí)中可執(zhí)行的數(shù)字簽名機(jī)制,考慮問(wèn)題很多。
ⅰ很多簽名算法是隨機(jī)的,則需要隨機(jī)性的良好來(lái)源
ⅱ 信息大小 。
解決方法是:對(duì)信息的哈希值進(jìn)行簽署,使用輸出值為256位的加密的哈希函數(shù),將信息的哈希值作為信息摘要,哈希函數(shù)具有碰撞阻力,因此這種方式是安全的。后面還有一種方法是可以對(duì)哈希指針進(jìn)行簽署。

1.3.1 橢圓曲線數(shù)字簽名算法
橢圓曲線數(shù)字簽名算法 ECDSA:比特幣使用的數(shù)字簽名方案。(ECDSA是美國(guó)政府的標(biāo)準(zhǔn),是DSA電子簽名算法利用了橢圓曲線的升級(jí)版)
注:比特幣使用ECDSA算法,而非標(biāo)準(zhǔn)橢圓曲線"secp 256k1"。

相關(guān)參數(shù)介紹:
個(gè)人密鑰:256位。
公鑰(未壓縮):512位。
公鑰(壓縮):257位。
待簽名信息:256位。
簽名:512位。
注:雖然ECDSA只能簽署256位的信息,但實(shí)際上信息在簽署之前總是已經(jīng)經(jīng)過(guò)哈希壓縮。因此,任何大小的信息都能被有效簽署。

使用ECDSA,確保隨機(jī)性良好來(lái)源至關(guān)重要。不良來(lái)源可能會(huì)導(dǎo)致密鑰信息的泄露。但ECDSA很古怪,即你若僅在生成簽名時(shí)使用了不良隨機(jī),而你使用的密鑰完美無(wú)缺,你的個(gè)人密鑰還是由可能泄露。(這是DSA的古怪之處,并不針對(duì)橢圓曲線)。
如果個(gè)人密鑰泄露,對(duì)手就可偽造你的簽名。
加密貨幣即加密技術(shù)
比特幣沒(méi)有使用任何加密術(shù),因?yàn)闆](méi)有加密的需要。很多技術(shù)(比如承諾方案)在某種程度上隱藏信息,但是這與加密術(shù)不同。

1.4 公鑰即身份

從數(shù)字簽名模式中拿出一個(gè)公共驗(yàn)證密鑰,并將其一個(gè)人或一個(gè)系統(tǒng)參與者的身份對(duì)等。如果一條消息的簽名被公鑰pk正確驗(yàn)證,則可認(rèn)為pk就是在表達(dá)這條信息。從這個(gè)角度,公鑰就是身份,讓某人能為pk身份發(fā)聲,必須知道相應(yīng)的密鑰sk。
結(jié)果:可隨時(shí)制定新的身份。
實(shí)踐中,你可能會(huì)使用pk的哈希作為你的身份(因?yàn)楣€很大)。驗(yàn)證時(shí)候需要兩點(diǎn):(1)你的身份確實(shí)是pk的哈希(2)信息能經(jīng)過(guò)公鑰pk驗(yàn)證。

去中心化身份管理
公鑰和私鑰的體系,幫助我們引入去中心化的身份管理的概念。想要新的身份,可隨機(jī)生成一個(gè),想要多少就生成多少。事實(shí)上,這就是比特幣對(duì)待身份的方式。這些身份在比特幣語(yǔ)言中被稱(chēng)為地址,地址其實(shí)就是公鑰的哈希值。
注:比特幣系統(tǒng)中,你不需要明確地注冊(cè)或揭露你的真實(shí)姓名,但是你的行為模式本身可能是可識(shí)別的。

1.5 兩種簡(jiǎn)單的加密貨幣

密碼術(shù)到加密貨幣。
1.5.1 高飛幣
高飛幣 GoofyCoin:想到的最簡(jiǎn)單的加密貨幣。僅有兩個(gè)規(guī)則即:制定高飛可以隨時(shí)創(chuàng)建新幣 和 這個(gè)新創(chuàng)建的幣都屬于他。
詳情參加書(shū)27頁(yè)。

高飛幣交易

總結(jié):高飛幣規(guī)則是
①高飛可以通過(guò)簽署聲明來(lái)表示他使用唯一的貨幣編號(hào)來(lái)創(chuàng)建一個(gè)新幣
②幣的所有人可以通過(guò)簽署聲明表示”將這個(gè)幣轉(zhuǎn)給X“(其中X為公鑰),將其轉(zhuǎn)給另一個(gè)。
③任何人都可驗(yàn)證一只幣的有效性,跟隨哈希指針追溯到它是由高飛創(chuàng)建,并驗(yàn)證過(guò)程中所有簽名。
隱患是:雙重支付。事實(shí)上雙重支付是任何加密貨幣需要解決的主要問(wèn)題之一,但高飛幣并沒(méi)有解決這個(gè)問(wèn)題,因此不安全,不適合作為加密貨幣。

1.5.2 財(cái)奴幣
解決雙重支付問(wèn)題,涉及到財(cái)奴幣ScroogeCoin。
財(cái)奴幣是以高飛幣為基礎(chǔ)創(chuàng)建的,但在數(shù)據(jù)結(jié)構(gòu)方面更復(fù)雜。

第一個(gè)概念:
一個(gè)叫財(cái)奴的指定實(shí)體將負(fù)責(zé)公布包含所有發(fā)生過(guò)的交易歷史記錄的僅增賬目(保證了寫(xiě)入這個(gè)賬目的任何數(shù)據(jù)都會(huì)永久保留下來(lái))。
若項(xiàng)目真的僅增,則通過(guò)要求所有的交易在被接受前都寫(xiě)入項(xiàng)目,便可預(yù)防雙重支付。
如何執(zhí)行這個(gè)僅增功能?財(cái)奴創(chuàng)建一個(gè)區(qū)塊鏈(形成一系列數(shù)據(jù)塊,每個(gè)數(shù)據(jù)塊中都包含一次交易,實(shí)踐中優(yōu)化的做法就是把多次交易放在同一個(gè)區(qū)塊中,比如比特幣,每個(gè)區(qū)塊包含交易的ID和內(nèi)容+上一個(gè)區(qū)塊的哈希指針),進(jìn)行數(shù)字簽名(針對(duì)最后一個(gè)哈希指針),最后將簽名和區(qū)塊鏈一起發(fā)布。

財(cái)奴幣系統(tǒng)中的區(qū)塊鏈

哪種交易作數(shù)?只有在財(cái)奴簽名的區(qū)塊鏈的交易財(cái)算數(shù)。
為什么財(cái)奴簽署每個(gè)區(qū)塊還需一個(gè)帶哈希指針的區(qū)塊鏈?保證僅增特性。財(cái)奴可能會(huì)試圖增加或移除交易記錄。

財(cái)奴幣中有兩種交易。
第一種:造幣CreateCoins
基于高飛創(chuàng)造新幣的程序,將其擴(kuò)展即可在一次交易中創(chuàng)建多個(gè)幣量。(造幣交易創(chuàng)造了多個(gè)不同個(gè)數(shù)量和歸屬于不同擁有者的新貨幣,稱(chēng)為虛擬貨幣ID即指該次交易中交易ID和貨幣序號(hào)的組合)詳情參見(jiàn)書(shū)30頁(yè)。
第二種:付幣PayCoins
消耗幣,創(chuàng)建具有相同總值的新幣,新幣可能屬于不同的人(公鑰),交易必須由一個(gè)支付該幣的人來(lái)進(jìn)行簽署。滿(mǎn)足以下四個(gè)條件,付幣交易有效:
⑴被消耗的幣為有效貨幣,即在之前交易中創(chuàng)建的
⑵被消耗的幣在之前交易沒(méi)被消耗掉,即不是雙重支出
⑶本次交易產(chǎn)生的幣值=消耗的幣值量,即只有財(cái)奴才可以創(chuàng)建新幣。
⑷本次交易被消耗的所有幣均有其所有者的有效簽署。
注意:直至發(fā)布之前,即使?jié)M足前三條件,仍然可能是一個(gè)被雙重支付搶占的交易。

財(cái)奴幣核心問(wèn)題
工作原理是:人們可以看見(jiàn)哪些幣是有效的。防止雙重支付。
問(wèn)題是:中心化。

寫(xiě)于2018.5.22 12:53

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 所有貨幣都需要一些方法來(lái)控制供應(yīng),并強(qiáng)制執(zhí)行各種安全屬性以防止作弊。在法定貨幣方面,像中央銀行這樣的組織控制貨幣供...
    Nutbox_Lab閱讀 3,142評(píng)論 1 3
  • 了解區(qū)塊鏈哈希如何工作非常重要。但為了做到這一點(diǎn),我們需要先了解區(qū)塊鏈創(chuàng)建的核心原則之一。區(qū)塊鏈技術(shù)是上個(gè)世紀(jì)最具...
    盤(pán)木閱讀 1,202評(píng)論 0 0
  • 貌似有關(guān)幸福的話(huà)題是老生常談,估計(jì)在各個(gè)公眾號(hào)和網(wǎng)站論壇關(guān)于幸福的話(huà)題,一找一大把。有關(guān)幸福的認(rèn)知也有很多名人大家...
    悠悠兮閱讀 311評(píng)論 4 3
  • 【回顧盤(pán)面】: 10月11日(周三)早盤(pán)兩市小幅低開(kāi)后震蕩走高,盤(pán)中次新股跳水,影響創(chuàng)業(yè)板指下行,滬深指數(shù)...
    財(cái)爺_f21c閱讀 415評(píng)論 0 0
  • 母親節(jié)到了,我的母親已于16年前永遠(yuǎn)的離開(kāi)了我們,今天對(duì)于我來(lái)說(shuō),是過(guò)了一個(gè)沒(méi)有母親的母親節(jié)。 雖然媽媽離開(kāi)了我們...
    sequoia閱讀 332評(píng)論 0 4