主页 > imtoken安卓官方下载 > 比特币中的计算机知识

比特币中的计算机知识

imtoken安卓官方下载 2023-10-02 05:13:01

比特币中的计算机知识

支付宝买比特币 2018_怎样用支付宝帮朋友充米币_哪个比特币平台可以用支付宝

一、人民币、支付宝、比特币有什么区别

(1) 人民币

大家都知道人民币是中国人民银行发行的货币。 这些货币在市场上流通。 每个人有了钱之后,就可以购买各种商品和服务,人民币就会从一个人转移到另一个人手中。 钱在市场上流通后,特定时间特定号码的纸币谁拥有是不确定的,国家也不管。 纸币在实践中难以复制,复制成本高,风险也大。

(2) 支付宝

支付宝当然也包括微信。 里面的余额简单来说就是一个数据,存储在支付宝和微信的服务器上。 与人民币不同,数据的复制和修改是免费的。 这些电子货币在市场上是如何运作的? 以支付宝为例,首先你需要申请一个支付宝账户,然后关联一张银行卡,这样你就可以从支付宝转账到银行卡,或者从银行卡充值到支付宝。 当你消费时使用支付宝支付或通过支付宝收取收益时,对方也必须有一个支付宝账户,所以你支付的多少实际上是从你的支付宝账户中扣除并添加到对方的支付宝账户中。

这涉及到两个方面的数据变化。 一是与银行有关:支付宝在各大银行都有开户。 个人使用银行卡从支付宝账户中充值或提取现金。 其实就是银行里的支付宝大账户和你的账户之间的存款找零。 当然,支付宝会相应地改变你支付宝账户上的价值。 二是与银行无关,支付宝内部数据转换。 当你和对方用支付宝支付,对方用收款时,此时与银行无关,是支付宝自身内部数据的转换。

国家发行的纸币由国家信用背书,保证纸币具有购买力,不是废纸,通货膨胀和贬值除外。 银行卡存款的安全性是由银行的信用背书的。 当然,我国的银行主要是国有银行,实际上是有国家信用背书的。 支付宝和微信的电子货币支付,背书的是蚂蚁金服和腾讯的信用。 如果哪天蚂蚁金服把在各大银行开的账户里的钱全部转过去然后注销,同时在支付宝上声明余额是一个数字,这没有任何意义,甚至直接清空所有余额所有支付宝账户。 这并非不可能。 作为一个国家,必须有一定的监管措施。 例如支付宝在工商银行开立的账户与平时不同,在一定时间内大量资金流出至少数其他账户哪个比特币平台可以用支付宝,则交易将被冻结查处。 但是支付宝直接把大家的支付宝账户数清零了,即使在银行开的大账户有钱,也不知道怎么分配给大家。

不同用户的支付宝账户之间支付宝的支付方式和金额发生变化。 这个实现比较复杂。 最难的是如何保证安全、可靠、不出错。 因此,安全是互联网金融的生命线。

(3) 比特币

上面说的人民币、银行卡、支付宝都是中央的。 英国思想史学家阿克顿在《民主与权力》中说:权力导致腐败,绝对权力导致绝对腐败。 总是相信一个机构不会做坏事是更危险的。

为了解决这个问题,比特币采用了另一种思路:简而言之,它是去中心化的。 每个人都有一个账本,账本是公开的,每个人都可以查到谁付给谁,什么时候付了多少。 其次,只能将新的交易记录写入账本,任何已经写入的记录永远无法更改。 如果有人试图篡改它,每个人都可以找到它。 这类似于在海上填写航海日志。 记录当天的日志后,以后不能更改。

这里需要着重解决两个问题:

第一,如何让账本不可篡改,不管是谁修改的,大家都能找到。 计算机中的密码学是必需的。 主要用到两点,一是数字签名技术,比特币使用的是椭圆曲线数字签名算法,二是哈希算法,比特币使用的是SHA256。

其次,比特币是一个去中心化的分布式系统,所以存在一致性问题,而分布式系统的核心就是一致性问题。

