区块链课程介绍——中山大学软件工程学院专选课 2023.8.28

本课只讲原理,不讲炒币

课程2018-2023的建设过程

威哥讲得很好。

成绩评定

课程亮点

实验部分,从认识到实践的突破。

区块链简介

区块链是区块以顺序相连的方式组合成的一种链式数据结构。

区块链是一个分布式的账本数据库。

        好处:防止篡改

比特币的形象介绍

比特币可以被形象地描述为很多不同的比喻,以下是一些常用的形象描述:

  1. 数字黄金: 这是最常用的比喻。就像黄金是有限的、不易被制造或仿造、且被广泛接受为财富储存手段,比特币也有数量上限(2100万枚),并且其创建过程(通过“挖矿”)需要大量的计算能力。

  2. 去中心化的银行: 想象一个银行,没有实体的建筑、没有中心的管理机构,而是由全球数以万计的计算机组成的一个网络。这些计算机记录和验证所有的交易,确保系统的安全。

  3. 一个不可篡改的记账本: 比特币的区块链技术就像是一本公开的、不可篡改的账本。每一笔交易都会被记录,且一旦被确认,就无法更改或删除。

  4. 数字化的信任: 在传统的交易中,我们依赖银行或其他中间机构作为信任的代表。而比特币允许两个互不信任的方进行交易,因为它的设计确保了交易的安全和透明。

  5. 一个全球性的货币: 不同于其他传统的货币,比特币不受任何国家、政府或中央银行的控制。这使它成为一个真正的全球性货币,可以跨越国界进行交易。

形象地说,如果我们把互联网比作一个新的大陆,那么比特币就像是这片大陆上的“黄金”,一种新的、革命性的财富储存和交换手段。

介绍比特币的简单代码

哈希函数: 比特币使用的是SHA-256哈希函数。哈希函数将输入转换为固定长度的字符串,这个字符串在理论上是唯一的。

import hashlib

def sha256(data):
    return hashlib.sha256(data.encode()).hexdigest()

print(sha256("Hello, Bitcoin!"))

区块结构: 一个区块包含多笔交易、前一个区块的哈希、以及一个随机数(nonce)。

class Block:
    def __init__(self, transactions, previous_hash):
        self.transactions = transactions
        self.previous_hash = previous_hash
        self.nonce = 0
        self.hash = self.calculate_hash()

    def calculate_hash(self):
        data = str(self.transactions) + str(self.previous_hash) + str(self.nonce)
        return sha256(data)

挖矿: 挖矿过程实际上是找到一个使得区块哈希满足特定条件的随机数。为简化,我们可以设定条件为哈希以"00"开头。

def mine(block, difficulty=2):
    prefix = '0' * difficulty
    while not block.hash.startswith(prefix):
        block.nonce += 1
        block.hash = block.calculate_hash()

genesis_block = Block(["Transaction 1", "Transaction 2"], "0")
mine(genesis_block)
print("Mined hash:", genesis_block.hash)

以上代码非常简化,仅用于说明比特币的核心概念。实际的比特币系统包括了公钥密码学、点对点网络、难度调整等多种高级技术和概念。

背景介绍

文字和货币

文字和货币基本是在同一时间同一地点出现的。

信息网络和价值网络

信息网络信息可以无成本地复制。

价值网络的价值只能转移。

互联网上的信任问题

在互联网上,要信赖对方是一个极其困难的事情。

        目前主流的手段是走第三方,比如转账需要银行,买东西找第三方。

信任和信用(credit)不是一码事

        有了信息才能产生信任

        传统信任需要积累,成本高,风险大

        数字信任是技术倍数,成本低,风险小

课后作业

作业会集中在前半学期。

实验课

区块链第一次实验——文件计算哈希值 2023.8.28_MikingG的博客-CSDN博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值