主頁 > 區塊鏈 > 位元幣白皮書精讀翻譯

位元幣白皮書精讀翻譯

2021-10-08 09:00:59 區塊鏈

摘要:

一個純正的P2P電子貨幣系統可以繞過第三方金融機構從而實作在線支付,電子簽名是解決方案的一部分,但是最主要的問題是,我們仍然需要一個可信第三方來防止雙花攻擊,我們提出了一個利用p2p網路解決雙花問題的方案,這個網路將交易哈希化成一條持續的基于哈希的作業量證明鏈,同時對交易加上時間戳,形成一個不可篡改的記錄(除非重做作業量證明),最長鏈不僅作為一系列目睹事件的證據,同時也是它來自最大CPU池的證據,只要大多數的CPU算力被誠實者掌控著,他們就可以生成最長鏈且快于攻擊者,這個網路它需要最小的結構,在這里,訊息的傳遞使用best-effort機制,節點可以根據意愿離開或再加入到網路中,他們接受最長的POW鏈最為他們離開時候發生事件的證據,

1.介紹

互聯網上的評論幾乎都依賴于金融機構作為可信第三方從而實作電子交易,當這個系統對大多數交易都友好,它就會受到基于信任的模型的內在缺點的威脅,完全不可退回的交易是不太現實的,因為金融機構不可能避免調解糾紛,調解的費用會增加交易費,限制了實際交易的最小規模,削減了小型任意交易的可能性,而且,失去為不可退回的服務提供不可退回的交易,這將是一個更大的消費,由于存在撤回的可能,信任因此顯得格外重要,商人必須格外小心他們的消費者,爭取獲得更多他們的資訊,同時盡量隱蔽自己,一定程度的欺詐是可以接受的,因為它是不可避免的,這些花費和交易的不確定性可以通過使用物理貨幣進行避免,但是在缺乏信任方的情況下,沒有一種機制可以實作信道中的交易,

我們現在亟需一個電子支付系統,它是基于密碼學證明的而不是純信任的,它允許在沒有可信第三方的情況下任意兩個有意愿的交易方直接進行交易,這些在計算上不可退回的交易可以防止欺詐的賣家,同時日常的托管機制可以輕易地實作來保護買家,本文中,我們提出了一種針對雙花問題的方法,它使用了P2P的分布式時間戳服務來生成一個按時序順序的交易的計算量證明,只要誠實的節點掌控的CPU算力大于任何腐敗集團,這個系統就是安全的,

2.交易

我們將電子貨幣定義為一串的電子簽名,每一個支付方通過對前一個交易和接收方的公鑰的共同哈希進行電子簽名來傳輸電子貨幣,然后將這個被簽名的哈希放到貨幣的最后,這樣,一個接收方可以通過支付方的公鑰進行簽名的驗證從而驗證鏈上貨幣的歸屬權,

在這里插入圖片描述

那么,這里存在的問題是啥咧?沒錯!就是接收方不能驗證支付方是否對交易的貨幣進行了雙花,一種通常的解決方法是介入一個可信的中心權威機構,或者一個鑄幣廠,以此來檢查交易是否被雙花,在鑄幣廠情境中,每一個交易中的貨幣都必須返還到鑄幣廠中,然后鑄幣廠生成新的貨幣給接收方,只有直接來自鑄幣廠的貨幣才是可信的,且可以保證不是雙花的,這個解決方案的缺點很明顯啊,就是整個金錢的系統都依賴于一個運行鑄幣廠的機構,所有的交易都必須經過鑄幣廠的處理,就像一個銀行一樣啊呵呵!(去中心化思想何在!我們要的可是民主!我們不想被限制!隱私不想被窺探!)