2. 如何让比特币防篡改

(1) 如何防止区块中的交易记录被篡改

每个区块中都有几条交易记录。 这些交易记录如何防篡改? 比如A给C转了100块钱,你查账本,你怎么确定是A转的,B说他转的,你又怎么确定B在说谎。 这里使用数字签名。 密码学有对称加密和非对称加密之分。 在对称加密中,加密密钥和解密密钥相同,而在非对称加密中,公钥和私钥不同,并且成对出现。 比特币这里用的是非对称加密:椭圆曲线算法。

一个人的公钥在网络上是公开的,谁都知道私钥是自己保管的,只能自己掌握。 一些受信任的第三方组织或公司专门发行公钥和私钥对的数字证书。 用自己的公钥加密的数据只能用自己的私钥解密,用自己的私钥加密的数据也只能用自己的公钥解密。 所以这里有两个方向:(1)如果别人要给我发数据,先在网上用我的公钥加密数据哪个比特币平台可以用支付宝,加密后发给我,然后用我的私钥加密数据。 数据被解密。 这样即使数据被截获也没关系,只有我有私钥可以解密,也就是用公钥私钥对进行加密数据传输。 (2)另一个方向:如果我有一个文件需要发给朋友,朋友收到后怎么确定是我发的呢? 这就需要我先用我的私钥加密文件,朋友收到后用我加密文件。 解密的公钥,只有用我的私钥加密的文件才能用我的公钥正确解密,这就是数字签名功能。

目前流行的非对称密码算法有三种:RSA密钥、基于离散对数问题的密钥和椭圆曲线密钥。 比特币使用的签名算法是椭圆曲线算法,加密程度比其他两种高。 在比特币系统中,一对公钥和私钥代表一个人。 每个人的公钥都是公开的。 验证一条消息是否是某人发送的,其他人只需要来回传递他的公钥即可。 验证它以判断真伪。

(2) 如何防止区块链中的区块被篡改

如何保证之前的区块不被篡改。 这里用到了计算机加解密中的另一种技术:哈希。 哈希不同于上面提到的对称加密和非对称加密。 对称和非对称加密是双向和可逆的。 例如,我用对称加密密钥加密数据后,我可以用密钥解密它。 数据中的公钥加密或私钥签名后,对端可以使用私钥解密或公钥验证签名。

此外,哈希函数是不可逆的。 散列函数计算消息的摘要,这个摘要是一个非常短的固定长度的字符串。 这个消息摘要可以看作是消息的指纹。 哈希函数必须满足几个条件。 第一个哈希函数是单向的,即不可逆的。 也就是说,给定一个散列值,你无法逆向对应的消息。 第二个哈希函数必须是弱防碰撞的,完全防碰撞是不可能的。 例如,常用的MD5摘要算法得到的消息摘要为128位。 根据鸽巢原理,必须获取不同的消息。 消息摘要是相同的。 有弱冲突也无所谓,只要在实际应用中没有发现即可。 这在操作上是可行的,在实际应用中遇到两条消息摘要相同的消息的概率几乎可以忽略不计。 三是防撞。 消息 1 经过哈希计算得到摘要 1。 理论上,消息 2 经过哈希计算后也会得到摘要 1,但这在计算上是不可行的。 只有满足这三个基本条件,MD5、SHA-256、SHA-384、SHA-512哈希函数才是目前常用的。 比特币使用 SHA-256 哈希算法。 我们通常会下载一个软件安装包,然后在下载完成后进行完整性检查,防止不法分子加入一些病毒之类的。 这是我们使用的原则。

(3) 区块链的结构与形成

我们已经介绍了如何防止区块中的交易记录被篡改,以及如何防止已经写入区块链系统的区块被篡改。 下面我们就来详细了解一下。

首先,让我们看看每个块中有什么: 首先,有几条交易记录。 上述分析的交易记录由公钥加密算法进行数字签名,以确定记录的真实性。 第二个是header,每个block前面都有一个header,header中存放的是上一个block的地址和上一个block的hash值。

