在 了解区块链的基础名词概念 提到地址由字符和数字组成,但没有说明怎样产生的。银行卡号由银行核心系统生成,那比特币地址是通过什么生成的呢?看下图:
对于刚接触比特币的小白来说,看到这张图就蒙圈了,究竟什么是私钥、公钥,为什么生成个地址要这么麻烦吗?
现在请大家记住这句话: 私钥通过椭圆曲线相乘生成公钥,使用公钥不能导推出私钥;公钥通过哈希函数生成比特币地址,地址也无法导推出公钥 。
通过这么复杂算法才算出地址,那私钥和公钥只是为了生成地址吗?不是的,他们还有其他用途,我们先了解下私钥和公钥。
现在已经讲解地址、挖矿、工作量证明、算力、区块、区块链等等的概念,不知大家还有印象吗?如果忘记请温习这些概念,因为后续很多地方都会用到这些概念。明天讲解下区块链有哪些特点。
参考书籍:《精通比特币》
区块链知识专题:
比特币记账方式(区块链知识2)
了解块链的基础名词概念(区块链知识1)
② 区块链替代签名方案优劣势对比,Schnorr签名最适合比特币
具有讽刺意味的是,一些市值数十亿美元的加密货币本身并不支持多重签名。其中m-of-n的签名者需授权一笔交易。我们不需要审判,因为也许我们只设计了一把私钥。但这不是我们想要生活的世界,因为谁都不想因为错误的智能合约或丢失的私匙,而损失数百万美元。
在目前的情况下,现有的区块链已采用了几种不同的系统,让多个所有者控制同一笔区块链token,以太坊是基于智能合约,而比特币则基于脚本(例如P2SH)。
一、签名是如何工作的
为了在任何区块链上发送有效的交易,必须采取几个步骤。
二、非密码技术及其问题
智能合约:虽然基于智能合约的多重签名帐户提供了很大的灵活性(无限定制),但从历史上看,它们在代码、语言、虚拟机和编译器方面都存在缺陷。由于与人类有关的错误,数亿美元的区块链token被永久锁定了。
脚本:与智能合约平台不同,比特币具有更原始的脚本语言。区别也很明显:非图灵完备、非编译、没有虚拟机,也没有“状态”的概念。这是否会使加密货币变得不那么有用,这一争论将在其他地方展开。但更重要的是,其对多重签名有特定的操作码。在比特币和比特币相关分叉中,有一个特殊的脚本被称为支付到脚本哈希(Pay-to-Script-Hash),其被用于创建多重签名帐户。在这里,读者可找到一个深入的解释。
比特币的多重签名地址和以太坊的多重签名钱包都要求在发送交易时提交所有相关签名。我们今天将探讨的一些方案,只需要提交一个签名,从而节省了宝贵的链上空间,并可能使地址与单个私钥地址无法区分(增加隐私性)。
三、各类加密签名技术
在本文当中,我们会探索各种技术,将多重签名添加到区块链协议当中。注意,这些技术均不是什么万能药,因为每种方案都会存在各种权衡,在确定哪种技术最适合特定情况之前,我们需要去彻底探索。
1、沙米尔秘密共享算法(SSS)
注:这不是经典意义上的多重签名,尽管这里讨论的是为其他形式的密码多重签名提供反例。
这里使用一个私钥来派生n个碎片,其中的m是重建私钥所需的。此方案通常用于密钥恢复,如果用户丢失了私钥,则可使用用户分发给不同朋友的碎片重建原始密钥。但是,它不适用于多重签名,这是因为:
这意味着存在一个可信生成和重新组装的步骤,这是一个故障点。另外,个人碎片持有者没有发言权,他们提供的只是碎片。可信硬件可减轻可信生成和签名问题,但这会导致诸如侧通道攻击、可用性等问题。
尽管如此,应注意SSS的一些独特特性,其可在不修改基础密钥/私钥的情况下创建尽可能多的不同的共享集。因此,如果Alice最初拥有10个秘密,而非朋友关系的Bob是一个秘密持有者,那么Alice可重新生成9个秘密,并将其交给其余的受信任方(他们希望销毁旧的持有部分,使Bob的秘密持有毫无用处)。
2、门限ECDSA
在门限ECDSA方案中,我们消除了沙米尔方案存在的一个漏洞。在这里,我们描述了Steven Goldfeder在其 ECDSA MPC论文中开创的一项最新建设,在密钥生成和签名效率方面,这项建设超过了以前的ECDSA工作。
使用分布式密钥生成(DKG)方案,所有密钥持有者都参与一个交互过程,该过程为自己生成一个私钥,并生成一个公钥。这样可确保任何一方都不会知道真正的私钥。在此构造密钥生成之前,只能使用一个可信方,因为对于大于两个的参与方来说,计算时间太长了。
据目前所知的是,Keep Network和Kzen Networks在运用这种阈值ECDSA方案。
3、门限ED25519
ECDSA的一个问题是,由于签名算法的复杂性,阈值签名是很复杂的。然而,对于其他签名方案,如EdDSA(Edwards曲线数字签名算法),尤其是曲线Edwards25519,其签名方案ED25519具有相对更有效和更直接的阈值签名。用户生成自己的密钥,然后有一个聚合步骤来创建单个公钥,交易签名有三轮交互协议。
Kzen Networks已经为ED25519门限签名实现了一个参考库,恒星(Stellar)、Near Protocol以及Cosmos使用了相同的曲线,但不实现加密门限签名。
4、Schnorr签名
在比特币中,Schnorr签名是签名聚合的一种形式。相比使用P2SH,其与密钥数成线性增长关系,而签名聚合允许使用恒定大小的签名。验证者不需要知道签名者的个人公钥,从而增加了隐私性。在这方面,Blockstream正大力推动将这种技术应用于比特币。
在Schnorr签名方案论文(第5.3节)中,有几种方法可实现m-of-n多重签名,并进行各种权衡,在某些方案中,用户提供自己的密钥,而在其他方案中,必须有一个DKG。一般来说,至少有一轮的密钥生成和交易签名通信,交易签名也不能很好地扩展到大的m或n。
5、BLS签名方案
所谓BLS签名,其全称为(Bohen-Lynn-Shacham)签名方案,这种方案在大签名集的情况下来说是非常有效的。也就是说,我们可以有2-of-10或2-of-1000多重签名方案,而在设置和签名时间上和普通签名方案几乎没有任何区别。对于设置阶段,唯一需要做的就是为每个私钥生成成员密钥,这只需要一轮通信因为用户提供自己的私钥,所以可以使用HD派生等技术来轻松管理多个密钥。用户离线签署交易,单个聚合器汇总签名并提交。
使用成员密钥的这种特殊构造是相当新的,另一种方法是利用沙米尔秘密共享方案(dfnity和dash在用),但是需要一个可信方或DKG。BLS签名方案的一个缺点在于,其签名验证会是缓慢的,它比ECDSA要慢上一个数量级。
四、权衡空间
当从远处观察这些技术时,我们可能会认为某些技术会优于其他技术。不幸的是,当我们潜入到权衡领域时,我们会发现,情况并非如此。一些技术对于较大的签名者组而言更可取,一些技术则更适合于低带宽环境。在这里,我们探索一个非详尽的属性列表,以分析以上各类技术。
原像:是否有必须拆分的私钥?
可信设置:是否存在生成密钥的单个实体,或者是否存在分布式密钥生成方案?
检测多重签名:区块链的查看者能否确定特定地址是否为多重签名地址?
HD派生:是否可以为相关的加密过程设置硬件确定性密钥?(例如:用户可以使用像bip32这样的技术,这样他们只需要记住自己的种子,而不需要记住一堆私钥)
权重:是否可以为特定的私钥分配不同的权重?(例如:1-of-2多重签名,其中密钥持有人A的权重为2,密钥持有人B的权重为1,表示A不需要B签名,但B始终需要A)。
能见度
时间
签名
图:以上方案的权衡考虑,注意每个方案都有几个构造,导致会有不同的属性。
五、未来发展
尽管有很多不同的技术可以为区块链启用多重签名帐户,但我们必须认识到协议中的设计注意事项。其中一些技术需要更改底层协议,而另一些则不需要。协议设计者应意识到在用户体验和未来的密码技术进步校对中的隐含权衡。
有趣的事实:签名比发送交易有更多的用途。它们可用于权益证明系统中的区块签名、具有较小区块链的聚合签名以及交易压缩。
六、有趣的问题
现在,您大概了解了一些关于加密多重签名的知识,在决定实现协议时应选择哪种签名方案时,这里有一些问题是值得探讨的:
③ 如何获取区块链地址
如何通过区块链资产地址(数字钱包地址)查看该地址的区块链资产(数字货币)?用区块链浏览器就可以查看。
在搜索输入框内输入想查询的钱包地址,如果你输入的地址不完整,但是这个地址之前有在区块链上进行过ETH交易或者被查询过,那么输入框会自动把你查询的地址补齐。
点击“查询”,就会出现这个钱包地址所有的信息。
点击“交易哈希值”还可以看到这笔交易的详细信息。
区块链浏览器查询的原理:
因为区块链中的交易信息等数据都是公开透明的,而区块链浏览器是查询区块链交易记录的地址,用户可以使用其查看自己的交易信息以及区块链存储的其他信息。
绝大多数可查,这是区块链公开透明的一大特性。地址都是透明的,只要有地址,便能查询其转入和转出。
匿名币有朋友提到就不多讲了,其他方面,也是一个查询项目真实性的工具。一些打着区块链幌子的资金盘,发的一些币来忽悠投资人,可以去浏览器上看一看,有时候链上根本没有数据,则证明是自己发的积分。
区块链交易id在哪查
这里我们用以太坊区块链的钱包作为例子,小狐狸是加密钱包,以及进入区块链APP的出入口。进入之后获取钱包地址,再使用以太坊区块链的搜索器进入Etherscan官网首页后,就可以获取到以下区块链交易id信息:
1.最新产生的区块
2.最新发生的交易
拓展资料:
区块链的交易过程看似神秘繁琐,其实真正说起来却也不见得有那么难。
第一步:所有者A利用他的私钥对前一次交易(比特货来源)和下一位所有者B签署一个数字签名,并将这个签名附加在这枚货币的末尾,制作出交易单。此时,B是以公钥作为接收方地址。
第二步:A将交易单广播至全网,比特币就发送给了B,每个节点都将收到交易信息纳入一个区块中
此时,对B而言,该枚比特币会即时显示在比特币钱包中,但直到区块确认成功后才可以使用。目前一笔比特币从支付到最终确认成功,得到6个区块确认之后才能真正的确认到账。
第三步:每个节点通过解一道数学难题,从而去获得创建新区块的权利,并争取得到比特币的奖励(新比特币会在此过程中产生)
此时节点反复尝试寻找一个数值,使得将该数值、区块链中最后一个区块的Hash值以及交易单三部分送入SHA256算法后能计算出散列值X(256位)满足一定条件(比如前20位均为0),即找到数学难题的解。
第四步:当一个节点找到解时,它就向全国广播该区块记录的所有盖时间戳交易,并由全网其他节点核对。
此时时间戳用来证实特定区块必然于某特定时间是的确存在的。比特币网络采用从5个以上节点获取时间,然后取中间值的方式成为时间戳。
第五步:全网其他节点核对该区块记账的正确性,没有错误后他们将在该合法区块之后竞争下一个区块,这样就形成了一个合法记账区块链。
xmeta怎么区块链地址需要登陆xmeta的官方网站,进行个人注册认证,这样平台就会推送一个验证码,输入验证码,就可以查看区块链地址。
比特币钱包地址是如何得到的?不是比特币地址而是钱包地址!首先,你应该在大脑中想象出一个“钱包”的概念。你的bitcoin都放在你的“钱包”中一个钱包可以包含很多很多......很多个地址。地址的形式就是形如。
利用比特币钱包中生成的比特币地址你可以接收来自他人的比特币,你也可以将你帐户上的比特币转到他人的比特币地址上面。比特币地址就像银行卡号一样,具有支付、转账、提现功能,但在转账时,你只有知道别人的比特币地址才能进行比特币转账。
如果我们把比特币钱包简单比作成银行卡账户的话,那么比特币钱包地址就可以看成是银行卡账号。不同的是,比特币地址是可以不存储在网络上的,更是可以独立于你的钱包而存在的。
(3)区块链地址签名扩展阅读:
比特币地址是一串由26位到34位字母和数字字符串组成的。看上去像一堆乱码一样,说白了这个就像你的银行卡卡号一样。通过区块链查可以查每个比特币地址的所有转账记录,公开透明。
比特币钱包地址生成:通过随机选出256位二进制数字,形成私钥,然后通过加密函数来生成地址。这个生成方向是单向的。也就是你知道了地址是无法通过解密方法来计算出私钥的。就目前的人类计算机运算能力无法破解,你可以很放心地把地址公布到网上。
参考链接:比特币|网络
欧易区块链地址怎么获得是想问欧易买币地址怎么获得吗?
我也不太懂,随便查了一下,希望对你有帮助吧。
1.打开okex交易所app,首次进入杠杆交易、需勾选开通杠杆协议
在「币币交易」界面,在左侧币对选择栏有“5X”标记的币对,选择”5X杠杆交易”,会出现“开通杠杆交易”确认弹窗,请仔细阅读《借币业务用户使用协议》,确认开通。
2.划转本金至“杠杆交易账户”
通过右上角白色位置的“转入资产”进行资金划转操作,也可以点击提示弹窗的“转入资产”先向「杠杆交易账户」转入本金,才能撬动更多资金。
有以下三种资金转入路径:
方法1:在「币币交易」界面,在左侧币对选择栏有“5X”标记的币对,选择”5X杠杆交易”,点击“转入资产”,将资金从币币账户转入币币杠杆账户;
方法2:也可以在「资金管理」界面选择「币币杠杆账户」,选择您想操作的币对,进行资金转入。
方法3:首次登录会弹出资金划转提示
怎么查别人区块链信息1.如果是查询账户余额、账户的历史交易数据等信息,建议直接输入钱包地址查询;如果是查询某笔转账的相关信息,比如是否到账、进展如何,输入交易ID是最方便的。当然了,区块链浏览器不仅可以查询自己的账户,也可以查询别人的账户全部联系人:展示所有有过交易记录的联系人地址/标签,交易数量超过1万笔的地址,取最近1万笔交易的联系人展示综上,SixPencer的全新资产追踪和管理工具能够提供比区块链浏览器或者钱包更综合的查询和分析功能,作为一款工具产品意在辅助用户。
2.可以通过区块链浏览器进行查询。在区块链浏览器中我们可以知道一个钱包地址都进行过哪些交易,账户上有多少资产等等的信息。用区块链浏览器就可以查看。在搜索输入框内输入想查询的钱包地址,如果你输入的地址不完整,但是这个地址之前有在区块链上进行过ETH交易或者被查询过,那么输入框会自动把你查询的
④ 怎么解读区块链的数字签名
在区块链的分布式网络里,节点之间进行通讯并达成信任,需要依赖数字签名技术,它主要实现了身份确认以及信息真实性、完整性验证。
数字签名
数字签名(又称公钥数字签名、电子签章)是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。就是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。简单证明 “我就是我”。
⑤ 【区块链笔记整理】多重签名
多重签名就是多个用户对同一个消息进行数字签名,可以简单理解为一个数字资产多个签名。
“用N把钥匙生成一个多重签名的地址,需要其中M把钥匙才能花费这个地址上的比特币,N>=M,这就是M/N的多重签名”。
签名标定的是数字资产所属及权限,多重签名预示着资产可由多人支配与管理。拿比特币来说,如果要动用一个地址的币,那么需要多个私钥才能进行。
多重签名的作用意义非常,如果采用单独的私钥,尽管以目前的密码学可以保证无法被暴力破解,但是这个私钥不保证会以其他方式(如黑客通过木马,自己不小心暴露等)暴露出去的话,那么对应的数字资产也同时暴露无遗。
此时如果公钥是由多重签名方式生成,那么即便被盗取了其中一个私钥,盗取者也无法转移对应的数字资产。
即多重签名使资产更加安全和多样化管理,尤其在需要暴露私钥的交易过程中。
1. 电子商务
较常见的是2/3的多重签名方式。例如一笔交易,由买家,卖家,平台各持有一份私钥对应该笔交易的地址,这个地址先有买家转入这笔交易所需的比特币数额,后续的交易确认,退款等流程就需要三方中2方才能转出这些比特币。无纠纷时,买家卖家双方确认即可。产生纠纷时由平台做出2/3的仲裁。
2. 财产分割
比如合作团队管理一笔共有资金。可以使用1/N的模式,即这个账户谁都可以支配。好处是清晰忠实地记录了每个用户(对应私钥)的支出明细,方便清算。
3. 资金监管
比如数字钱包,交易所,类似电子商务的2/3模式。比如家庭子女教育基金管理,使用2/2模式,不仅限制夫妻两房,也给黑客攻击增加了难度。
多重签名技术使得以区块链数字币交易的第三方平台产生了天然的资金安全的信用。相信对未来尤其在跨境电子贸易、交易所等方面产生深远影响。
⑥ 以太坊地址怎么生成signature
要在以太坊网络上创建一个签名,你可以遵循以下步骤来生成签名:
1. 首先,你需要创建一个以太坊地址。这可以通过使用以太坊钱包软件或在线钱包来完成。这个地址将作为你的 digital identity,并与你的 private key 关联。
2. 接下来,获取你的 private key。私钥是生成签名不可或缺的信息。你可以在钱包软件或在线钱包中找到它。请务必安全地保管你的私钥,防止任何未授权的访问。
3. 使用支持以太坊的编程语言库,如 web3.js,或者以太坊提供的工具来生成签名。你需要使用你的私钥对一条特定的消息进行签名。
4. 在生成签名时,你需要提供以下参数:
- 要签名的消息:这可以是一串文字或者任何形式的数据。
- 你的以太坊地址:用来标识进行签名的主体。
- 你的 private key:用来对消息进行签名。
5. 签名生成后,你会得到一个包含 v, r, s 值的签名数据结构作为结果。这个签名可以用来验证你的身份和消息未被篡改的完整性。
生成签名是一个敏感的操作,因为它涉及到私钥的使用。务必在安全的环境中进行签名,并确保你的私钥不会落入他人之手。如果你不熟悉签名过程,建议查阅以太坊的官方文档或寻求专业的区块链开发者的帮助。