我們需要一個途徑幫助接受方去確認支付方沒有對更早的交易進行簽名(從而形成雙花),為了達到我們的目的,早期的交易是我們需要關心的,所以我們無需對后期的雙花嘗試,確認一個交易是否缺席的唯一方法那當然是關注所有的交易,在基于鑄幣廠的模型中,鑄幣廠對所有交易都是感知的,它可以決定哪個交易來的更早,然而,如果在沒有可信第三方的情況下關注所有的交易,那么所有的交易必須公開通告,并且,我們需要打造一個共識系統,這樣的話參與者們就可以統一一個單一交易歷史順序,那么,接收方如果想確認一個交易,就需要大多數節點同意它是第一個發送的(從而不是第二個形成雙花的交易),

3.時間戳服務

我們提出的解決方法以一個時間戳服務開始,一個時間戳服務是通過對區塊里的各項取哈希然后廣播這個哈希,正如在一個報紙上或Usenet post中,時間戳哈希可以證明某個資料在某個時段必定存在, 這樣就可以進入哈希中(沒看懂它在說啥,,,),每一個時間戳(哈希)包括前一個區塊(時間戳)的哈希,形成一條鏈,這樣就會逐步加強時間戳的哈希依賴,從而變得不可篡改,

emmm,其實這段的時間戳就是區塊的哈希吧,寫的花里胡哨的,

在這里插入圖片描述

4.作業量證明

為了實作基于p2p的分布式區塊連接(時間戳服務),我們需要引入一種作業量證明(類似于Adam Back的哈希現金),而不是之前提到的報紙或Usenet posts,作業量證明要求我們搜索一個值的哈希,這個哈希可以使用sha256演算法,要求這個哈希以一定數量的0作為開頭,隨著開頭的0的數量增加,作業量證明的作業會成指數式增加,但是我們可以通過執行一個簡單的哈希來驗證它,

在我們的時間戳網路中,我們通過對一個區塊中的亂數nonce進行增量直到它的哈希滿足區塊指定的0位元個數來實作作業量證明,一旦CPU總算力擴增使得作業量證明被滿足,區塊就不可能再改變其中的內容,除非重做作業量證明,如果后面鏈接上更多的區塊,改變區塊內容所需要的作業就包括重做后面所有區塊的作業量證明,

在這里插入圖片描述

作業量證明同時解決了決定大多數人意愿代表的問題,如果大多數人式基于一個ip一個投票的準則,那么他可能被一人多ip的情況給hack掉,作業量證明必須是一個cpu一個投票,其中最長鏈代表的是大多數人的意見,其中必定包含著最大量的作業量證明,如果大部分算力被掌控在誠實節點中,誠實鏈將會增長地最快同時超過任何與之比較的鏈,若要改變一個過去的區塊,攻擊者首先需要重做該區塊的作業量證明,以及后面所有區塊的作業量證明,同時還要追上和超過所有誠實節點做出的新的作業量證明,我們將會在后面給出一個慢速的攻擊者追上誠實者鏈條的可能性,這個可能性將會隨著區塊的增加呈指數式增長!害!attacker沒戲了,但這個證明確實挺迷!

為了彌補硬體速度的增長以及各個時間運行節點的不同激勵,作業量證明的難度會根據每小時生成的區塊數量移動平均的目標值,也就是說,如果區塊生成的速度過快,那么難度就會增加,使得生成區塊的間隔時間相對穩定!

5.網路

網路運行的步驟如下所示:

1)新的交易被廣播道所有節點
2)每一個節點將新的交易打包進一個區塊中
3)每個節點找一個符合當前塊難度的作業量證明
4)當一個節點找到了作業量證明,它將它的區塊廣播到全網
5)如果這個被廣播的區塊中的所有交易都是合法的且沒有被雙花,那么其余節點就接受這個區塊
6)其他節點通過沿著這個區塊繼續生成新的區塊表示他們對這個區塊的認可,也就是使用這個被接受的區塊的哈希作為“前一區塊的哈希”

節點總是認為最長鏈是正確的,而且會致力于擴展它,如果兩個節點同時廣播了不同版本的下一個區塊,一些節點可能會先收到一個,而另一些則會先收到另一個,在這種情況下, 他們將會以先收到的區塊作為前一個區塊繼續挖礦,但同時也保留著后收到的另一個分支防止它變得更長,當下一個作業量證明被找到,其中一個分支就會變得更長,這種平衡就會被打破;那些還在尋找短分叉的節點就會迅速地轉到長分叉中(因為挖礦具有無記憶性,繼續在短的分叉挖沒有任何優勢哦)

