盘古公会 | 关于SERO智能合约隐私性的一个小实验

-【来自SERO社区的投稿】

今天在SERO技术群里,“驴把头”同学问了一个有意思的问题,就是”SERO的UTXO和ACCOUNT模型,会不会因为暴露了智能合约地址,降低匿名性“。

这个问题我以前从没有关注过,不过感觉挺有意思的。

智能合约一般来说是要主动暴露地址,让他人使用的,比如以太坊和EOS上的各种DApp,但匿名资产可能就不一样了,兴许我不太愿意让人知道我的地址,以免别有用心的人不停的尝试合约漏洞(你知道的,合约代码无法更新,万一N年之后发现了什么漏洞,也是完全有可能的)。

于是,我决定自己试试。

我尝试做如下操作:

发行一个隐私币A_PRIV_COIN;

转给发行者A,看看能否从交易里查看到合约地址(甚至是发送接受者的地址);

发行者A转给发行者B,看看能否从交易里查看到合约地址(甚至是发送接受者的地址);

同时,我提前说下结论:

智能合约的地址不会因为执行函数而暴露;

合约的参数(包括地址、额度等)不会暴露;

用户拿到资产的名字和自己的余额,就可以自由转账,完全不用关心地址,想得到地址也没有途径;

首先,我使用如下帐户发行匿名资产:

>sero.accounts[0]"4CZWS8sPWqi2CLFVKANJsif9xSEYVBFG42ma84P4VNghWBrEQAVL9ATELwYJF4FPkSnsMyj9fVSJbmjfj4JbYJ2Y"

并打算转给这个账户一点点

>sero.accounts[1]"jRBKPeyNTCV4urA3uzWNjypiN9NoynyBvAeazdjfRJkiyUgXkQxPBXXuffxaCPsCW1T4Ki4eg56E9ZB9ZJK8iVg"

发行代码如下(发行10亿个,18位小数点,名字叫A_PRIV_COIN):

