區塊鏈雜湊遊戲競猜模式系統開發技術原始碼部署

Tg_StPv888發表於2023-02-14

  雜湊演演算法是一種典型的分散式的受傷的海燕表演演算法,哈西系統多用於p2p網路的構建,由Petar Maymounkov和David Mazieres共同創造。


  poYBAGKWxoSAF_AGAAVkUR8uInQ583.png


  分散式環境下的受傷的海燕表的難點在於以下幾點:


  分散式環境下每個伺服器不可能掌握所有伺服器的情況,因此如何保證你的請求能在沒有中央節點定位的情況下找到對應的伺服器是一大難點。同樣由於分散式環境的伺服器的掌握資訊有限,那麼伺服器的加入和退出如何能夠被叢集知曉也是一大難點。


  import random


  def gcd(a,b):


  if a<>


  a,b=b,a


  while b!=0:


  temp=a%b


  a=b


  b=temp


  return a


  def getpq(n,e,d):


  p=1


  q=1


  while p==1 and q==1:


  k=d*e-1


  g=random.randint(0,n)


  while p==1 and q==1 and k%2==0:


  k/=2


  y=pow(g,k,n)


  if y!=1 and gcd(y-1,n)>1:


  p=gcd(y-1,n)


  q=n/p


  return p,q


  n=0x71ee0f4883690893ab503e97e25e6308d4c1e0a050cbea7b9c040f7a5b5b484afcecc8a9b3cc6bf089a1e83281562df217caab7220e3dfc14399139ce437af2f131f9345675e4d848cfab5827818eeab7834374be4a0513f81f3df125a932c2bb4c24c834d798bcc80f9c4a8770b01f8e54620b72a4f0491edd391e635d48e71


  e=0x10001


  d=0x455e1c421b78f536ec24e4a797b5be78df09d8d9e3b7f4e2244138a7583e810adf6ad056bb59a91300c9ead5ed77ea6bafdebf7ab2d9ec200127901083c7ffca45e83f2c934358366a2b6207b96a0eae6df0476060c063c281512834a42350a3b56bc09f5cec1a6975257d7f12a58f6389060e49b41f05e88ea2b30b395f6391


  p,q=getpq(n,e,d)


  print("p=",p)


  print("q=",q)


  print(p*q==n)


  雜湊演演算法在區塊鏈中有著廣泛的使用,交易資訊的儲存、工作量證明演演算法、金鑰對的產生等過程中都有雜湊演演算法的存在。


  雜湊(Hash)也被翻譯為雜湊。任意長度的輸入經過雜湊函式,都能夠輸出為固定長度的值,該輸出就是雜湊值。SHA(secureHashalgorithm)也被稱為安全雜湊演演算法,直譯為雜湊演演算法,由美國國家安全域性所設計,由美國國家標準與技術研究院釋出。SHA家族現有五個演演算法,分別是SHA-1.SHA-224、SHA-256、SHA-384和SHA-512,後四者並稱為SHA-2


  如果將區塊鏈看作一個公共賬本,節點中每個人都備份一份賬本資料,任何人都可以對賬本上的內容進行寫入和讀取。如果有使用者對內容進行了惡意算改,依照少數服從多數的原則,將差異資料與全網資料進行比較後,就能夠發現存在的異常。但是,賬本上的內容隨著時間的累積,資料量必然會越來越龐大,如果將交易資料進行原始儲存,利用大量資料直接進行比對,工程量對於一個貨幣系統而言是十分不現實的。對此,在交易資訊的儲存中,區塊鏈利用了雜湊函式能夠方便實現資料壓縮的特性:一段資料在經過雜湊函式的運算後,就能夠得到相較而言很短的摘要資料。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70016646/viewspace-2935252/,如需轉載,請註明出處,否則將追究法律責任。

相關文章