新的交易不需要廣播到所有的節點,只要新得交易可以到達大多數系欸但,他們就可以很快進入一個區塊中,區塊的廣播也是容忍資訊丟失的,如果一個節點沒有收到一個區塊,當它收到下一個區塊的時候它就會發現它miss掉了一個,他就可以向其他節點pull一下miss的block,

6.激勵

通常來說,區塊中的第一筆交易是一個特殊的交易,它是一個生錢的交易且屬于區塊的創造者,這為所有節點支持網路提供了一定的激勵,同時也提供了一種初始化分配貨幣使其進入交易的策略,因為這里并沒有中心的權威機構來解決發幣問題,這個平穩的新幣增量正如礦工通過增加資源(設備)來增加礦產從而進入交易回圈中一樣,在我們的情況中,所謂的資源就是cpu和電力的消耗,

交易費也可以作為激勵的一種,如果交易的輸出金額小于輸入金額,不用驚慌,這里的差值被加到了包含這個交易的區塊中的激勵中了,一旦一定量的貨幣進入交易回圈,激勵就可以完全地轉變成交易費,而且可以抵御通貨膨脹,

這種激勵可以幫助鼓勵節點保持誠實,如果一個貪婪的攻擊者可以聚集比所有誠實者更多的cpu算力,它可以有兩種選擇,一是通過欺詐的手段重新奪回它之前的支付,二是生成新的區塊而獲得激勵,他應該會發現按照規則來玩應該是更賺的,btc的規則可以讓他獲得比其他人加起來更多的貨幣,也比它通過破壞系統以及它自己財富的合法性獲得的貨幣要更多哦!

7.回收磁盤空間

一旦一個貨幣的最近交易被埋在足夠深的區塊中,在這之前的已經完成的交易就可以被丟棄,從而節省磁盤空間,為了完成這種操作,同時也不破壞區塊的哈希,交易被藏在了哈希樹里面,只有根被包括在區塊的哈希中,老舊的區塊可以通過剪枝的方式來進行資料壓縮,內部細節的哈希值不需要被存盤了,

在這里插入圖片描述
一個區塊頭(不包含交易)大概占80個位元組,如果我們假設平均10分鐘生成一個區塊,一年就會有4.2MB的資料,隨著當前2008年的計算機系統通常都是配置2GB的RAM,隨著摩爾定律說的每年1.2GB的增速,存盤應該不成問題(及時區塊頭要保存在記憶體中)

8.簡化的支付驗證

在不運轉全節點的情況下,驗證交易也是可能的,用戶只需要copy一份最長作業量證明鏈的所有區塊頭資訊,它可以通過詢問全節點們直到他確信自己拿到了最長鏈,然后獲得對應交易所在區塊上的Merkle樹的枝葉,他不能獨自驗證該交易的合法性,但是他可以merkle tree連接到某個區塊的區塊頭上,他可以發現,這個區塊是被全節點所認可的,而且后面延續的區塊進一步地增加了他的可信度,

在這里插入圖片描述

這樣,只要誠實節點控制著網路,驗證就是可靠的,但如果網路被攻擊者掌控著,驗證就會更加地脆弱,當全節點可以自發地驗證交易,攻擊者可以通過簡單地偽造交易來糊弄全節點(只要攻擊者持續接管網路),一個抵御攻擊的策略就是接受全節點的警告(當全節點偵察到有非法的區塊,促使用戶的軟體取下載完整的區塊和被警告的交易來驗證不一致性),然而,需要接受頻繁支付的公司可能還是希望將他們的節點運轉在更獨立安全和快速驗證的系統當中,

9.組合和拆分交易