varinitSupply =1e9;vartokenName ='A_PRIV_COIN';varcoinContract = web3.sero.contract([{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getDecimal","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"}],"name":"reclaimSero","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokenSymbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"x","type":"bytes32"}],"name":"bytes32ToString","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addSupply","type":"uint256"}],"name":"addIssue","outputs":[{"name":"success","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"initSupply","type":"uint256"},{"name":"tokenName","type":"string"}],"payable":true,"stateMutability":"payable","type":"constructor"}]);varcoin = coinContract.new(  initSupply,  tokenName,  {from: web3.sero.accounts[0],data:'0x608060408190527f3be6bf24d822bcd6f6348f6f5a5c2d3108f04991ee63e80cde49a8c4746a0ef36000557fcf19eb4256453a4e30b6a06d651f1970c223fb6bd1826a28ed861f0e602db9b86001557f868bd6629e7c2e3d2ccf7b9968fad79b448e7a2bfb3ee20ed1acbc695c3c8b236002557f7c98e64bd943448b4e24ef8c2cdec7b8b1275970cfe10daf2a9bfa4b04dce9056003557fa6a366f1a72e1aef5d8d52ee240a476f619d15be7bc62d3df37496025b83459f6004557ff1964f6690a0536daa42e5c575091297d2479edcc96f721ad85b95358644d2766005557f9ab0d7c07029f006485cf3468ce7811aa8743b5a108599f6bec9367c50ac6aad6006557fa6cafc6282f61eff9032603a017e652f68410d3d3c69f0a3eeca8f181aec1d176007557f6800e94e36131c049eaeb631e4530829b0d3d20d5b637c8015a8dc9cedd70aed6008557fbbf1aa2159b035802d0a4d44611849d5d4ada0329c81580477d5ec3e82f4f0a66009557fa8b83585a613dcf6c905ad7e0ce34cd07d1283cc72906d1fe78037d49adae455600a55610d9f388190039081908339810160405280516020820151600b8054600160a060020a031916331790559091016101de82670de0b6b3a76400006401000000006107df61021c82021704565b600c8190556101f690826401000000006102dd810204565b151561020157600080fd5b805161021490600d90602084019061031d565b5050506103b8565b60008083151561022f57600091506102d6565b5082820282848281151561023f57fe5b04146102d257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f7700000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b8091505b5092915050565b60408051818152606080820183526000929091906020820161080080388339019050509050828152836020820152600054604082a1602001519392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061035e57805160ff191683800117855561038b565b8280016001018555821561038b579182015b8281111561038b578251825591602001919060010190610370565b5061039792915061039b565b5090565b6103b591905b8082111561039757600081556001016103a1565b90565b6109d8806103c76000396000f3006080604052600436106100985763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166318160ddd811461009d57806334ce10c4146100c45780636f26d98f146100ef5780637b61c320146101125780638da5cb5b1461019c5780639201de55146101cd578063a9059cbb146101e5578063d57c1ea214610209578063f2fde38b14610228575b600080fd5b3480156100a957600080fd5b506100b2610249565b60408051918252519081900360200190f35b3480156100d057600080fd5b506100d961024f565b6040805160ff9092168252519081900360200190f35b3480156100fb57600080fd5b50610110600160a060020a0360043516610254565b005b34801561011e57600080fd5b506101276102a5565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610161578181015183820152602001610149565b50505050905090810190601f16801561018e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101a857600080fd5b506101b1610333565b60408051600160a060020a039092168252519081900360200190f35b3480156101d957600080fd5b50610127600435610342565b3480156101f157600080fd5b50610110600160a060020a03600435166024356104fb565b610214600435610659565b604080519115158252519081900360200190f35b34801561023457600080fd5b50610110600160a060020a0360043516610737565b600c5490565b601290565b600b54600160a060020a0316331461026b57600080fd5b604051600160a060020a03821690303180156108fc02916000818181858888f193505050501580156102a1573d6000803e3d6000fd5b5050565b600d805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561032b5780601f106103005761010080835404028352916020019161032b565b820191906000526020600020905b81548152906001019060200180831161030e57829003601f168201915b505050505081565b600b54600160a060020a031681565b60408051602080825281830190925260609160009183918391829184919080820161040080388339019050509350600092505b6020831015610411576008830260020a870291507fff000000000000000000000000000000000000000000000000000000000000008216156103fb578184868151811015156103c057fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600190940193610406565b841561040657610411565b600190920191610375565b846040519080825280601f01601f19166020018201604052801561043f578160200160208202803883390190505b509050600092505b848310156104f157838381518110151561045d57fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f01000000000000000000000000000000000000000000000000000000000000000281848151811015156104b657fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600190920191610447565b9695505050505050565b600b54600160a060020a0316331461051257600080fd5b600d805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815284936105aa93919290918301828280156105a05780601f10610575576101008083540402835291602001916105a0565b820191906000526020600020905b81548152906001019060200180831161058357829003601f168201915b505050505061077d565b10156105b557600080fd5b600d805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815261064e938693919290918301828280156106435780601f1061061857610100808354040283529160200191610643565b820191906000526020600020905b81548152906001019060200180831161062657829003601f168201915b5050505050836107b4565b15156102a157600080fd5b600b546000908190600160a060020a0316331461067557600080fd5b61068783670de0b6b3a76400006107df565b9050610695600c54826108a0565b600c55600d805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152610730938593919290918301828280156107265780601f106106fb57610100808354040283529160200191610726565b820191906000526020600020905b81548152906001019060200180831161070957829003601f168201915b5050505050610914565b9392505050565b600b54600160a060020a0316331461074e57600080fd5b600b805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6040805160208082528183019092526000916060919080820161040080388339019050509050828152600154602082a15192915050565b60006107d784848460206040519081016040528060008152506000600102610954565b949350505050565b6000808315156107f25760009150610899565b5082820282848281151561080257fe5b041461089557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f7700000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b8091505b5092915050565b60008282018381101561089557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60408051818152606080820183526000929091906020820161080080388339019050509050828152836020820152600054604082a1602001519392505050565b6040805160a080825260c0820190925260009160609190602082016114008038833901905050905086815285602082015284604082015283606082015282608082015260025460a082a16080015196955050505050505600a165627a7a72305820ad4bea21339979faed42cac3a38b48eed633b23d2017170a39871fe4cf3739710029',gas:'4700000',value: web3.toTa(1)},function(e, contract){console.log(e, contract);if(typeofcontract.address !=='undefined') {console.log('Contract mined! address: '+ contract.address +' transactionHash: '+ contract.transactionHash);    } })

合约生成以后,输出如下地址:

Contractmined! address: g7gAEHVwjMcKpGRVrd4HfbPHjhv7SmUoUHFXo49VBbDfsi46S8nyHxcoT6fcqVQM9KrWP7Jf84P5TdEp45PALLH transactionHash: 0x86d3c78e21f7379df8dcf5083d5abe1b59d293318a484d32a54fe65f1d0eaf5c

同时,如果打印coin对象,含有如下属性:

> coin{  abi: [{constant:true,      inputs: [],name:"totalSupply",      outputs: [{...}],payable:false,stateMutability:"view",type:"function"  }, {constant:true,      inputs: [],name:"getDecimal",      outputs: [{...}],payable:false,stateMutability:"pure",type:"function"  }, {constant:false,      inputs: [{...}],name:"reclaimSero",      outputs: [],payable:false,stateMutability:"nonpayable",type:"function"  }, {constant:true,      inputs: [],name:"tokenSymbol",      outputs: [{...}],payable:false,stateMutability:"view",type:"function"  }, {constant:true,      inputs: [],name:"owner",      outputs: [{...}],payable:false,stateMutability:"view",type:"function"  }, {constant:true,      inputs: [{...}],name:"bytes32ToString",      outputs: [{...}],payable:false,stateMutability:"pure",type:"function"  }, {constant:false,      inputs: [{...}, {...}],name:"transfer",      outputs: [],payable:false,stateMutability:"nonpayable",type:"function"  }, {constant:false,      inputs: [{...}],name:"addIssue",      outputs: [{...}],payable:true,stateMutability:"payable",type:"function"  }, {constant:false,      inputs: [{...}],name:"transferOwnership",      outputs: [],payable:false,stateMutability:"nonpayable",type:"function"  }, {      inputs: [{...}, {...}],payable:true,stateMutability:"payable",type:"constructor"  }],address:"g7gAEHVwjMcKpGRVrd4HfbPHjhv7SmUoUHFXo49VBbDfsi46S8nyHxcoT6fcqVQM9KrWP7Jf84P5TdEp45PALLH",transactionHash:"0x86d3c78e21f7379df8dcf5083d5abe1b59d293318a484d32a54fe65f1d0eaf5c",addIssue:function(),allEvents:function(),bytes32ToString:function(),getDecimal:function(),owner:function(),reclaimSero:function(),tokenSymbol:function(),totalSupply:function(),transfer:function(),transferOwnership:function()}

我的合约里,并没有把所有余额发送到Owner,因此都还在合约地址上。

>sero.getBalance(coin.address){tkn: {A_PRIV_COIN:1e+27,SERO:0  }}

试着手动发送到Owner,看看会发生什么?

>coin.transfer(sero.accounts[0],1e27,{from:sero.accounts[0]});"0xfffec70bf0152e6a63aa3ede6f551c98a4e2ad39764195f446a6de446deee89a">sero.getBalance(sero.accounts[0]){tkn: {A_PRIV_COIN:1e+27,SERO:6.2832e+21  }}

查看交易的信息,看看是否有什么信息可供利用

>sero.getTransaction("0xfffec70bf0152e6a63aa3ede6f551c98a4e2ad39764195f446a6de446deee89a");{blockHash:"0x77bc209371c31a2de1538822a62e21dde46724569c7853557e08f6d8417e52c0",blockNumber:1680,from:"2FXg4eZUYcP5wMyAvoDAKMCtWhSmQAArTbjpApJhNwfLUMrgw8vYQTsHwTD9H6ZXKxD5cCN8pvWHRchtdsjDZHkkDUDKYJJkYT4f73KzmdSvL93obWzqvBdeszLeAJ2gaHgW",gas:90000,gasPrice:1000000000,hash:"0xfffec70bf0152e6a63aa3ede6f551c98a4e2ad39764195f446a6de446deee89a",input:"0x21bb3aed8684d74be791c3c8895a5ffd0001d28c8e0a39f175fa2f6a2ef8507d5ceaeba65730b717d077d6c6bf8a384fba09d5e6d15ec7fe44f70e5948514ff39794d0a19575b132cca69eb2da2415733614f7e9c53a9c9bdb67358e5c0cd48a2685523c4fe106e23130009ada3076ebad2ba9059cbb0000000000000000000000003982555540cd5305a7c2d7a180c5e9871a689ff70000000000000000000000000000000000000000033b2e3c9fd0803ce8000000",nonce:0,stx:{Bcr:"0xecdc70b1e38de70924b4a449e8d827079a42abd749959c7662b28986c42d52ad",Bsign:"0x35ed1907097fbd96d88fba0a2a8048eb4bd5d9ca4f33fe0f1e4ffe96513feba3dc5276fa2ea61529a8396486fd6c4ecb4fc49f053a68be6eb04d5517c8420504",Desc_O_Ins:[],Desc_O_Outs:[{Addr:"0x21bb3aed8684d74be791c3c8895a5ffd326b292afdbed31b73ac11eb78d022df8828397c2a51a73e08f1c2df284bc0b94b854b7871e33043331a64591c1bdc920000000000000000000000000000000000000000000000000000000000000000",Currency:"SERO",Memo:"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",Value:0}],Desc_Pkg:{Close:null,Create:null,Transfer:null},Desc_Z_Ins:[{Anchor:"0xb2cfa6a5c1cd3b865cae43c07b352fe7f3fd671a044d1101524af2e8e8ef3a8d",AssetCM:"0x9f829396b19bdedaa5080a27bc8f181b22b833cd3475fa2abfbe91cb0957639a",Nil:"0xe34333770ef5f04c7bf52f946885e0bb9dbd56114d6f1168f2e5a02e7fed19a6",Proof:"0x02e6bb23dbefeaa9345baaaf6b930c6812fb7d42a50c7c666927e929896bd0231f0b36d52a10f6cd9381cfa90b786a4f66dfce11d9fa85d9befeb4fc4b5ff18b4c91d5bad9662b0e7478dea7777cff751ab806dbd807280787baa8a7946d3ed6650703b15246592c56bba7e80a8823c2188effd99572d17968a7a0db0a78cb98770710",Trace:"0x01f9625829e180448eb4a271bbcdd6213ff8d0b805ba7681b197044d2f19621a"}],Desc_Z_Outs:[{AssetCM:"0x8ba96abfb79f0331891819077795bad3c7890eefad355eb90412c6cc68b1cb9d",EInfo:"0x1bd8b7a6142d250cabc0dd53a43e4ce7c6ef3465301ff75cf077defaa92a30b262914bde2f4340ea19d281f6ad89d95f8ec4ba25ec029d65672e3f392f6d2245aa2b592ad8515f499abb14c49010888b0822886750bd2c702c390bacc4ef45903be0a2326609941215e325de63372015a8f29f19f413a217c73074fb36340295a52764baf5d1f2cd56d26c842abc499b1d3d9b4f5272ca388eb2759be21938b3e480ff1bcb41fdb3ff3b033b6fdb216f611d3210cd96fb1eb5549be4ec5d73c4655e4457e06d436bcad957b5c0e853225b6d22f7bde2b969b7958f4d1a9aa077",OutCM:"0xb74a9aae5492ed533499dedae715e91f691389731c9e566475737ada4c805819",PKr:"0xf359130cd588154c34cac09e683bfbe68544b8d6d4807225a1c06ad11d73600e59560480018b7b304a361f943c7b11a44992317b4049bb27166dd42fe80cd126c864d80f03ee465e808fb2abdd1e6a8b0f15146915b4387c1329a8617618a986",Proof:"0x02d79045117a3cf59d6b842c984c699147f900f93e1baa374375ab24e79e40f1130af22473387a13d2a8664c077b21780299c238cef86691371bdedb2c9597b4b70311c1e633d1a7d58c267304d7c307146c8f5b127de3f4fb1aff133fd1980ead0002817e63f2ecf5da6a85939b9a73aad422544f7f94faa8f38f8dbdfc7ac355ba2a",RPK:"0x8e726482badf9f0f5d9a02c150cc6e43a39be10309bd438160e338dcbcd356d0"}],Ehash:"0xae555a1affe1a2443931f75b0b05dff7fbafdcde63e50519855efbed27d5fca6",Fee:{Currency:"0x000000000000000000000000000000000000000000000000000000005345524f",Value:90000000000000},From:"0xd28c8e0a39f175fa2f6a2ef8507d5ceaeba65730b717d077d6c6bf8a384fba09d5e6d15ec7fe44f70e5948514ff39794d0a19575b132cca69eb2da2415733614f7e9c53a9c9bdb67358e5c0cd48a2685523c4fe106e23130009ada3076ebad2b",Sign:"0xf676e7051415aa2974824921a15f4e7e5039cb0b62bfcc045e8aef5d7636fc17ab21472ed58751948cc62b7a8ba776853858b73ccb8bed9b68cba29b9a2c0200"},to:"CcwN3ww8iDD6d84AM4iH425Wv9usnmohNkRaqT47RsYZeyPmtpksfY4aNaHpmL2AGCr9tBY8DT9cxE5DK48vocBixFVGLuBYZUG3cHphmK1nMNFP2kw1BQ5EpzsArKUXABR",transactionIndex:0,value:0}

比较安心的是,此处并没有出现A_PRIV_COIN的智能合约地址和我的账户地址,还是比较安全的。要知道,以太坊的合约执行,是有明显的指向的,就是from发往智能合约的一笔交易。SERO很好的隐藏了这点,同时也像普通交易一样,隐藏的交易的具体金额。

也就是说,到此为止,如果我不打算使用别的功能,那我的ABI和合约地址可以扔了,不用再保存了,反正只有名字也能自由发送了。

这时候我从A发往B

>sero.sendTransaction({from:sero.accounts[0],to:sero.accounts[1],cy:"A_PRIV_COIN", value:web3.toTa(10)});"0x59b60dcb62917b8e4b1a82f117a716e04aa9fa4f32626cf9a5285c37b3301599"> sero.getBalance(sero.accounts[1]){  tkn: {    A_PRIV_COIN: 10000000000000000000  }}

由于交易信息里无法查看到A的地址和合约的具体地址,因此可以放心的认为,B所能知道的信息,就只有名字A_PRIV_COIN,和自己的数量。无论如何B是无法得到合约的地址的,除非A告诉他。

当然了,如果你查看这次交易,也是啥也看不出来的,和之前的交易一样。

>sero.getTransaction("0x59b60dcb62917b8e4b1a82f117a716e04aa9fa4f32626cf9a5285c37b3301599");{blockHash:"0xdd3d86abc369198a69323debe6033ed6b3499f999a0d8821cc918ffddf25bc96",blockNumber:2044,from:"ZLBqVuqHVPh4gcRGqaabp1T1VvFpANAx7pu65Bk3VPs3AB6zS7SyL8uYTsvr3oaPTK4yEtGantqPDNsqkSsVLmZJhpd7Js3DGFJx9CZsXLUewVQiyzUbzMqJHk8eW8kXb79",gas:90000,gasPrice:1000000000,hash:"0x59b60dcb62917b8e4b1a82f117a716e04aa9fa4f32626cf9a5285c37b3301599",input:"0x",nonce:0,stx:{Bcr:"0xd4353edb6048cbb720aca17f4b82202a777c76e0e06a30f1e5352d6b80496a27",Bsign:"0x98091092844a827c8f8dd3e86b6df0e746cbc24797666eaf0e7540da668be0a1626de3d7cdf0bc11beddfa006ab2062c964e6eaa69ef14b0e26630ca9d48af02",Desc_O_Ins:[],Desc_O_Outs:[],Desc_Pkg:{Close:null,Create:null,Transfer:null},Desc_Z_Ins:[{Anchor:"0x5d324bdf8316821a698ed64f2d890e18cab5f500e996580ddeafd6a85d790881",AssetCM:"0x9760e1c55be260ac9456e129a4d93b806a2cc3c60deea972efb898ceee55d220",Nil:"0xe29b9fd5c5d87194dfd9166a1aa5dd1ccd25d8ee27fa867c9ccc81b4cdd782ab",Proof:"0x022636ea4802b41d6bb319860df7c78db46722a27a6518f3e08fe6a5b1ee096c220b139d4b91077ccb16d12138c73f75789fdf2a73fc3033c229563c330d1e4135cf848bf0d5a80d5cfb315b71cc79bb3764e1fcc3748983d274f51ca08cfdff1e0802609324dec3334ea50f6dbec3a3190cf974bfa79e992ed948e66381bd7a35e126",Trace:"0xf757f88027560bb9db26492a6886fa849f91b43c86595cd2d98826ab1b85f822"},{Anchor:"0x5d324bdf8316821a698ed64f2d890e18cab5f500e996580ddeafd6a85d790881",AssetCM:"0x0094a59ea1ddfe276c9453c9a696f7696d80c838df19863f68f04fd48ffde119",Nil:"0xe9471562229cea8b49fb65cbdcce2d9bbbfab8f379e3942e4f69fec7698be89e",Proof:"0x02e92520c0d0b99099cf633307dc25d2b1e92b1d7e499fe3e4c4ac497640c2f12d0b8778036095d91a5f6123f00c4b4aceecab3e61d4768f5c4068257e5263c1a8b7be3781784e2c0861595c70a4607de01ee6e97b4f5f5dd8320547229f00fb3700038c67852fc8c5c595858e62b8c53967337045cb00e5765c51dc2344b7ae5b4025",Trace:"0x6818736fc4c6cbfcf79cf72a46bea361dfd5c451bc52f54808c1d3b2d1a3d02f"},{Anchor:"0x5d324bdf8316821a698ed64f2d890e18cab5f500e996580ddeafd6a85d790881",AssetCM:"0x9bd51f346c7e14da9cfb2d18c91ee33c2dbd7d2dc6de24849db848df1ed9b824",Nil:"0xdc2ccd34bd406f424d14816ae1e974801fd3dada1ad53f63bcdb5a320792281d",Proof:"0x02647271b8cd8bcecd9e563169721033d281da9cebc8cc6870953fabe558bcbd010b81b0dcece1a5f8d19b1c5aa2572b67a129861422569626461d5c23edf1a82ff9e8719794a164ea8f7e7f9406bde9a64bd0c19a41d31a27d1923d88c122dee1040280a5d18c62341c9783fd12456bda197fc4245c3f30b4ee7cf3e3521e71c87a27",Trace:"0xc85775491e558cb42e0c1859ab390dd6ee1a5a221b757935d23a6ebad398859f"}],Desc_Z_Outs:[{AssetCM:"0xbeaa35a173452a8502304b042d5dfbd0ab53b48e9cf86eb64b0ccc0803c0b222",EInfo:"0x1a7fa678d49d91c24f1c10cdd68989b61cf364176880022b39e1072b0b134f1fe1ce19ca0ae4f98af1c08cd79f6160b5d46ca5723e72ff867e802b39a15e52bbe610b31fcf159237b529711a4243e7dc465f8fe67d802e64f334409f16e565a599abbab2ea0618ce27098e308b7899d3f60c83a42d469deeb573406000c6325bfc4e7d6864fcbea5fb9f631fac56d4261ed02c9d90a6d0ae28594055442b2b90757843c6710fe8e39c65f9815f0d16f5138bc54983245b6f4a92ac0356c29dd100076455dc0899b5ccd430fd66c401b0dfb0b6d69e60faa7a2cdb344b2bc770b",OutCM:"0x704fe0d78e3917368440fd4f173f15bd34dc50dfc2330096fdaf3e4ee2c58e1d",PKr:"0xa3288fa610fa270b2b96e5fb9b106e39906d0ad4e4e5bfa58c7e95389e0851a0b60d0bf2e9f8ef21efe860ad1a46be60806945e85b56e2fe0c281ee2a7398626ce592f1538d151f99f1219db9f798a2c56d5b12110ccd81f8362792d340ada21",Proof:"0x039a3141661bb319d44d1aaa98aa7f5bb0bb6e0b3f610757229f4b11c5ad8d4a2f0bedb8b10603cec177a1571f83f8ae3b3ed35fe0a157d5395021a0ceab5b66e9a41b212080d7d651552bf726b4bf35d529744d46c8f1d073feda8744cadc5db90703f951a12e6a9b67a06c2838554c6d1caccbedd36cb7d770d2f9f7a6cab8c71c02",RPK:"0x7dd119ca46e1a3a6e8b6c739073607b9dd0db61009767a5749c183d77e92256b"},{AssetCM:"0x216b0bdb728b45b1c9e3be9cb559616646b90a388642da74df727da1059cb324",EInfo:"0xac045b39370dfe4d62546237776b081b0f96e9e591e542c7c148ae516c095182346612f58f2a01b8deadb6e85e6b9af0eef9439d182c01377132f239013015d929d036b344905a20166a259e5e60e046057543096e7fccc13d993e070a42c8d13f07db53b049973a01e1c84d189dcfa62fddca397d59f9e705ca1f50025fb11e10677378338b47c66dcbdcf722a86c5e15e01822392bb13193c467aad1fd5aa4bc5009281a4986c0c1dd54d87fa1222e70d7db356e9ede0caa1cf59175262b74aecf6adc18c0d5591b9378ff984f3465be90b1ff2fe62bd3b6f5f216c0043af3",OutCM:"0xb92684af743c54f68b0c23f299db0925a47387d8769bbb4a1b9c7fe12ea55914",PKr:"0x220d2f0e64cc18ff68d718e64e432edf916b44c74daf0ba29ac8720f8de3e218c1dc31551f0ebb3cf11b6b763ae908810e0948fe76e0bd8f042eff05d1962528a0b38242366310d1bd339fc88c6e2aa20e8f09990181072d24e6cf1a8244ac29",Proof:"0x03eb9efd23f25b89d2fc31486daa99a65497e469ab52a01698b0e9f92c987e55190aa931f96368dbdb3d8ece71cafcfc7eb15ac34039d681f538e483b94a6b88af7cfd26063211ceff672d5d7ff29fc1d57cbd42187425ee6d811eef4a47671fc70102497a879002323ee081fed732b1d0b13bf2f003987e939f2d9fe576aa129a751a",RPK:"0xe9477dd2762b7bdaa531ab85cc3e7e3f889184dd9ecf61de594cb4c2d5a3fee0"},{AssetCM:"0x967a7363b5af55c4e61b6235cfc38a026384d795799c863fc1dcff6f73d6d425",EInfo:"0xe53c07207982249b16631222682fda5d47f277f7b4b3d13e29450f6683c490252d9890992cfc8c481c1bc0f7cd4870666280f72c0ee544ab6edc127d23fd6cc3c5e18fc0eb2e51ebd33727f43b555767bb4308c8a662118b93af42844b4d8f8a0cf3dd9e3c11c42285b42b7e08b1718960f173c8f92f4e47b7e4dad048f24ffc9f1caa6428f43fbfa6fbaaee3fbfe6dfdc7d0822b3e88bc4d57cd8b6489379acabc9e98202db8656ec550f848dd35804d6ece5693d8e64b60ffd0743507394fd9d562cbf0b17b6ab0107c4fe316376fd587648bfbef9a10662de99f57acc7fe8",OutCM:"0x5cf10cb2fe8f397078bf4b3669ddd3e02bbf1713c00e4568363f582df1542091",PKr:"0x24acbc91f99f71dc344ae8f6e2adbabc7afc7c02711fc6386930218200c63685b194dd47278616395924aacd1fed02586cbf20110e4029c411421cd4ca0b5c150471b7fd2332d6ddcc4a341cb9a1aebd20f3a969eab5ef2b03c879b5dcc2270e",Proof:"0x03fe8097fb31cc2c3ad458e4d93b6e1fd146ac70e7be58022e13a90bb42c5934140ab20d0625fab2eaa65de1e01a41923dd0e5b2409b6545a77dce56337f1545fa68fa93f5bcd20911ae3981b3abea66205a3b47c3bc6a4878dab57ce759a3899e07029cbe7ea31110aaf33c017088641618ea31c7fbdfd910cd8ac078e1d8eeb55113",RPK:"0xfa61dac0f8e4b724c382fd9bf12df335310552fe03da4f15945db83122b2e0df"}],Ehash:"0xe062488ffe92fd654f106274496bbbe3741b2c37f51a2b3c4f89517befb4b00c",Fee:{Currency:"0x000000000000000000000000000000000000000000000000000000005345524f",Value:90000000000000},From:"0x5ddaf7dfbf3fb96413539270983dc6c44227f8b57204926b5f5bcc57d6fb0599d6db96d3ff90aa4c6d850d886812f6e66ad01329fe6f4d1cee007c371d8589a5b31ddf2787613249e448af0abb89711463287597af61ce16ab951569553620ac",Sign:"0x9032810c934157ec0ed1856747e19a76d83fe2519e2b4d7534a39bddd3a6bd2228d4b8ed9aecd8180d61366e09789d5a527dbf897a3218abd2ddf54537ed3b03"},to:null,transactionIndex:0,value:0}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,552评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,666评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,519评论 0 334
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,180评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,205评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,344评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,781评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,449评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,635评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,467评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,515评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,217评论 3 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,775评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,851评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,084评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,637评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,204评论 2 341