主頁 > 區塊鏈 > 區塊鏈基本原理概述

區塊鏈基本原理概述

2021-09-17 10:55:04 區塊鏈

1. 簡介

有關區塊鏈的介紹文章太多了,自己讀了很多篇,感徑訓是理解不深,我在這里也以自己的理解來做個說明,個別圖片和表格來自網路,如果原作者認為不合適可以聯系作者洗掉,本文的主要內容已作為ICAA 2021英文會議論文“Overview of the basic principles of blockchain”發表,覺得有必要與國內讀者分享,

  作為位元幣的底層實作技術,區塊鏈受到了政府部門和企業的高度關注,并在金融領域和非金融領域展開了廣泛研究與應用,區塊鏈本質上是一個由若干區塊構成的資料鏈,這條資料鏈被分散保存到多個計算機節點,這些計算機節點相互獨立,相互不信任,沒有一個權威的中心節點,因而區塊鏈被認為是一個“去中心化”、“去信任”的系統,在這兩個概念中,“去中心化”是方法,“去信任”是目的,后者需要通過前者來解決;很多人強調前者,但后者才是根本,“去信任”是指去除第三方信任,交易雙方不經過可信的第三方而直接交易,然而,區塊鏈本身并不要求交易雙方互信,交易資料允許存在造假和欺騙,由此導致在位元幣的底層可能同時存在多條區塊鏈,但通過“共識機制”、“獎勵”、“造假懲罰”等措施,最終區塊鏈為位元幣建立了一套可靠的、可信任的解決方案,然而,在一些小型應用中,“共識機制”和“獎勵”并不能從根本上解決“去信任”或資料造假問題,當前開發的很多區塊鏈應用,某種程度上都建立在“信任”的基礎上,與位元幣的區塊鏈有較大區別;即便如此,其中的一些系統仍能解決其他技術所難以解決的問題,并具有較高應用價值,本文重點闡述位元幣的區塊鏈的基本原理,并為基于區塊鏈技術開發應用提供一些合理化建議,

2. 區塊鏈與位元幣

2.1 區塊鏈發展歷史

位元幣是上層應用,區塊鏈是位元幣的底層實作軟體,區塊鏈的發展經歷了三個階段,分別是1.0、2.0、3.0,

區塊鏈1.0是以位元幣為代表的虛擬貨幣時代,實作了貨幣的去中心化與支付手段,涌現出了大量的山寨幣等,區塊鏈1.0支持兩個人之間的虛擬貨幣交易,無法普及到其他行業,

區塊鏈2.0多了智能合約的概念,一個交易允許多個人共同簽名后發送給別人,智能合約給金融領域提供了更加廣泛的應用場景,譬如多方合同下的商品買賣,區塊鏈2.0的代表是以太坊,支持智能合約并提供編程介面,用戶可以開發自己的虛擬貨幣,區塊鏈2.0通常應用于金融領域,

區塊鏈3.0則將區塊鏈應用于金融行業之外的其他行業,區塊鏈3.0被稱為互聯網技術之后的新一代技術創新,足以推動更大的產業改革,由于不再依賴于第三方或某機構獲取信任與建立信用,區塊鏈技術能夠提高整體系統的作業效率,區塊鏈3.0的代表是Hyperledger Fabric,該軟體在交易時不需要手續費,

2.2 位元幣的價值和獲取

位元幣從誕生之日起,具有濃厚的投機性,且缺乏第三方監管,像人民幣、美元、歐元都是依賴國家信用和黃金儲備等而作為流通貨幣,但位元幣的信用卻是一些數學演算法,由于不具備明確的價值基礎,因而在中國被認為是非法活動,

位元幣至少可以通過三種途徑獲得,一是從一些交易網站上購買獲得;二是別人通過位元幣軟體轉賬而獲得;三是通過位元幣軟體挖礦獲得,“挖礦”是區塊鏈的核心概念之一,在后續將逐步對其展開描述,本文不討論非法交易,只是對區塊鏈的基本原理進行探討研究,

3. 兩個數學演算法

區塊鏈采用了兩個基礎的數學演算法:非對稱加密和哈希函式,通過這兩個演算法對資料進行加密和解密,并使得資料很難被第三方破解,

