基於區塊鏈的股權交易系統開發設計與實現(元宇宙Web 3.0技術)

v_ch3nguang發表於2023-04-20

網路中的許多重要資料都可以透過區塊鏈進行儲存和訪問,區塊鏈的去中心化可以更好地防止駭客入侵 這使得區塊鏈成為了一項安全便捷的資訊交易工具,隨著對區塊鏈研究的不斷深入 ,區塊鏈技術也被應用到更多的領域中去。

 

區塊鏈中的每個參與維護節點都可以獲得完整的資料記錄,利用區塊鏈的可靠和集體維護特性,可以確認股權所有者的權利。區塊鏈是儲存記錄的理想解決方案,適用於土地所有權和股權交易等場景。

 

區塊鏈股權登記,將充分利用區塊鏈賬本的安全透明、不可篡改、易於跟蹤等 特性 ,記錄公司股權及其變更 資訊 。股權所有者憑藉私鑰,可證明對該股權的所有權,股權轉讓時透過區塊鏈系統轉讓給下家,產權明晰,記錄明確。整個 交易 過程無需第三方的參與。

 

import hashlib

import json

from time import time

 

class Blockchain(object):

     def __init__(self):

         self.current_transactions = []

         self.chain = []

 

         # 建立創世區塊

         self.new_block(previous_hash=1, proof=100)

 

     def new_block(self, proof, previous_hash=None):

         """

         建立一個新的區塊到區塊鏈中

         :param proof: <int> 由工作證明演演算法生成的證明

         :param previous_hash: (Optional) <str> 前一個區塊的 hash

         :return: <dict> 新區塊

         """

 

         block = {

             'index': len(self.chain) + 1,

             'timestamp': time(),

             'transactions': self.current_transactions,

             'proof': proof,

             'previous_hash': previous_hash or self.hash(self.chain[-1]),

         }

 

         # 重置當前交易記錄

         self.current_transactions = []

 

         self.chain.append(block)

         return block

 

     def new_transaction(self, sender, recipient, amount):

         """

         建立一筆新的交易到下一個被挖掘的區塊中

         :param sender: <str> 傳送人的地址

         :param recipient: <str> 接收人的地址

         :param amount: <int> 金額

         :return: <int> 持有本次交易的區塊索引

         """

         self.current_transactions.append({

             'sender': sender,

             'recipient': recipient,

             'amount': amount,

         })

 

         return self.last_block['index'] + 1

 

     @property

     def last_block(self):

         return self.chain[-1]

 

     @staticmethod

     def hash(block):

         """

         給一個區塊生成 SHA-256

         :param block: <dict> Block

         :return: <str>

         """

 

         # 我們必須確保這個字典(區塊)是經過排序的,否則我們將會得到不一致的雜湊

         block_string = json.dumps(block, sort_keys=True).encode()

         return hashlib.sha256(block_string).hexdigest()


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

相關文章