知世金融网专注于股票行情,期货开户,外汇储备等最新相关资讯信息提供投资者参考学习!

当前位置:网站首页 > 区块链 > 正文

从地址格式探讨Bitcoin和Ethereum的差异

原创
文章作者
知世-金融领域资深作者
知名金融领域作者,从事金融超过十余年,在行业内有一定影响力。
金融风险管理师认证证书 常识职业资格认证 特许金融分析师 国际金融理财师认证证书
发布时间:2020-02-16 18:38:19 发布来源:getamis 文章点击:110

Bitcoin和Ethereum在许多方面有着截然不同的设计,这篇文章会从地址格式出发,比较两者在交易格式以及身份认定上的差异,透过这些差异了解两套系统在设计哲学上的不同之处。由于篇...

目录

    本文标题从地址格式探讨Bitcoin和Ethereum的差异,作者:知世,本文有1880个文字,大小约为8KB,预计阅读时间5分钟,请您欣赏。知世金融网众多优秀文章,如果想要浏览更多相关文章,请使用网站导航的搜索进行搜索。本站虽然不乏优秀之作,但仅作为投资者学习参考。

    Bitcoin和Ethereum在许多方面有着截然不同的设计,这篇文章会从地址格式出发,比较两者在交易格式以及身份认定上的差异,透过这些差异了解两套系统在设计哲学上的不同之处。由于篇幅的关系,本文会略过一些较为基础的细节。

    区块链上的地址

    地址(Address)是一个可以被某种交换网路系统辨识的资讯,透过这样的资讯使得网络中的个体可以顺利进行收发作业,比如说现实生活中的邮件地址,或是网际网路中的IP地址。同样的在blockchain这样的分散式系统中,也需要一套地址格式,让虚拟货币或是抽象的状态可以在这样的网路中传递,转移。

    blockchain基本上是透过非对称式密码学签章保护资产(或是状态)的安全,也就是认私,不认为,拥有私,等等,等于拥有对应地址下的资产。假设今天不使用现成的钱包解决方案,Bob自己用电脑产生了一副密钥对,那么他该如何在这两套blockchain系统中,产生自己的地址,让Alice可以发送资产给他呢?

    Ethereum

    以Ethereum而言,所谓的地址(for External Owned Account — EOA)其实就是公钥经过Keccak-256 hash过后的部分值(truncate to 20 bytes),私钥跟地址之间存在着one-to-one对应,这样的情况比较单纯和直觉,就像我国的地址门牌一样,ㄧ个地址只对应到一户人家。

    而由于Ethereum 本身的设计就是所谓的基于帐户的系统,因此交易格式中存在着from以及to的两个栏位,这意味着每一笔交易都有明确的收发对象,Alice若要将资产转移给Bob,只需要分别将from及to填上Alice和Bob的地址,接着附上应有的签名,再将这些资讯送到区块链上做验证即可,可以想像成在信封上写上寄件者和收件者的地址,贴上邮票后,丢入邮筒。

    Bitcoin

    同样的场景转换到Bitcoin时,事情就比较复杂了些。首先Bitcoin本身是所谓的Unspent Transaction Output(UTXO)系统,每一笔tx可以包含数个input以及output,没有一对一的from/to关系,比较不精确的翻译就是一笔交易可以有多个sender/recipient,而单一的from/to是在account based系统下才会强调的观念。

    每一个output都会有一个所谓的locking script,目的在于限制这笔output只能被指定的对象花用,也就是谁有能力解开这个锁,就有花用这笔资产的能力。一般这个locking script的逻辑会是「拥有某把private key的人可以花用这笔资产」,但事实上它可以实现多种逻辑,比如说「谁知道1+1的答案就可以花这笔资产」或是多签(Multisig),可以算是Ethereum smart contract的前身。

    Bitcoin locking script具有逻辑多样性,也许是为了降低一般收发的复杂度,因此有了几种标准的locking script template,例如P2PKH,P2SH,而每种script template所要填入的信息不同,交易的发送方需要从收方取得特定的信息才能正确将资产做转移,例如P2PKH的locking script需要填入public key hash,为了方便传递这些信息,需要一套编码标准将这些信息组合成一个地址。

    Bitcoin的地址是一串base58 encoded string(先不讨论Bech32),经过decode后,可以得到两部分信息

    1. version(1 byte)
    2. payload(20 bytes)

    version代表着script type,payload则是产生该种locking script所需的信息(例如public key hash for P2PKH)。说到这里,终于可以回到一开始的问题:Bob要如何产生对应的Bitcoin address给Alice?,首先他需要决定他想收到哪种script type保护的output,接着将所需的信息用base58编码成地址发给Alice,Alice收到地址后可以组出指定格式的locking script,再包装成合法的transaction发出去。

    谈到产生地址的方法,就必须说明一个Bitcoin不太一样的特性:同一副key pair可以产生不同的Bitcoin address!换句话说,key pair和Bitcoin address两者之间并不是one-to-one的对应的关系。就算先不考虑比较复杂的P2SH,以key compression来看,同样的private key就有两种public key表示的方式了,也就有两种对应的P2PKH address,若再将P2SH考虑进来,就有更多种可能,除此之外,Bitcoin因为segwit的关系又有新的地址格式(Bech32),光是最简单的单签,就可以有至少四种以上的地址。

    为什么会有这样的结果?其实是因为实际在Bitcoin链上运作的是locking script,script本身具有逻辑的多样性,可以想成一个方程式有多个解,而Bitcoin address代表着某一种标准script,说穿了只是其中之一解而已。

    基于这样的特性,手上拥有一把private key的Bob其实在他产生私钥的当下,就等同于产生了四个以上的Bitcoin地址,换言之,这些地址下的资产,都是属于他的,这个事实也引出了一个有趣的问题:如何辨别资产的所有权?

    资产所有权

    如果我们把资产所有权定义成「我有能力动用的资产」的话,那么除了一对多的地址以外,广义来说还可以把一些non-standard的output给囊括进来(前提是要知道如何unlock)

    私钥与地址的一对多关系 而目前的explorer和钱包几乎都是以address来判断余额以及utxo的,因此如果碰到non-standard output,你的钱包是无法判别它是属于你的资产,但实际上它是属于你的。也就是说,透过non-standard script是有能力发送一般explorer/wallet无法辨识地址的交易。若以上述的资产所有权定义出发,Bitcoin根本没有一套标准的方式去计算属于一个使用者(private key owner)的所有资产,我想这也强烈呼应着Bitcoin的匿名特性,所谓的匿名不单只是address背后没有实名认证而已,Bitcoin可以达到的匿名层级是根本无法判断交易的收发方。如果以account based的角度去看这个特性的话,会认为账本不accountable,没有办法判断收发方的话就无法记账,但以scripting UTXO的角度去看的话,这实在是再合理不过了,毕竟余额的概念就是连接着account。今天如果有一个人拿了Bob的public key写了一串non-standard locking script,只要他不告诉Bob,Bob甚至不知道他可以使用这笔钱,这意味着可能连key owner本身也无法确切知道他的实际资产总额是多少,此点不像account based的系统,如果我不告知你而转了一百块给你,你会从你的帐户余额发现多了一百元。

    Bitcoin其实是可以没有地址概念的,地址的出现让Bitcoin可以做到类似accout based系统的逻辑,方便一般使用者发送交易,却也让大家忽略UTXO的潜质。事实上Ethereum也可以用smart contract达到类似的效果,增加匿名性,但毕竟他的底层还是以account为单位,可以做到类似的逻辑,但隐私的层级还是有差异。

    示例

    我在Bitcoin mainnet用non-standard P2SH发了一笔交易,script逻辑是5 + 6 = 11,读者可以从explorer上查看这笔交易。

    总结

    其实Bitcoin这种UTXO的系统,搭配script language的交易逻辑是相对比较复杂的,只不过多数交易只限缩在使用standard script,而Ethereum的底层是较为简单易懂的account based系统,接近现有银行机制,复杂的逻辑可以透过smart contract来实现,两者设计方向不同,有不同的适用场景,也许account based的逻辑容易被大众接受和使用,而Bitcoin是许多密码庞克心中一个经典的尝试。

    注:原则上目前miner是不直接收含有non-standard script的output,必须包装成P2SH才可以被接受。

    本文相关推荐: 差异化布局“冷门赛道” 基金掘金大众消费股

    以上便是知世金融网给大家分享的关于从地址格式探讨Bitcoin和Ethereum的差异/qkl/27179.html的相关信息了,希望能帮助到大家,更多金融相关信息,敬请关注知世金融网!

    网站内容均来自互联网,如侵害您的利益联系客服进行删除!

    关键词:差异
    (0)
    (0)

    上一篇:发行人民币稳定币,Tether公司“疯”了吗?是在给USDT暴雷留后路?

    下一篇:探讨路印协议和Dolomite工作原理

    本文标题:从地址格式探讨Bitcoin和Ethereum的差异

    本文地址:/index.php?s=article&c=search&keyword=%E5%B7%AE%E5%BC%82

    金融知名领域

    南方财富网 | 金融界 | 金融界 |

    更多推荐

    • 茅台吃饱,经销商哭倒
      茅台吃饱,经销商哭倒
    • 汇金的五次增持从短期看具有一定的“稳定器“作用,但从市场表现看效果逐次递减
      汇金的五次增持从短期看具有一定的“稳定器“作用,但从市场表现看效果逐次递减
    • 158亿元!比亚迪收购!
      158亿元!比亚迪收购!
    • 9月价格回落近五成 “冷静期”酒店业备战“十一”市场
      9月价格回落近五成 “冷静期”酒店业备战“十一”市场
    • 2023哈马博览会哈尔滨银行展区精彩纷呈
      2023哈马博览会哈尔滨银行展区精彩纷呈
    • 大额解禁撂倒股价 医疗影像龙头跌出千亿俱乐部 葛兰二季度大幅减仓
      大额解禁撂倒股价 医疗影像龙头跌出千亿俱乐部 葛兰二季度大幅减仓
    • A股,又上了热搜!数字要素概念走高多股涨停,锂电池板块走低恩捷股份大举跌停
      A股,又上了热搜!数字要素概念走高多股涨停,锂电池板块走低恩捷股份大举跌停
    • 最新!巨头出手,加仓宁王51%
      最新!巨头出手,加仓宁王51%
    • 600亿巨头暴雷
      600亿巨头暴雷
    • 一天32家!科创板回购潮涌来
      一天32家!科创板回购潮涌来
    • 提振信心实招来了!30余家上市公司密集出手 最高要买10亿
      提振信心实招来了!30余家上市公司密集出手 最高要买10亿
    • 高盛再发50年后预测:2075年印度股市全球市值占比将升4倍 中国升3成
      高盛再发50年后预测:2075年印度股市全球市值占比将升4倍 中国升3成

    新闻资讯栏目

    站长QQ: 2397470084