3.1 非對稱加密演算法

對稱加密只有一個密鑰,加密和解密都使用它,譬如,用“123456”作為密碼壓縮一個檔案夾,在解壓時也同樣使用該字串,

非對稱加密則有兩個不同的密鑰:公鑰和私鑰,如果用公鑰對資料進行加密,只有用對應的私鑰才能解密;如果用私鑰對資料進行加密,那么只有用對應的公鑰才能解密,通常將公鑰發給其他人,私鑰自己留著;其他人可以通過公鑰進行加密,但只有自己才有私鑰解密,因而安全性較高,

3.2 哈希演算法

數學中的模運算(取余數)是一種極簡單的哈希演算法,譬如1,2,3,4,5,6,7,10001除以4后的余數分別為1,2,3,0,1,2,3,1,以另一種形式可以寫成:hash(1)=1, hash(2)=2, hash(3)=3, hash(4)=0, hash(5)=1, hash(6)=2, hash(7)=3, hash(10001)=1,可以看出,在哈希演算法中,不同的數可能有相同的值,

科學家們創建了很多更復雜的哈希演算法,譬如MD5、SHA1、SHA256等,下表列出了字串“Hello World!”對應的各個哈希演算法的取值,

哈希演算法

哈希值

二進制位數

MD5

ED076287532E86365E841E92BFC50D8C

128

SHA1

2EF7BDE608CE5404E97D5F042F95F89F1C232871

160

SHA256

7F83B1657FF1FC53B92DC18148A1D65DFC2D4B1FA3D677284ADDD200126D9069

256

這些哈希演算法具有這樣的特點:

  • 給定一個字串key,容易計算其哈希值value;
  • 給定一個哈希值value,很難推出對應的key,

雖然從理論上來說,可能有多個key對應同一個value,但實際上概率很低,因此,可以近似地認為key與value是一一對應的,value被稱為key的資料指紋,資料指紋意味著很難造假,一個value只能找到一個匹配的key,

4. 區塊鏈邏輯結構

4.1 鏈表

  區塊鏈由“區塊”和“鏈”兩個詞組成,“區塊”用于保存資料,對于位元幣來說,大約每10分鐘產生1個區塊,由其存放10分鐘內的所有交易,交易存放的是貨幣所有權從一個人到另外一個人的流轉資訊,每個交易都需要一定的手續費,在區塊鏈中被稱之為“汽油”,

  資料鏈有正向鏈、反向鏈、雙向鏈之分,

  • 正向鏈,支持從鏈表的頭向后搜索,
  • 反向鏈,支持從鏈表的尾部向前回溯搜索,
  • 雙向鏈,支持雙向搜索,是一種效率較高的資料結構,

  區塊鏈采用反向鏈,便于從后向前追溯,對比幾種鏈表結構,有下列結論,

  命題1. 高性能不是區塊鏈考慮的根本因素,

  另外,區塊鏈中的第一個區塊被稱之為“創世區塊”,

4.2 去中心化

如圖1所示,左側是一個中心化的架構,節點5中的資料庫可以被其他4個節點所共享,便于讀取和修改操作,

右側是一個去中心化的P2P架構,所有節點對等,并且每個節點都保存一個完整的區塊鏈,這種架構本質上是一種多副本備份機制,具有更好的可靠性,

?

?

圖1. 中心化與區塊鏈

圖2. 塊結構

  命題2. 區塊鏈不能太大,

  對于位元幣來說,世界上任何人都可以參與挖礦,區塊鏈太大可能導致普通電腦無法保存整個區塊鏈,導致很多人無法參與,10多年以來,當前的區塊鏈只有300g之多,能夠為一般電腦所保存,

  命題3. 區塊鏈不要更新太快,

  再次強調,這里是指位元幣的區塊鏈,一個區塊需要包括一段時間之內的幾乎所有的交易,由于交易在互聯網的所有節點之間進行傳遞,如果更新太快,則可能有些交易不能被打入區塊鏈;另外,由于所有節點都可以挖礦,互聯網上會存在多個不一致的區塊鏈,