雖然可以在個人層面解決交易問題,但是如果在每一次交易中都是分分毫毫的獨立交易,這將是比較笨重的,為了允許價值可以被拆分和組合,交易包含著若干個輸入和輸出,通常來說,要么是有一個來自于前一個交易的大額輸入,要么是有多個輸入(小額輸入結合),但是輸出最多只有兩個:一個是支付的輸出,另一個是找零錢的輸出(歸還給支付方)

在這里插入圖片描述

在輸出埠中,通常都有一個交易依賴于其他幾個交易,而且那幾個交易又依賴于更多的交易,這將不是一個問題了,我們沒有必要抽取出一個獨立的交易歷史副本出來,

10.隱私

在傳統的銀行模型中,他們實作了許多層級的隱私模式(通過限制不同集體對資訊的權限,包括第三方可信集團),如果要堂而皇之地將所有交易公之于眾,我們不能采取這種模型,然而隱私仍然可以被保護(通過另一種方式切斷資訊流):使用匿名公鑰技術,大眾可以看到某人給某人發送一定量的貨幣,但是交易具體的雙方是不得而知的,這就類似于股票交易中發布的資訊層級,個人交易的時間和規模(傳說中的“錄像帶”),都是公開的,但是我們并不知道交易的雙方是誰,

在這里插入圖片描述

作為一個額外的防火墻,每一次新的交易都應該生成一個新的密鑰對以防止可以鏈接到同一個共同的擁有者,然而,在多輸入的交易中,一些鏈接仍然是不可避免的,這就暴露了他們的輸入是屬于同一個擁有者的,風險就是,一個在現實世界的擁有者的密鑰暴露了,與它相關的所有交易都會暴露出來,害!

11.計算

我們現在考慮這樣的一個情景,一個攻擊者嘗試生成另一條鏈(分叉攻擊),生成速度想超過誠實者的鏈,即時這種想法實作了,這也不會使得系統公開地進行強制轉換,例如無中生有得到貨幣或者從攻擊者外的賬戶中偷錢,因為,其他節點是不會接受這些違法的交易的,誠實的節點也不會接受包含這些交易的區塊,攻擊者只可以嘗試取改變它其中的一個交易,從而取回它最近花費的貨幣,

誠實鏈和攻擊鏈可以看作是貝努力的隨機游走模型,成功的事件就是誠實鏈得以增加一個區塊,通過+1來增大領先優勢;失敗的事件就是攻擊鏈得以增加一個區塊,通過-1來減少相差的區塊,

攻擊鏈追上誠實鏈的可能性類似于賭徒輸光問題,假設一個賭徒(信用有限)開始的時候有一定的負債,然后想通過無限的賭局來償還賭債,我們可以計算它可以償還賭債的概率,也就是相當于攻擊鏈可以追上誠實鏈的概率,

我們設:
p = 誠實鏈找到下一個區塊的概率
q = 攻擊鏈找到下一個區塊的概率
qz = 在落后z個區塊的情況下,攻擊者可以追上誠實鏈的概率

在這里插入圖片描述

證明細節詳見:
隨機游走模型證明

考慮到我們的假設是p > q,隨著z的增大,攻擊者能追上的概率呈指數式下降,這又能怎么辦呢?幾率并不向著攻擊者,如果攻擊者不能足夠幸運的話, 當他追趕有段距離后他的機會就會幾近消失!

我們現在考慮,作為一個新交易的接收者,它需要等多久才能充分地確保發送方不可能改變交易,我們假設發送方是一個攻擊者,它想讓接收方相信它已經支付了一段時間了,然后咧過一段時間它就開始使壞了,它轉頭就把交易重新交易給自己的另一個賬號,當這種壞事發生的時候,接受方將會有所警覺,但是發送方希望這個警覺盡可能地遲,這樣就無法更改了嘿嘿嘿,

