主页 > imtoken钱包最新版本下载 > 北京大学肖震老师《区块链技术与应用》-课程笔记【11-12】

北京大学肖震老师《区块链技术与应用》-课程笔记【11-12】

imtoken钱包最新版本下载 2023-01-17 01:30:32

北京大学肖震老师《区块链技术与应用》-课程笔记【11-12】

温馨提示:以下内容仅为个人学习过程中记录的笔记,图片均为肖老师课程截图,仅供参考。 如有错误或不足,敬请指正。

1. BTC-问答

1. 如果转账交易过程中收款人离线(未连接到比特币网络)怎么办?

转账交易不需要收款方在线。 这笔交易只是记录在区块链上,并将发送方账户上的比特币转移到接收方账户。 转账交易时收款人是否连接到比特币网络对交易没有影响。

2、假设一个全节点收到一笔转账交易,是否有可能转账交易中接收方的接收地址是本节点从未听过的地址?

可能的。 创建比特币账户时,无需通知其他节点,只需要在本地生成公私钥对即可。 只有在以后生成的收款地址第一次收到转币时,其他节点才会知道这个账户。 在场。

3、账户私钥丢失怎么办?

没有办法。 这个账户上的币是不可交易的,永远不能提取。

在去中心化的系统中,比如比特币,没有人有权为账户重置密码。

一些加密货币交易所,一般来说,这些交易所都是中心化机构。 在交易所开户时,一般需要提供身份证明。 它由交易所保存。 登录交易所类似于登录网上银行。 除了用户名和密码外,一般还需要进行二次验证,比如使用Google Authenticator生成的一次性密码通过二次验证登录。 在这种情况下,如果账户密码丢失,用户可以在认证后联系交易所重置密码。 交易所保存用户密码与比特币私钥丢失不一致,部分网络钱包也有保存私钥的功能,但这些交易所和网络钱包比用户自己保存私钥更安全。

比特币交易所或其他加密货币交易所目前处于缺乏监管的状态,这与证券交易所有很大不同。 历史上曾多次发生加密货币交易所被黑客入侵的事件。 大量加密货币从交易所被盗,最著名的例子之一是 Mt. Gox,它曾经是最大的比特币交易所,占全球交易量的 70%,总部设在日本,然后被黑,一个大大量比特币丢失,交易所后来破产,首席执行官被判刑。 各种加密货币的问题已经发生过多次,有的交易所被人看守被盗,有的工作人员或管理人员卷款跑路。

相比之下,冷钱包和硬钱包更安全。

4、账户私钥泄露怎么办?

如果账户中可能存在可疑交易,应尽快将账户中的资金转移至其他安全账户。

与现实生活体验不同的是,比特币账户所谓的密码就是账户的私钥。 创建账户时生成的公私钥对。 账户一旦生成就无法修改,私钥也无法修改。 可以生成一个新的。 账户,但不能修改原账户的私钥,同时不能阻止他人发布从该账户转出的交易。 任何拥有私钥的人都可以发布转账交易。 把钱转到一个安全的账户。

5、转账地址写错了怎么办?

一旦比特币交易在区块链上发布,就无法取消已发布的交易。 没有取消已发布交易的机制。 如果你转账到别人的地址,如果你知道收款人的地址是谁,你可以联系对方看对方是否愿意把钱还给你,但这只能和对方商量,并且你不能强迫对方; 如果您不知道收件人的地址或不存在的地址,则没有办法。

不存在的地址:地址是通过公钥哈希得到的,有些地址不是通过公钥哈希得到的,比如digital commitment,就是一个不存在的地址。

交易btc账户被冻结_爬虫 api交易btc_账户被司法冻结或者银行冻结

A账户向B的一个不存在的地址转账,可以把要发布内容的哈希值放在OP_RETURN后面。 这是一种标准方法,但有些人使用哈希值生成类似于比特币地址的东西。 账户转账到这个类似于比特币哈希值生成的假地址。 该地址没有公钥-私钥对。 比特币系统不知道地址是真是假,所以转出的钱就成了死钱。 这个转账是永远也取不出来的。 这种做法会牺牲一些比特币来换取写入区块链的机会。

不推荐这种方式,因为转账输出会永久保存在UTXO中,全节点在收到交易时并不知道交易的真实性,只能永久保存,对全节点不友好节点。

6. 销毁证明和 OP_RETURN 实际上是如何工作的?

例如,当全节点收到转账交易时,首先要检查交易的合法性。 只有合法的交易才会写入区块链。 OP_RETURN语句是无条件返回错误,不能通过验证,不能写入区块链。 在区块链中。

验证过程是将当前交易的输入脚本与上一笔交易的币源输出脚本进行拼接,看能否执行成功。 执行过程中不能抛出任何错误。 如果抛出,则不是合法交易。 OP_RETURN语句是写在当前交易的输出脚本中的,所以在验证当前交易的合法性时不会执行OP_RETURN语句,只有花费了当前交易的这些币时才会执行OP_RETURN语句。

7、比特币挖矿正在尝试大量的nonce,会不会有矿工窃取答案(接收其他矿工找到的nonce,验证是否一致,作为自己找到的nonce上链)? (你怎么知道哪个矿工先找到了随机数)