4.3 挖礦

  區塊鏈由多個區塊組成,所謂挖礦是指生成一個新區塊的程序,

  如圖2所示,一個區塊由區塊頭和區塊體組成[參見: https://cloud.tencent.com/developer/news/167233 ; http://www.woshipm.com/blockchain/1022259.html],

  區塊體包含10分鐘內的所有交易,圖中顯示了4個交易,給每個交易求哈希值,得到hash1、hash2、hash3、hash4,然后每兩個再求hash值,一直到最后得到一個hash1234,即為區塊頭中的默克爾根,如果在區塊體中添加、洗掉、修改某一個交易,則默克爾根就會變化,

  區塊頭主要包括6個要素:hash(parent)、版本、默克爾根、時間戳、難度目標、亂數,所謂挖礦,就是確定這6個值,

  在前一個區塊也包含這6個要素,它們的hash值即為hash(parent),由此可知,如果某一個區塊造假,則需要修改它后面所有區塊的hash(parent),難度很大,

  為了使得每10分鐘生成一個區塊,設定了難度目標值,隨著計算機的性能越來越高,該值是動態變化的,如下面公式所示,系統每隔2016 個區塊會根據上一周期的挖礦時間來調整挖礦難度,對于一個具體的區塊而言,該值是固定不變的,

DifficultyTarget = 0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF/Difficulty

從這里可以查到,第674000區塊的難度為21,448,277,761,059.70,從674001區塊查到第674000區塊中6個要素的哈希值如下,這個哈希值前面有19個0,要滿足這個條件就必須進行大量的計算,求出其他的幾個要素,

00000000000000000007f8d1652e3bf35c9d2672be4834fef6ebc6f1c407bd8c

在6個要素中,hash(parent)、版本、默克爾根、難度目標都是固定的,時間戳表示區塊生成的時間,亂數是可變的,在分布式系統中,不要求每個計算機的時鐘完全一致,時間戳的變化對別人而言意義不大;因而為了簡化挖礦難度,時間戳也可以事先確定,這樣,在6個要素中只需要求出亂數,

亂數通常從0開始一個個地嘗試,看6個要素的哈希值是否滿足難度,如果某個亂數滿足難度,就表示挖礦成功,新的區塊生成后被廣播到相鄰的其他節點,

第674000區塊的亂數為4,275,554,107,可見挖礦的作業量挺大,在區塊鏈中,把這樣的作業量叫做作業量證明POW,

從事挖礦的人稱為礦工,由于第1個挖礦成功的人會有位元幣獎勵,并且能識訓所有交易的手續費,因而礦工都在想方設法提高挖礦效率,

命題4. 高性能是礦工追求的因素,

4.4 共識機制

  若同一時段只有一個合法區塊被生產出來,而沒有與之競爭的其他合法區塊,該區塊將會被接收;若存在競爭區塊,則51%以上的節點確認,累計難度最大且最長的鏈最侄訓被接收,沒有被接收的其他合法區塊則成為孤塊,被淘汰出局,

  所謂共識機制,即指得到大多數(51%以上)節點確認,

4.5 去信任

  在互聯網中,節點之間沒有絕對的信任,實際上,如果大多數節點都造假,則區塊鏈將沒有價值,為了防止造假,除了去中心化外,區塊鏈至少還采用了下面幾項措施,

  • 當一個節點收到另一個節點的區塊后,會通過哈希值對區塊鏈進行檢查確認,如果區塊鏈造假或者不是最長的區塊鏈,則丟棄,
  • 挖礦成功會有獎勵,并且能獲得該區塊中所有交易的手續費,自從中本聰創建第1個區塊并獲得50枚位元幣后,每挖出21萬個區塊(大約4年)后,獎勵減半,當沒有獎勵后仍能獲得手續費,
  • 造假代價很大,對于區塊1、區塊2、...、區塊n構成的區塊鏈,如果區塊1造假,則需要重新計算該區塊的亂數;從而導致區塊2中的hash(parent)變化,又需要重新計算區塊2的亂數;進而需要計算后續所有區塊的亂數,實際上,如果造假者的算力超過全網51%挖礦節點的算力,則造假成功,

  命題5. 區塊鏈造假代價很高,

5. 區塊鏈型別

  區塊鏈分為三種型別:公有鏈、私有鏈、聯盟鏈,

5.1 公有鏈

  位元幣的區塊鏈是一種公有鏈,它有如下特點,

  1)公有的、全開放的、去中心化;

  2)資料全網公開,不適合銀行、政府、證券等;

  3)不能篡改資料;

  4)處理交易速度慢、效率低:全網節點共同參與,每個節點都參與決策(判斷真偽);

  5)如果發行電子貨幣,則是各國政府所不能支持的行為,

  私有鏈、聯盟鏈就是對公有鏈的開放性、效率進行改進的結果,