接收者應當乘勝一個新的密鑰對,然后在簽名前將公鑰交給發送者(注意,一定不要給的太早!越晚給越安全!),這可以防止發送方提前一大段時間然后準備了一大條區塊鏈子來接到當前的鏈上,從而形成最長鏈,但這也要它足夠幸運才可以找到這么長的鏈呵呵,但是,一旦它找到,它就可以在一瞬間接上若干個區塊,使得非法的交易難以篡改了,自這個交易被廣播起,攻擊節點就開始秘密地再本來挖一條平行于誠實鏈的攻擊鏈,這條鏈中包含了它的交易的另一個版本(獲利版本),

接收方一直等啊等,等到交易被包含在某個區塊中,并且這個區塊后面又有新的z個區塊,然而,它并不知道攻擊者在暗地里偷偷地挖了多長的攻擊鏈,但可以假設的是,誠實的區塊耗費的時間是期望時間,那么攻擊者的成果將會是一個Poisson分布,其中均值(長度)為:

在這里插入圖片描述

這個式子很容易理解,就是按照成功的比率等比到區塊的長度而已

為了得到攻擊者仍可以追上誠實鏈的概率,我們呢將泊松的密度(已做的努力)和從當前點到追上的概率(仍需要的努力)乘起來:

在這里插入圖片描述
將其化為有窮項相加:

在這里插入圖片描述
轉換成C代碼:

在這里插入圖片描述
我們固定q(攻擊者挖到下一區塊的概率),來看看攻擊成功的概率:

在這里插入圖片描述
確實隨著z的增大呈指數式下降

另一方面,我們控制攻擊成功的概率 小于千分之一:

在這里插入圖片描述
可以解出每一個q對應的一個安全z
我們目前用的是6個區塊的確認時間,也就是默認q的值應該不會大于0.1很多

12.結論

我們提出了一個無需依賴于信任的電子交易系統,我們以基于電子簽名的通用貨幣框架作為出發點,它可以提供擁有權的強控制,但是它無法提供抵御雙花攻擊的途徑,為了解決這點,我們提出了一個基于作業量證明的p2p網路,以此來記錄交易的公共歷史從而使得攻擊者在計算力上不可能實作篡改(前提是誠實節點占據大多數算力),這個網路在其無結構的簡單性下,顯得很robust!各個節點只需小小的協調就是同時作業,他們不需要互相識別對方,因為所有資訊并不是一定要傳到某個特定的地方,它們只需要best-effort就好了,各個節點可以在自我意愿下離開或再加入網路,同時接受作業量證明的最長鏈作為他們離開時段的記錄,他們用cpu算力進行投票,通過延長合法區塊來表示認可,通過拋棄非法區塊表示唾棄,在此共識機制下,各種需要的規則和激勵都可以被增強,

個人總結:
居然翻譯了我整個國慶假期,終于可以做ppt了,累死狗頭.jpeg

轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/306304.html

標籤:區塊鏈

上一篇:AAAI 2021:僅有的8篇量化投資論文(論文+代碼)