每个区块都有大小限制,区块链中的区块数量不断增加。 这样就形成了一个单向链表,最新生成的区块在链表的末尾。 这些块中的第一个称为创世块。 我们来看一下整个区块链的生成过程:

首先,系统中只有一个区块A,区块A中包含若干笔交易记录,这些交易记录都是用各自用户的私钥签名的。 区块 A 的地址和哈希值被广播给系统中的每个成员。 如果区块A被修改过,其他人会对区块A进行哈希运算,判断哈希值是否对应是否被篡改。

运行一段时间后,区块A无法存储,需要添加新的区块B。 B的header中记录了A的地址和hash值,这样B的地址和hash就会广播给系统中的每一个人。 这样B就不可篡改了,因为每个人都有B的哈希值,A也不可篡改。 如果A篡改了A存储在B中的哈希值,同样可以查到。 这样系统继续运行,同样的方法添加块C和块D。

3. 区块链知识问题

比特币系统中的每个人都可以检查账户以确定是否发生了篡改。 那么谁负责记账,即谁负责将交易信息写入区块。 本来,有一个权威的人负责写是最容易的,但这与区块链去中心化的思想是矛盾的。 所以,比特币采用大家记账的方式。 这里有个问题,就是分布式系统的一致性问题,这也是分布式系统中的核心问题。

分布式系统一致性:这个系统中的某个节点提出了某个值。 经过一系列步骤,所有节点达成共识,选择相同的值,而这个值必须由某个节点提出。

区块链技术用于实现一种电子货币,其采用的不可篡改的方法是通用的,即公钥密码算法和哈希算法。 不同的是选择的算法不同。 最重要的是解决分布式系统的一致性问题,也就是说共识问题是关键。

简化的共识算法:

1. 一个提议的交易信息被广播到系统中的每个节点。

2. 每个节点将收到的交易信息写入一个新的区块,如果写入新区块的交易信息成功加入区块链,则执行成功。

3. 新一轮开始时,在整个系统中随机选择一个节点,被选中的节点将自己的新区块广播给所有人。

4. 每个收到新区块的节点都会对新区块中的交易记录进行验证,使用交易记录中相关成员的公钥信息进行验证,验证无误后将新区块添加到自己的本地账本中。

如何保证大家的账本是一致的? 如果上述算法可以在完美的条件下完成,什么是完美的环境:系统的每个成员都表现良好,网络相当可靠。 但实际上是不可能存在的。 一是系统中的网络复杂且不可靠,二是系统中的每个成员是否值得信赖。 比特币系统采用的方法是:遵循一个原则,即整个系统中最长的区块链就是大家公认的真理。

那为什么比特币系统中被选中的节点愿意努力工作来产生这个区块呢? 因为系统会奖励你。 如果他创建的区块最终出现在系统中最长的区块链中,他可以获得相当可观的奖励。 对于它成功写入的交易,它会付给他一笔费用; 每个新区块的创建者将获得一个额外的比特币,每四年减半,前四年为 50 个比特币,之后是 25 个,以此类推。

那么谁创建的区块才能被系统接受呢? 当一个区块被创建时,需要计算其哈希值以进行完整性验证。 区块中有一个随机填充的空间,它的值是没有意义的,它唯一的作用就是为这个区块生成不同的哈希值。 比特币网络要求生成的哈希值前几位全为0,为了生成合法的哈希值,对于生成的新区块,需要改变随机区域的值。 这个没有捷径可走,只能采用穷举法一次计算一次,直到前几位全为0哈希值。 这就是比特币挖矿,每个人通过自己贡献的算力来分配奖励。 无论网络上计算的计算能力有多大,无论如何每 10 分钟就会生成一个比特币块。 算力越大,生成的hash前面0的个数就越多,反之亦然。 比特币系统中参与计算的人越多,算力就越强,整个系统就会越稳定。