5.2 私有鏈

  私有鏈不對外開放,只有被授權節點才能參與,是部分“去中心化”的區塊鏈,主要用戶有金融機構、大型企業、政府部門等,譬如央行發行的數字貨幣,只能由央行進行記賬,個人不能參與,另外,阿里、百度、京東等大型公司也會構建自己的私有鏈,側重區塊鏈的資料安全,

5.3 聯盟鏈

聯盟鏈也稱行業鏈,是公司與公司、組織與組織之間構建的區塊鏈,通常選定多個節點參與區塊共識決策,其他節點僅參與交易而不參與決策,這是一種“多中心化”的區塊鏈,用戶群體包括銀行、證券、保險、集團企業等,

6. 區塊鏈應用

6.1 應用開發考慮

  隨著區塊鏈技術的發展,越來越多的區塊鏈應用開始出現,特別是由于政府的鼓勵支持,需要避免不結合實際情況而一窩蜂地采用區塊鏈技術的過熱情形,在確定采用區塊鏈技術開發應用之前,需要從下面幾個方面來綜合考慮,

  • 傳統方法,一個應用如果能夠采用傳統方法來實作,則不必采用區塊鏈技術,
  • 去中心化,去中心化只是意味著資料的多個副本,不是采用區塊鏈的絕對理由,資料庫MySQL、Oracle、MongoDB以及分布式存盤系統Ceph等都支持多副本,并且具有很高的性能,
  • 去信任,去信任意味著需要防止資料造假,這是采用區塊鏈的一個理由,
  • 可追溯,區塊鏈可以對資料造假進行追溯,資料庫一般不具有可追溯特點,這也是采用區塊鏈的一個理由,

  性能,如果應用頻繁更新,采用區塊鏈意味著資料量很大,需要很大的存盤設備,對于一些不具備條件的應用則不適合,另外,在區塊鏈中檢索資料極不方便,效率極低,

6.2 融合傳統資料庫的開發方法

  在確定采用區塊鏈技術開發應用之后,需要考慮一個問題:是否將所有資料都保存到區塊鏈?

  區塊鏈在性能、資料檢索等方面都不如傳統資料庫;另外,如果所有資料都保存到區塊鏈,則會特別大,一種可行的方法是在應用中采用“區塊鏈+資料庫”的方式來保存資料,那些防止造假需要追溯的重要資訊可放到區塊鏈,其他資訊則放到資料庫,在區塊鏈應用方面,資料通常保存在多處,因此資料庫應具有性能高、支持多備份的特點;甚至可以采用高性能、高可用、高可擴展的Ceph分布式存盤系統來保存資料,

7. 總結

  區塊鏈具有“去中心化”、“去信任”、“去第三方”的特點,本質上是一個分布式資料存盤系統,將區塊鏈保存到多個計算機節點,通過“共識機制”、“獎勵”、“造假懲罰”等措施,最終區塊鏈為位元幣建立了一套可靠的、可信任的解決方案,然而,區塊鏈也存在一些缺點,包括性能較差、檢索困難等,進而出現了公有鏈、私有鏈、聯盟鏈等適合不同應用場合的型別,私有鏈和聯盟鏈在某種程度上已經不再是“去中心化”、“去信任”的區塊鏈,在開發應用時,應綜合考慮多種因素來確定是否有必要采用區塊鏈技術;在一些區塊鏈應用中,可以采用“區塊鏈+資料庫”的方式來保存資料,即將需要追溯的關鍵資訊保存到區塊鏈,而其他資訊保存到資料庫或分布式存盤系統,

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

標籤:區塊鏈

上一篇:IPFS/Filecoin迎來web3.0時代,FIL幣價即將爆發!年底超500U?

下一篇:盜U秒U偷USDT的東西

標籤雲
其他(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