下一篇:位元幣原始碼分析 腳本(二)

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • JAVA使用 web3j 進行token轉賬

    最近新學習了下區塊鏈這方面的知識,所學不多,給大家分享下。 # 1. 關于web3j web3j是一個高度模塊化,反應性,型別安全的Java和Android庫,用于與智能合約配合并與以太坊網路上的客戶端(節點)集成。 # 2. 準備作業 jdk版本1.8 引入maven <dependency> < ......

    uj5u.com 2020-09-10 03:03:06 more
  • 以太坊智能合約開發框架Truffle

    前言 部署智能合約有多種方式,命令列的瀏覽器的渠道都有,但往往跟我們程式員的風格不太相符,因為我們習慣了在IDE里寫了代碼然后打包運行看效果。 雖然現在IDE中已經存在了Solidity插件,可以撰寫智能合約,但是部署智能合約卻要另走他路,沒辦法進行一個快捷的部署與測驗。 如果團隊管理的區塊節點多、 ......

    uj5u.com 2020-09-10 03:03:12 more
  • 谷歌二次驗證碼成為區塊鏈專用安全碼,你怎么看?

    前言 谷歌身份驗證器,前些年大家都比較陌生,但隨著國內互聯網安全的加強,它越來越多地出現在大家的視野中。 比較廣泛接觸的人群是國際3A游戲愛好者,游戲盜號現象嚴重+國外賬號安全應用廣泛,這類游戲一般都會要求用戶系結名為“兩步驗證”、“雙重驗證”等,平臺一般都推薦用谷歌身份驗證器。 后來區塊鏈業務風靡 ......

    uj5u.com 2020-09-10 03:03:17 more
  • 密碼學DAY1

    目錄 ##1.1 密碼學基本概念 密碼在我們的生活中有著重要的作用,那么密碼究竟來自何方,為何會產生呢? 密碼學是網路安全、資訊安全、區塊鏈等產品的基礎,常見的非對稱加密、對稱加密、散列函式等,都屬于密碼學范疇。 密碼學有數千年的歷史,從最開始的替換法到如今的非對稱加密演算法,經歷了古典密碼學,近代密 ......

    uj5u.com 2020-09-10 03:03:50 more
  • 密碼學DAY1_02

    目錄 ##1.1 ASCII編碼 ASCII(American Standard Code for Information Interchange,美國資訊交換標準代碼)是基于拉丁字母的一套電腦編碼系統,主要用于顯示現代英語和其他西歐語言。它是現今最通用的單位元組編碼系統,并等同于國際標準ISO/IE ......

    uj5u.com 2020-09-10 03:04:50 more
  • 密碼學DAY2

    ##1.1 加密模式 加密模式:https://docs.oracle.com/javase/8/docs/api/javax/crypto/Cipher.html ECB ECB : Electronic codebook, 電子密碼本. 需要加密的訊息按照塊密碼的塊大小被分為數個塊,并對每個塊進 ......

    uj5u.com 2020-09-10 03:05:42 more
  • NTP時鐘服務器的特點(京準電子)

    NTP時鐘服務器的特點(京準電子) NTP時鐘服務器的特點(京準電子) 京準電子官V——ahjzsz 首先對時間同步進行了背景介紹,然后討論了不同的時間同步網路技術,最后指出了建立全球或區域時間同步網存在的問題。 一、概 述 在通信領域,“同步”概念是指頻率的同步,即網路各個節點的時鐘頻率和相位同步 ......

    uj5u.com 2020-09-10 03:05:47 more
  • 標準化考場時鐘同步系統推進智能化校園建設

    標準化考場時鐘同步系統推進智能化校園建設 標準化考場時鐘同步系統推進智能化校園建設 安徽京準電子科技官微——ahjzsz 一、背景概述隨著教育事業的快速發展,學校建設如雨后春筍,隨之而來的學校教育、管理、安全方面的問題成了學校管理人員面臨的最大的挑戰,這些問題同時也是學生家長所擔心的。為了讓學生有更 ......

    uj5u.com 2020-09-10 03:05:51 more
  • 位元幣入門

    引言 位元幣基本結構 位元幣基礎知識 1)哈希演算法 2)非對稱加密技術 3)數字簽名 4)MerkleTree 5)哪有位元幣,有的是UTXO 6)位元幣挖礦與共識 7)區塊驗證(共識) 總結 引言 上一篇我們已經知道了什么是區塊鏈,此篇說一下區塊鏈的第一個應用——位元幣。其實先有位元幣,后有的區塊 ......

    uj5u.com 2020-09-10 03:06:15 more
  • 北斗對時服務器(北斗對時設備)電力系統應用

    北斗對時服務器(北斗對時設備)電力系統應用 北斗對時服務器(北斗對時設備)電力系統應用 京準電子科技官微(ahjzsz) 中國北斗衛星導航系統(英文名稱:BeiDou Navigation Satellite System,簡稱BDS),因為是目前世界范圍內唯一可以大面積提供免費定位服務的系統,所以 ......

    uj5u.com 2020-09-10 03:06:20 more
