ビットコインとは何ですか?
1. 2008 年 11 月 1 日、サトシ・ナカモト氏の分散型簿記システム「ホワイトペーパー」
集中会計システム
1.簿記とは何ですか? たとえば、階下の711に行って飛寨幸福水のボトルを買い、アリペイで3元支払うと、アリペイは口座にお金がたくさんあるか、支払った後にいくら残っているかなどを確認します。現在の簿記は銀行が行っています。銀行は国の信用を裏付けているからです。
ビットコインは分散型電子簿記システムを使用しています
1. 全員の台帳は公開され、他の人も閲覧できます
上記のシステムでは、いくつかの問題を解決する必要があります。
1. アカウントを保持する理由
2. 誰が勝つのか
3. 署名偽造を防ぐ方法
3.1: 署名が記録の内容と正確に一致していることを確認するにはどうすればよいですか?
3.2: この署名に、B の署名ではなく A の署名であることを反映させるにはどうすればよいですか?
4. 支払者が支払いに必要なビットコインを持っているかどうかを確認する方法
5. 二重支出を防ぐには
6. 改ざんを防止する方法
なぜアカウントを保持するのですか?
簿記をすると報酬が得られる
1. 手数料収入
例: A が B に 10BTC を支払うと、A はもう少し支払う必要があります。これが簿記担当者の手数料です。
2. パック報酬
サトシ・ナカモトは計画を立てました: 10 分ごとにパッケージを作成します。最初は、このパッケージはパッケージ作成者に 50 BTC の報酬を与えます。210,000 個のパッケージが生成されるたびに、つまり 4 年ごとに報酬は半分になります。これまでのところ、現在のパッケージ報酬は 6.25 BTC です
したがって、包装業者の収入は 2 つの部分 = 手数料 + 包装報酬になります。
現在のBTC市場: 1 BTC = 12,935.65 USD
6.57 * 12935.65 * 6.6 = 560915.6553 元
合計何BTCがあるかを計算してみましょう
50*6(1 時間、6 10 分)*24(1 日 24 時間)*365(年間 365 日)*4(4 年ごとの半分)*(1+2/1+4/1+8 /1 +….)
したがって、50*6*24*365*4*2 の最終計算は、約 2,100 万 BTC に相当します。
誰が勝つでしょうか?
梱包は非常に儲かるので、みんな急いで梱包をしていますが、誰が勝つのでしょうか?
賢いサトシ・ナカモトは方法を考えました: プルーフ・オブ・ワーク (POW) はマイニングとも呼ばれます
つまり、パッケージ化に参加する人は全員、難しい数学の問題を解かなければならず、それを解いて初めてパッケージ化する権利を得ることができます。
署名が記録の内容と正確に一致していることを確認するにはどうすればよいでしょうか? SHA-256 ハッシュ アルゴリズムの使用
例: A は B に 50BTC を支払います
sha-256(A支付50BTC给B) = 1110010001010101110101010010000110101100001001001111001001101101100110011110000101011010001000100100100010100001010011101000110101001010000111011010100110101010010001111000110100100010111111110101000111111010010100111101001110100001110011101011111001111001
sha-256(A支付50BTC给C) =111010011000010100101111001101111000111010110010001011000001011000000111110010001001001101011001101101010011011000101000010100001110110011111100111111101110101100100101110100000000110000101011000011000000110010110100000100110111001011010110111011001001100
如何让这个签名体现出是A的签名,而不是B的签名呢?
非对称加密法
A支付50BTC给B ---> 用非对称加密法加密(SHA-256(A支付50BTC给B))
SHA-256(A支付50BTC给B) = 哈希值
A将“A支付50BTC给B”这条记录广播出去,然后还有加密后的密码和自己的公钥公布出来
B用A的公钥对A的签名进行解密, 解密后的哈希值=哈希值1
B用接收到的消息(A支付50BTC给B)输入SHA-256
SHA-256(A支付50BTC给B)=哈希值2
如果哈希值1=哈希值2则:
1. 这个签名是针对这条记录的
2. 这个签名是A的
3. 接收到的记录与原始记录相同,未被篡改
需要一种方法能够确认付款方是否有足够的比特币进行支付
1. 每笔交易都必须把以前的交易作为基础,而不是以余额为基础,也就是 追溯
比如:A支付50BTC给B,必须有人向A支付了大于等于50BTC,而且这50BTC没有被使用过
A支付时发送:
支付消息:C支付50BTC给A -> 支付50BTC给B
付款方的数字签名: A用私钥加密:SHA-256(C支付50BTC给A -> 支付50BTC给B)
付款方的公钥: A的公阴
B收到支付的消息后:
50BTC >= 50BTC
SHA-256(C支付50BTC给A -> 支付50BTC给B) = 哈希值1
使用A的公钥对A的数字签名解密,得到哈希值2
哈希值1 = 哈希值2
区块链
比特币网络的参考标准就是一条区块链,区块链你可以理解为一条数据集,然后通过不断更新内容形成新的区块,从而构成一条长链:
而整合这些交易信息的用户,则称为“矿工”。每一个计算机都可以当“矿工”,那么这时问题又来了,那么多的“矿工”,究竟添加谁生成的新区块?
比特币网络为了限制新的区块生成,产生了一种额外的计算工作,去计算一个对应前一个区块的数。
至于怎么计算,这里不细说了(因为我也不知道),总之需要非常强大的计算能力,计算机大概需要跑10分钟左右。(以2010年计算机为准)
比特币网络以最先成功计算出来的矿工的区块为准,然后将其作为新区块添加到比特币区块链。而计算出来的矿工,会得到2比特币+交易额的2%比特币作为奖励。但是随着区块的越来越多,这个奖励会逐步递减。最后可能只会得到这2%的交易额抽成。
而且根据比特币算法的特性,比特币是有数额限制的,也就是说,总共只有2100万个比特币