释放的区块包含coinbase tx,里面包含收款人的矿工地址A。 如果你想窃取答案,你必须将地址替换为你自己的。 如果地址改变了,coinbase的内容也会改变,这会导致默克尔树的根哈希值发生改变,因为这笔交易与其他区块的交易内容相连,nonce在区块头中, root hash 值改变了,block header 也改变了,原来找到的 nonce 会失效,因为每个矿工找到的 nonce 都是和自己的接收地址绑定的。

8. 如何知道应该由哪个矿工支付交易手续费? (如何知道哪个矿工会挖我的)

没有必要事先知道哪个矿工将获得这笔交易费。

交易手续费的计算:总投入>=总产出,总投入与总产出之差即为交易手续费,谁不需要事先知道,哪个矿工先挖矿就可以收取本次包含交易的差额块,作为自己的交易费用。

下图显示了比特币区块大小从 2009 年到 2018 年的变化:

在这里插入图片描述

你只能给它加东西,区块链越来越长交易btc账户被冻结,体积越来越大。

目前大小与现在的硬盘容量没有问题,区块链的大部分内容都可以存储在硬盘中。

下图展示了 2012 年到 2018 年 UTXO 集合的大小变化:

在这里插入图片描述

这个集合的总趋势是不断增加的,有一些波动。 主要原因是比特币交易较多,UTXO集合也会随之变化,也会随着历史原因发生变化,比如账户私钥丢失。

下图为比特币矿池挖矿情况:

爬虫 api交易btc_账户被司法冻结或者银行冻结_交易btc账户被冻结

在这里插入图片描述

挖矿中心化趋势严重,大型矿池占系统总算力的很大一部分。

下图为2009-2018年比特币市值变化情况:

在这里插入图片描述

它与比特币的价格变化基本相同。 市值是绝对市值,不是加密货币的百分比。

下图是2009年到2018年比特币交易量的变化:

在这里插入图片描述

2016-2018年波动较大,交易量以美元价格计算。 波动部分是由比特币价格波动引起的。

下图显示了 2009 年到 2018 年每天比特币交易笔数的变化:

在这里插入图片描述

总体趋势是持续增长,2018 年初比特币价格较低,交易较少。

下图显示了比特币从 2009 年到 2018 年每个区块的交易笔数的变化:

在这里插入图片描述

每天产生的区块数量相近,交易数量的变化主要是每个区块交易数量的变化。 真实区块链上的很多区块并没有填充交易。

2. BTC-匿名性 1. 匿名性

匿名的定义:一般来说,匿名与隐私保护是联系在一起的。 比特币不需要使用实名,可以使用公钥生成的地址,具有一定的匿名性。 但是比特币使用的是假名,不是完全匿名,这就叫假名。 所以比特币的匿名不是真匿名,而是假匿名。

与真实货币相比,匿名性不如现金,没有任何人的信息。 与银行存款相比,比特币不需要实名认证,更具有匿名性。 如果银行使用假名,隐私性和匿名性会比比特币更好,比特币也需要与物理世界连接。 从某种意义上说,如果银行允许使用假名,隐私和匿名性会比比特币更好。

原因:比特币区块链的账本是公开的,所有人都可以查询,而银行的账本是受控的,工作人员和司法手段可以调取信息,但普通人是查不到的。

账户被司法冻结或者银行冻结_交易btc账户被冻结_爬虫 api交易btc

在比特币系统中,哪些条件可能破坏匿名性?

1. 自己创建的多个账号关联在一起。

关联账户的操作:

例如,网上购物找零钱,一笔交易有多个输入,而这多个输入可能是同一个人的账户。

这种交易一般由比特币钱包产生。 很多钱包软件为了隐私保护,每次都会自动生成一个新的找零地址。 输出地址也可能有零钱地址,但是可以通过分析是零钱地址的交易来分析。 这种零钱交易都是通过钱包软件产生的。

2、地址账户与现实世界中的真实身份关联。

虚拟货币与现实世界之间的任何联系都有可能揭示真实身份,尤其是资金转入和转出。 通过交易所购买比特币,需要身份信息进行交易所登录注册,也可以在场外交易。 场外交易是指两个人之间的私人交易。

经验表明,任何使用比特币从事非法活动的人最终都会被抓获。

许多国家都有反洗钱法来防止非法使用比特币进行洗钱:

1.监控资金的转入和转出链。 (常用手段)

2. 用比特币支付。 (延迟大;交易手续费高)——容易造成隐私泄露

比特币的匿名性不是绝对的,也没有想象中的那么好。

使用比特币的人的匿名性到底有多好?

最好保留的是中本聪,他从来没有花过他的比特币,一旦花掉,他的真实身份就会暴露。 在比特币项目走上正轨后,中本聪就销声匿迹了,直到现在也没有人知道他的身份交易btc账户被冻结,这也是他的匿名性一直很好的原因之一。

比特币有多匿名?

匿名与隐私保护有关。 当你做某事时,你不想暴露你的身份。 问题是你不想向谁透露你的身份(向谁隐藏你的身份?)。