最新发布
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:46:47 more
  • Hyperledger Fabric 使用 CouchDB 和復雜智能合約開發

    在上個實驗中,我們已經實作了簡單智能合約實作及客戶端開發,但該實驗中智能合約只有基礎的增刪改查功能,且其中的資料管理功能與傳統 MySQL 比相差甚遠。本文將在前面實驗的基礎上,將 Hyperledger Fabric 的默認資料庫支持 LevelDB 改為 CouchDB 模式,以實作更復雜的資料... ......

    uj5u.com 2023-04-16 07:28:31 more
  • .NET Core 波場鏈離線簽名、廣播交易(發送 TRX和USDT)筆記

    Get Started NuGet You can run the following command to install the Tron.Wallet.Net in your project. PM> Install-Package Tron.Wallet.Net 配置 public reco ......

    uj5u.com 2023-04-14 08:08:00 more
  • DKP 黑客分析——不正確的代幣對比率計算

    概述: 2023 年 2 月 8 日,針對 DKP 協議的閃電貸攻擊導致該協議的用戶損失了 8 萬美元,因為 execute() 函式取決于 USDT-DKP 對中兩種代幣的余額比率。 智能合約黑客概述: 攻擊者的交易:0x0c850f,0x2d31 攻擊者地址:0xF38 利用合同:0xf34ad ......

    uj5u.com 2023-04-07 07:46:09 more
  • Defi開發簡介

    Defi開發簡介 介紹 Defi是去中心化金融的縮寫, 是一項旨在利用區塊鏈技術和智能合約創建更加開放,可訪問和透明的金融體系的運動. 這與傳統金融形成鮮明對比,傳統金融通常由少數大型銀行和金融機構控制 在Defi的世界里,用戶可以直接從他們的電腦或移動設備上訪問廣泛的金融服務,而不需要像銀行或者信 ......

    uj5u.com 2023-04-05 08:01:34 more
  • solidity簡單的ERC20代幣實作

    // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.7.0 <0.9.0; import "hardhat/console.sol"; //ERC20 同質化代幣,每個代幣的本質或性質都是相同 //ETH 是原生代幣,它不是ERC20代幣, ......

    uj5u.com 2023-03-21 07:56:29 more
  • solidity 參考型別修飾符memory、calldata與storage 常量修飾符C

    在solidity語言中 參考型別修飾符(參考型別為存盤空間不固定的數值型別) memory、calldata與storage,它們只能修飾參考型別變數,比如字串、陣列、位元組等... memory 適用于方法傳參、返參或在方法體內使用,使用完就會清除掉,釋放記憶體 calldata 僅適用于方法傳參 ......

    uj5u.com 2023-03-08 07:57:54 more
  • solidity注解標簽

    在solidity語言中 注釋符為// 注解符為/* 內容*/ 或者 是 ///內容 注解中含有這幾個標簽給予我們使用 @title 一個應該描述合約/介面的標題 contract, library, interface @author 作者的名字 contract, library, interf ......

    uj5u.com 2023-03-08 07:57:49 more
  • 評價指標:相似度、GAS消耗

    【代碼注釋自動生成方法綜述】 這些評測指標主要來自機器翻譯和文本總結等研究領域,可以評估候選文本(即基于代碼注釋自動方法而生成)和參考文本(即基于手工方式而生成)的相似度. BLEU指標^[^?88^^?^]^:其全稱是bilingual evaluation understudy.該指標是最早用于 ......

    uj5u.com 2023-02-23 07:27:39 more
  • 基于NOSTR協議的“公有制”版本的Twitter,去中心化社交軟體Damus

    最近,一個幽靈,Web3的幽靈,在網路游蕩,它叫Damus,這玩意詮釋了什么叫做病毒式營銷,滑稽的是,一個Web3產品卻在Web2的產品鏈上瘋狂傳銷,各方大佬紛紛為其背書,到底發生了什么?Damus的葫蘆里,賣的是什么藥? 注冊和簡單實用 很少有什么產品在用戶注冊環節會有什么噱頭,但Damus確實出 ......

    uj5u.com 2023-02-05 06:48:39 more