128

请教两个智能合约的问题

wa4a4a4gh · 于 发布 · 最后由 iwrong23回复 · 479 次阅读

各位大佬好,我是法学专业在读博士生,目前想写一篇关于区块链和智能合约的论文。
看遍了能找到的所有中文和英文资料,包括各种白皮书,政府报告,还是有两个技术方面的问题不太理解。
1、在计算机专业的语境下,智能合约是否一定要转移价值,产生交易呢?我看了以太坊白皮书中列举的身份合约的例子,是不是意味着仅仅存储信息,改写数据也被称作智能合约。如果是的话,似乎与法学中合同的概念不完全一致了。
2、智能合约中的内容一旦写入区块链是不是无法更改,我看了许多文章似乎原则上如此,但也可以通过多重签名之类的方式改写?
谢谢大家

  • 128
    luren5

    1、不一定要转移价值,智能合约就是存在于链上的一段代码,合约包括 状态变量 + 合约方法,调用合约的方法的时候,如果会修改账本数据(合约的状态变量)那么它就是一笔交易,存储数据和改写数据只是合约具有的功能,它并不能代表合约
    2、合约(一段代码)一旦被部署到区块链上,那么它将无法被改变,但是合约的状态变量是可以被修改的,这个跟多重签名没关系,需要调用合约的方法去修改合约的状态变量,这个调用是一笔交易,需要用私钥进行签名

  • 128
    wa4a4a4gh

    @luren5 感谢回复,关于第一个问题,账本数据指的究竟是什么呢,我看以太坊白皮书和微软区块链白皮书中都提到了关于身份信息记录的合约,但这种合约不移转财产价值,这种账本数据可以仅是一段不涉及财产价值的数据吗?
    关于第二个问题,状态变量可以修改,但是合约方法是不能修改的?假设a交易5btc给b,条件是btc上涨10%,也就是说上涨10%时就发生a向b的交易不能修改,但是可以更改btc的数值,比如把5改为10?是这样理解的吗?
    非常感谢!

  • 128
    katao

    ☻☻☻

  • 5280 large
    iwrong23

    @wa4a4a4gh 假如方法允许就能改,不允许就改不了。这些都要提前写在方法里。