比特币现有机制在从事正常活动时可以保护隐私,但在从事非法活动时很难保护隐私。

假设作为比特币用户,可以采用哪些方法来提高匿名性?

交易btc账户被冻结_爬虫 api交易btc_账户被司法冻结或者银行冻结

比特币协议运行在应用层,底层是P2P网络。 IP 地址与现实世界的身份之间存在很强的相关性。

比特币要实现匿名,首先要实现网络层的匿名。 比特币交易在网络上发布。 如果不保证网络的匿名性,很多节点会发现这个节点是从同一个地方发出的。 这个节点的IP地址可以推断出他在物理世界中的真实身份。

网络层匿名的解决方法:

多路径转发是常用的。 多路转发是指不是直接从发送方发送到接收方,中间有很多次转发。 中间的每个节点只知道哪个是上一个和下一个节点,并不知道第一个被释放的节点。 中间的一些节点可能是恶意节点。 只要路径上有诚实节点,就可以隐藏原始发送者的身份。 比如洋葱路由TOR

应用层实现匿名的解决方案:

区块链是一个公共账本,交易中的每一枚币都可以追溯到币的来源。 可以通过三种方式来保护匿名。

1. 把不同人的硬币混在一起,这叫做混币,这是很常见的做法。 有一些网站提供混币服务,并收取一定的服务费。 因此,想做混币的人将币发到网站上,进行一些内部重组,然后取回币。 一般来说,他们取回的币并不是一开始发给网站的币,而是随机抽取的币。 混币的实际实现有些复杂。

在当前的区块链世界中,没有信誉良好的混币服务。

混币服务本身也必须保持匿名。 如果混币服务带着币跑了,用户也无计可施。

区块链世界的现状是法律无法企及的。

2、有些应用有混币的性质,比如在线钱包,需要很多人在钱包里存钱,钱可能会混币。 提取的钱可能不能保证是最初存入的钱。 但是,在线钱包不一定要实现混币功能。

3.交流。 钱是存入交易所的,经过多次提现,存入本地的钱不是一开始存入的钱。 前提是交易所不会泄露相关记录。

隐私保护难的本质原因:区块链是公开的,不可篡改。 不变性对于隐私保护来说是灾难性的。 因为一旦一笔交易不小心泄露了身份,这笔交易就永久地写入了区块链,无法被篡改。

注意帐户之间的连接。 如果每个账号独立使用,暴露一个账号,影响有限; 如果账户是关联的,那么一个账户就会被暴露,其他账户也会被暴露。

2. 零知识证明

零知识证明是当一方(证明者)向另一方(验证者)证明一个陈述是真实的时,除了该陈述是真实的以外不透露任何信息。

零知识证明的数学基础是同态隐藏。 以下是同态隐藏的三个性质。

在这里插入图片描述

交易btc账户被冻结_账户被司法冻结或者银行冻结_爬虫 api交易btc

第一个性质表明加密后的函数值不会发生碰撞,如果输入不相等,则计算出的加密值也不会相等。 反之,如果两个加密函数的值相等,则输入必须相等。

第二个属性表明加密函数是不可逆的。

三是同态运算,即对加密函数值进行代数运算,等价于对输入进行代数运算再加密。

在这里插入图片描述

证明者是Alice,验证者是Bob,待证明的陈述是X+Y=7,X和Y的具体值是要隐藏的。 证明方法如下:

在这里插入图片描述

Bob 可以使用蛮力算法来猜测原始的 X、Y 值。

盲签法:在不知道具体内容的情况下进行的签名。

在这里插入图片描述

虚拟货币的号码不能由央行生成,是自己生成的,而央行的验证码是自己采用盲签的方式。

A提供号码,银行签名不知道号码内容,token就是银行在号码上的签名。 B知道号码的具体内容,SereialNum是明文,A把号码和Token给B,B把号码和Token(也是明文)给银行验证。

银行不知道B的币的来源。

比特币在一定程度上提供了匿名性,但并不能完全消除关联性。

零硬币和零钞票

Zcash 和 Zcash 是专门为匿名而设计的加密货币。

在这里插入图片描述

花费零币时,只需通过零知识证明证明所花费的币是系统中的合法币,而无需透露花费了系统中的哪个币。 (与比特币的本质区别在于,比特币的每笔交易都必须注明过去是哪笔交易产生了该币。)

零硬币和零纸币不同于比特币。 零币和零纸币意味着可以从数学上保证所花费的币是之前区块链上合法存在的币,但不知道是哪一种。 性已断,不可追溯。

专门为匿名而设计的加密货币现在并不是很主流,因为这些加密货币在性能上对匿名有一定的损失,并且在数学原理上对初始化的要求比较严格。 开始使用的随机元素必须能够被破坏。 如果销毁不好,会存在一定的安全漏洞。

更重要的原因是可能需要强匿名的用户不多。 大多数用户认为比特币现有的匿名性足以使用。 另一个原因是,虽然零硬币和零纸币在数学上具有很强的匿名性,但并不是绝对匿名安全的百分比。 在这种情况下,与物理世界的交互仍然会暴露身份。